![]() |
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
Dieses Thema wurde von "alcaeus" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Besser hier als dort ;) |
Re: Dateizeilen als String speicher
Danke .. ich habs :dancer:
Delphi-Quellcode:
Aller... Weiterhin einen schoenen Abend noch wunsche ich euch.
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; mfs |
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 |
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:
Auch dir einen schönen Abend.
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; marabu PS: Und für Hawkeye auch einen solchen. Habe zu langsam getippt, aber dennoch ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz