Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi INI Datei auslesen (https://www.delphipraxis.net/25738-ini-datei-auslesen.html)

endeffects 11. Jul 2004 17:33


INI Datei auslesen
 
hallo,

ich hab ein problem beim einlesen einer ini datei,
ich möchte die dort vergebenen parameter in ein array
packen und diese werte für threads zugänglich machen.
dazu hab ich ein mehrdimensionales array als public
deklariert und versuche in meiner Methode aus jeder Sektion
das erste Element (hier Parameter) in das Array einzulesen,
leider kommt es dabei zu einer Zugriffsverletzung

weiß jemand vielleicht wo der Fehler liegt?


Delphi-Quellcode:
type
  TMainForm = class(TForm)
  ...
  public
    { Public-Deklarationen }
    Config: array of array of string;

...

procedure TMainForm.FormCreate(Sender: TObject);
var
  ini: TIniFile; Settings: TStringlist;
  i: integer;
begin
    ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'config.ini');
    Settings:=TStringlist.create;
  try
    ini.readsections(Settings);

    for i:=0 to Settings.count-1 do
    begin
       Config[i,0]:=ini.readstring(Settings[i],'Parameter','');
    end;
  finally
    ini.free;
    Settings.free;
  end;
end;

Jens Schumann 11. Jul 2004 17:43

Re: INI Datei auslesen
 
Hallo,
Du verwendest ein dyn Array mit dem Config. Bevor Du auf die Array-Elemente zugreifen kannst, musst Du mit SetLength die Größe des Array's festlegen.
Delphi-Quellcode:
    for i:=0 to imax-1 do
    begin
       Config[i,0]:=ini.readstring(Settings[i],'Parameter','');
    end;
Config enthält an dieser Stelle noch kein Element.

MrKnogge 11. Jul 2004 17:44

Re: INI Datei auslesen
 
Wie setzt du denn die länge deines dynamischen Arrays fest ?

Jens Schumann 11. Jul 2004 17:47

Re: INI Datei auslesen
 
Na mit SetLength

Habe ich doch oben geschrieben :gruebel:

Ultimator 11. Jul 2004 17:47

Re: INI Datei auslesen
 
Mit
Delphi-Quellcode:
SetLength(DeinDynamischesArray,34);
zum Beispiel. :thuimb:

endeffects 11. Jul 2004 17:48

Re: INI Datei auslesen
 
oh danke danke =)
so ist das wenn man den wald vor lauter bäumen nicht sieht

schönes we wünsch ich euch noch =)

Jens Schumann 11. Jul 2004 17:50

Re: INI Datei auslesen
 
Wie wäre es denn z.B. damit
Delphi-Quellcode:
SetLength(Config,10,10);

MrKnogge 11. Jul 2004 17:56

Re: INI Datei auslesen
 
Zitat:

Zitat von Jens Schumann
Na mit SetLength
Habe ich doch oben geschrieben :gruebel:

Ich meinte eigentlich endeffects, dein posting war als ich meins geschrieben hatte noch nicht da, modem halt :cry: ...

Ultimator 11. Jul 2004 17:59

Re: INI Datei auslesen
 
Ok, es kommt halt drauf an, wie viele Dimensionen dein dynamisches Array hat.
Bei einer reicht
Delphi-Quellcode:
SetLength(array,10);
Bei zweien dann halt
Delphi-Quellcode:
SetLength(array,10,10);
Bei dreien dann
Delphi-Quellcode:
SetLength(array,10,10,10);
Und immer so weiter...

Jens Schumann 11. Jul 2004 17:59

Re: INI Datei auslesen
 
Zitat:

Zitat von MrKnogge
Zitat:

Zitat von Jens Schumann
Na mit SetLength
Habe ich doch oben geschrieben :gruebel:

Ich meinte eigentlich endeffects, dein posting war als ich meins geschrieben hatte noch nicht da, modem halt :cry: ...

Ach so. Tut mir Leid :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz