[Delphi] Problem z odczytywaniem danych z pliku .ini

Odpowiedz Nowy wątek
2006-12-06 18:37
0

Pisze prosty program ktory wczytuje opcje domyslne z pliku *.ini, mam jednak maly problem.

Kod wyglada tak

procedure TForm1.Default01Click(Sender: TObject);
begin
 Ini := TINIFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');

  try
    Ini.WriteString('config', 'uodata', Katalog01.Text );
    Ini.WriteString('config', 'adres', Adres01.Text );
    Ini.WriteString('config', 'port', Port01.Text );
    Ini.WriteBool('config', 'encryption', Checkbox1.Checked);
    finally
      INI.Free;
    end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 if not FileExists(ExtractFilePath(Application.ExeName) + 'config.ini') then
  begin
    ShowMessage('Brak pliku z konfiguracja, tworze nowy plik');
    Ini := TINIFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');
  end
  else
   try

    Katalog01.Text := Ini.ReadString('config', 'uodata', '') ;
    Adres01.Text := Ini.ReadString('config', 'adres', '') ;
    Port01.Text := Ini.ReadString('config', 'port', '') ;
    if ini.ReadString('config', 'encryption', '0') = '0' then
     CheckBox1.Checked := false
     else
      CheckBox1.Checked := true;
   finally
   Ini.Free;
   end;
end;

INI : TiniFile; zostalo zadeklarowane w miejscu gdzie mozna deklarowac zmienne globalne.

Program zapisuje dane do pliku .ini bez problemu, jednak ma problemy z odczytaniem podczas startu programy tych danych... W zamian otrzymuje komunikat :

"Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00463b2b in module 'Project1.exe'. Read of Address 00000000'. Process stopped. Use Step or Run to continue. "

Po czym program sie uruchamia jednak bez wczytania wartosci z pliku .ini.

Chce aby program na starcie ladowal wartosci domyslne ktore zostaly wczesniej zapisane w pliku .ini

Zna ktos na to jakas solucje lub moze wskazac mi moj blad?

P.S. Czemu moj poprzedni taki sam temat zostal skasowany skoro nie złamałem ani jednego punktu regulaminu, a odpowiedz której mi udzielono nic nie rozwiązywała, lecz jedynie okazywała "niepewnosc" autora tej odpowiedzi do tego co pisze...

Mam szczera nadzieje ze tym razem otrzymam pomoc...

Pozostało 580 znaków

2006-12-06 19:37
spc
0

Chcesz czytac z pliku ale przed tym go nie otworzyles.


00, OK, 00, 00
...dziś się to robi na sprzętach, kiedyś na patentach...

Pozostało 580 znaków

2009-12-31 07:09
0
  end
  else
   try
    begin
    Ini := TINIFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');
    Katalog01.Text := Ini.ReadString('config', 'uodata', '') ;
    Adres01.Text := Ini.ReadString('config', 'adres', '') ;
    Port01.Text := Ini.ReadString('config', 'port', '') ;
    if ini.ReadString('config', 'encryption', '0') = '0' then
     CheckBox1.Checked := false
     else
      CheckBox1.Checked := true;
   end;
   finally
   Ini.Free;
   end;
end;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0