Entwickler-Ecke

Dateizugriff - inidatei variable zeilen


Luncustaf - Sa 05.04.03 13:11
Titel: inidatei variable zeilen
sers,

ich schreibe mir ne ini datei und speichere die ueilen uassem memo ab


Quelltext
1:
2:
3:
4:
      for i := 0 to plot.Lines.Count -1 do
      begin
        WriteString('nfo','plotline'+IntToStr(i),plot.Lines[i]);
      end;//for



nun will ich das wieder einlesen


Quelltext
1:
2:
3:
4:
      while i <= 12 do
      begin
        plot.Lines.Add(readstring('nfo','plotline',''));
      end;//while


die zahl 12 ist nur eine fiktive zahl. ich weis aber nicht wie ich rausbekommen kann wieviele plotlines nun in der ini stehen :/

kann mirda vllt jemand helfen

die ini sieht dann soaus


Quelltext
1:
2:
3:
4:
plotline0=xxxx
plotline1=xxxxxxxx
plotline2=xxxxx
plotline3=xxxxxxxxxx



gr€€tz


wulfskin - Sa 05.04.03 13:41

Hallo Luncustaf!

Wenn du diese Werte alle in einen einzigen Abschnitt (Section) schreibst, dann sollte dir diese Prozedur helfen:  procedure ReadSection (const Section: string; Strings: TStrings); override;Gruß wulfskin!


Luncustaf - Sa 05.04.03 14:11

hi wulfskin


thx für deine antowrt hab das nun in eine eigene section gepackt - mit der funktion ReadSection bekommei hc aber nur die schlüssel zurück nicht die werte

wenn ich ReadSectionValues mache dann bekomm ich schlüsssel + eigenschaft geliefert :/

ich will aber nur den schlüssel haben


gr€€tz


Delete - Sa 05.04.03 14:22

Luncustaf hat folgendes geschrieben:

wenn ich ReadSectionValues mache dann bekomm ich schlüsssel + eigenschaft geliefert :/

ich will aber nur den schlüssel haben

Was hält dich davon ab mit pos nach dem "=" zu suchen und mit copy den gewünschten Teilstring rauszukopieren? :roll:


Popov - Sa 05.04.03 15:02

Benutze wie gehabt ReadSection. Du bekommst dann alle Key's einer Sektion in ein Stringlist geladen.

Mit den Werten kannst du aber alle Values auslesen. Du brauchst nur eine Schleife zu machen und dir zu jeden Key den passenden Wert auslesen:


Quelltext
1:
2:
for i := 0 to Sl.Count -1 do 
  Sl.Strings[i] := Ini.ReadString('Sektion', Sl.Strings[i], '');


Mit dem Code hast du in Stringlist alle deine Values einer Sektion.


Luncustaf - Sa 05.04.03 15:24

sers

hat einwandfreifunktioniert prinzip is mir auch klar super netten dank :)

gr€€tz


MSCH - Sa 05.04.03 18:09

brrrr
wer macht denn sowas?? :eyecrazy:

INI-Dateien sind in Ihrer größe begrenzt und

Quelltext
1:
  memo.lines.savetofile()                    


kann das in einer Zeile !

grez
msch


Popov - Sa 05.04.03 19:19

kannst du mir sagen auf was du dich beziehst?


MSCH - Sa 05.04.03 19:33

Popov hat folgendes geschrieben:
kannst du mir sagen auf was du dich beziehst?


see the first thread.
msch


Popov - Sa 05.04.03 21:33

Sowas mußt du sagen - ich meine auf welchen Beitrag du dich beziehst. Vor allen dann, wenn der Beitrag schon 10 andere Beiträge hinter sich hat.

Hier einige Daten zu Ini:

Die ganze Zeile inc. Key, Value und Rest dürfen max. 1024 Zeichen lang sein. Der 1025'ste Buchstabe wird nicht mehr beachtet.

Die Ini darf maximal 64KB groß sein.


Luncustaf - Sa 05.04.03 21:43

sers,

ini date iist genau für meine zwecke passend :) optimal sogar. speicher da nur paar informationen drin ab :)


thx nochmal für help

gr€€tz


Klabautermann - So 06.04.03 01:05

Hallo,
Popov hat folgendes geschrieben:
Die Ini darf maximal 64KB groß sein.

zumindest diese Einschränkung gild nicht mehr wenn du tMEMIniFile verwendest.

Gruß
Klabautermann