Avatar billede Slettet bruger
30. maj 2002 - 07:37 Der er 6 kommentarer og
1 løsning

Fejl

Hej

Hvad er fejlen i denne tekst: edit1.Text:=inttostr(strtoint(ini.ReadString(datetostr(date),'time',''))+1);
Avatar billede zimp Nybegynder
30. maj 2002 - 10:34 #1
Der er ikke noget galt med linien. Hvis det ikke virker efter hensigten, så er dit problem nok her:

ini.ReadString(datetostr(date),'time','')

Hvis du deler din kode op i flere linier, så bliver det MEGET nemmere at debugge:

var
strTid: string;

strTid := ini.ReadString(datetostr(date),'time','');

Check om den indeholder det forventede. Brug evt. FormatDateTime istedet for DateToStr, hvis det er formatet der er forkert.
Avatar billede eagleeye Praktikant
30. maj 2002 - 10:43 #2
ReadString parametra er :
ReadString(gruppe,items,defaultvalue)

Så jeg vil gætte på det skal være noget i stil med:
ReadString('','time',datetostr(date));
Avatar billede hermandsen Juniormester
30. maj 2002 - 16:01 #3
Din fejl er at hvis der ingen værdi er, så returnerer den ''. Hvilket jo ikke kan konverteres til et tal... Prøv:

Edit1.Text := IntToStr(StrToInt(Ini.ReadString(DateToStr(Date), 'Time', '0'))+1);

Ellers så ville jeg nok anbefale dig at bruge ReadInteger, så går det ikke galt:

Edit1.Text := IntToStr(Ini.ReadInteger(DateToStr(Date), 'Time', 0)+1);

//hermandsen
Avatar billede Slettet bruger
30. maj 2002 - 18:50 #4
den kommer stadig med samme fejl. Der står "Access violation at address 00455317 in module 'project1.exe'. Read of address 00000000."
Avatar billede hermandsen Juniormester
30. maj 2002 - 22:47 #5
Har du Create'et din Ini-fil? Det kunne nemlig godt lyde som om det var hvad der var galt...

Her er et rigtig godt eksempel, tyvstjålet fra hjælpen:

This example reads the Transfer section of the DELPHI32.INI file into a memo and changes one of the strings in the INI file when Button1 is clicked.  When Button2 is clicked, the DELPHI32.INI file is restored to its initial state, using the values stored in the memo.
Before you run this example, you must add the IniFiles unit to the uses clause of your unit.

Warning: Do not click button2 before you have clicked button1!

procedure TForm1.Button1Click(Sender: TObject);
var
  DelphiIni: TIniFile;
begin
  DelphiIni := TIniFile.Create('c:\windows\delphi32.ini');
  Memo1.Clear;
  DelphiIni.ReadSectionValues('Transfer', Memo1.Lines);
  if Memo1.Lines.Values['Title1'] <> 'Picture Painter' then
    DelphiIni.WriteString('Transfer', 'Title1', 'Picture Painter');
  DelphiIni.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  DelphiIni: TIniFile;
begin
  DelphiIni := TIniFile.Create('c:\windows\delphi32.ini');

  { if the entry wasn’t there before, delete it now }
  if Memo1.Lines.Values['Title1'] = '' then
    DelphiIni.DeleteKey('Transfer', 'Title1')
  { otherwise, restore the old value }
  else
    DelphiIni.WriteString('Transfer', 'Title1', Memo1.Lines.Values['Title1']);
  DelphiIni.Free;
end;

Det jeg altså tror du mangler er det her:

var
  ini: TIniFile;
begin
  ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'MinIniFil.ini');
end;

Når du så har create'et den er det en god ide lige at kalde Update også...

Altså Ini.Update;

Når du er færdig med at bruge programmet skal du også lige huske at Free'e den... Ini.Free;

Det kan være en god ide at have Ini som en global variabel, hvis den f.eks. skal gemme og hente program indstillinger ved FormCreate og FormClose...

//hermandsen

//hermandsen
Avatar billede Slettet bruger
31. maj 2002 - 07:46 #6
Det virker :)
Avatar billede hermandsen Juniormester
31. maj 2002 - 13:19 #7
Hehe... Jamen selv tak da! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester