AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateizeilen als String speicher

Ein Thema von mfs · begonnen am 3. Jun 2006 · letzter Beitrag vom 3. Jun 2006
Antwort Antwort
mfs

Registriert seit: 9. Mai 2006
35 Beiträge
 
#1

Dateizeilen als String speicher

  Alt 3. Jun 2006, 18:53
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]
  Mit Zitat antworten Zitat
3. Jun 2006, 19:00
Dieses Thema wurde von "alcaeus" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Besser hier als dort
mfs

Registriert seit: 9. Mai 2006
35 Beiträge
 
#3

Re: Dateizeilen als String speicher

  Alt 3. Jun 2006, 19:17
Danke .. ich habs


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
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Dateizeilen als String speicher

  Alt 3. Jun 2006, 19:40
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Dateizeilen als String speicher

  Alt 3. Jun 2006, 19:46
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 ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 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