Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateizeilen als String speicher (https://www.delphipraxis.net/70735-dateizeilen-als-string-speicher.html)

mfs 3. Jun 2006 18:53


Dateizeilen als String speicher
 
Hi,
da ich immer noch am Anfang bin, habe ein folgendes Problem:

ich möchte eine xml-datei oeffnen und jede Zeile aus dieser Datei in Array "ZeilenListe" speichern. Also ZeilenListe[0] sollte dann die 1. Zeile der Datei enthalten usw.

Dazu habe ich folgendes gemacht:
(weiss nicht ob es so funktionieren könnte)


Delphi-Quellcode:
procedure AttributeLaden;
var j:integer;
    ZeilenListe:array of string;
begin

   SetLength(ZeilenListe,Zeilenanzahl());

   sl:=TStringlist.create;
   sl.loadfromfile('CAPI_Konfigurtion.xml');
   j:=0;
   while (j< sl.count)do inc(j);
   ZeilenListe[j]:= ... ; //Was soll anstatt "..." stehen??
   sl.free;

end;

function Zeilenanzahl():integer;
begin
   sl:=TStringlist.create;
   sl.loadfromfile('CAPI_Konfigurtion.xml');
   i:=0;
   while (i< sl.count) do inc(i);
   sl.free;
   return:=i;
end;

Andere Vorschlaege sind willkommen.

Gruss mfs

[edit=alcaeus]Delphi-Codes gesetzt. Bitte in Zukunft selbst setzen. Danke. Mfg, alcaeus[/edit]

DP-Maintenance 3. Jun 2006 19:00

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Besser hier als dort ;)

mfs 3. Jun 2006 19:17

Re: Dateizeilen als String speicher
 
Danke .. ich habs :dancer:


Delphi-Quellcode:
procedure AttributeLaden;
var j:integer;
    ZeilenListe:array of string;
    sl:TStringList;
begin

   SetLength(ZeilenListe,Zeilenanzahl());
   sl:=TStringlist.create;
   sl.loadfromfile('CAPI_Konfigurtion.xml');
   j:=0;
   while (j< sl.count)do inc(j);
   ZeilenListe[j]:= sl[j] ;
   sl.free;

end;

function Zeilenanzahl():integer;
var i:integer;
    sl:TStringList;
begin
   sl:=TStringlist.create;
   sl.loadfromfile('CAPI_Konfigurtion.xml');
   i:=0;
   while (i< sl.count) do inc(i);
   sl.free;
   result:=i;
end;
Aller... Weiterhin einen schoenen Abend noch wunsche ich euch.
mfs

Hawkeye219 3. Jun 2006 19:40

Re: Dateizeilen als String speicher
 
Einige Fragen zu deiner Lösung:

(1) Überlege einmal, welchen Wert die Variable j (bzw. i in der Funktion Zeilenanzahl) nach der WHILE-Schleife in jedem Fall besitzt.
(2) benötigst du dann die Funktion Zeilenanzahl wirklich noch?
(3) ist die Zuweisung zu ZeilenListe[j] möglich?
(4) macht die Prozedur wirklich das, was du von ihr erwartest?

Gruß Hawkeye

marabu 3. Jun 2006 19:46

Re: Dateizeilen als String speicher
 
Hi.

Warum speicherst du deine Zeilen nochmal um, wenn du sie schon in einer StringList hast? Weißt du, dass der Speicher für deine ZeilenListe, da sie lokal deklariert wird, nach dem Beenden deiner Prozedur AttributeLaden wieder freigegeben wird? Weißt du, dass Delphi zur Verarbeitung von XML-Dokumenten die Komponente TXMLDocument mitbringt?

Delphi-Quellcode:
function CreateStringList(fn: TFileName): TStringList;
var
  j: Integer;
  ZeilenListe: array of String;
  sl: TStringList;
begin
  Result := TStringList.Create;
  with Result do
  begin
    LoadFromFile(fn);
    ShowMessage(Format('Zeilenzahl = %d', [Count]));
  end;
end;
Auch dir einen schönen Abend.

marabu

PS: Und für Hawkeye auch einen solchen. Habe zu langsam getippt, aber dennoch ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 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