![]() |
Delimiter Textfile
Grüß euch herzlich...
versuche verzweifelt aus einer Textdatei die folgendermaßen aufgebaut ist:
Code:
die erste Zahl bis zum Semikolon in ein Memofeld 1 und die 2 Zahl nach dem Semikolon in Memofeld 2 zuschreiben.
1;12
10;100 1;12 2;51 Bei der ersten Zeile hab ich kein problem... Hier der Code
Delphi-Quellcode:
könnte mir jemand helfen, wie ich eine Schleife konstruiere kann, damit ich die ganze Textdatei abarbeiten kann.
procedure TForm1.Button2Click(Sender: TObject);
var Datei : TStringList; TextZeile0, textzeile1 : string; i,y:integer; begin i:=0; y:=1; Datei := TStringList.Create; try OpenDialog1.Execute; Datei.LoadFromFile(OpenDialog1.FileName); Datei.Delimiter := ';'; Datei.DelimitedText := Datei.text; label1.Caption:=inttostr(Datei.count); TextZeile0:=Datei[i]; TextZeile1:=Datei[y]; Memo1.Lines.Add(TextZeile0); Memo2.Lines.Add(TextZeile1); finally Datei.Free; end; end; Besten Dank im voraus. chris |
AW: Delimiter Textfile
Delphi-Quellcode:
for i:=0 to Datei.count-1 do
Memo1.Lines.Add(Datei.Strings[i]); ...... |
AW: Delimiter Textfile
Kaki, da fehlt aber eine Kleinigkeit ;)
Delphi-Quellcode:
Oder auch
for i := 0 to Datei.Count - 1 do
if Odd(i) then Memo2.Lines.Add(Datei[i]) else Memo1.Lines.Add(Datei[i]);
Delphi-Quellcode:
Ungetestet
var Memo: TMemo;
... for i := 0 to Datei.Count - 1 do begin if Odd(i) then Memo := Memo2 else Memo := Memo1; Memo.Lines.Add(Datei[i]); end; |
AW: Delimiter Textfile
Ist zwar recht einfach gestrickt, funktioniert aber völlig Problemlos. Sofern, das 3. Memofeld nicht stört...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, j : word; s : string; begin memo3.Lines.LoadFromFile('datei.txt'); for i:=0 to memo3.Lines.Count-1 do begin s:=memo3.Lines[i]; j:=pos(';',s); memo1.Lines.Add(copy(s,1,j-1)); delete(s,j,length(s)-j); memo2.Lines.Add(s); end; end; |
AW: Delimiter Textfile
Ich danke Euch für die schnelle Antwort...
stand irgendwie auf der Leitung.... chris |
AW: Delimiter Textfile
Hallo,
hier mal eine Funktion aus meiner Funktionskiste. Ich danke dem Autor der mich mit seiner Orginalfunktion inspirierte, leider ist dieser mir unbekannt.
Delphi-Quellcode:
Mfg Marko
{-------------------------------------------------------------------------------
Procedure: splitOutIndex DateTime: 2009.05.20 Arguments: const Source: String; const Delimiter: String; Index: Integer Result: String Aufgabe: Funktion zum heraussplitten eines einzelnen Indexes Aufrufbeispiel: var LZumZerlegen: String; begin LZumZerlegen := 'Text1|Text2|Text3'; ShowMessage(SplitOutIndex(LZumZerlegen, '|', 1)); //Zeigt "Text2" end; -------------------------------------------------------------------------------} function splitOutIndex(const Source: string; const Delimiter: string; Index: Integer): string; var Lcount, Lnumber, LSourceLength, LDelLength, LStart, LEnd: Integer; begin LCount := 1; Lnumber := 0; if Index = 0 then LStart := 1 else LStart := 0; LEnd := 0; result := ''; LSourceLength := length(Source); LDelLength := length(Delimiter); while (LCount <= LSourceLength) and (LEnd = 0) do begin if copy(Source, LCount, LDelLength) = Delimiter then begin inc(LNumber); if LNumber >= Index then begin if LStart = 0 then LStart := LCount + LDelLength else begin LEnd := LCount; result := copy(Source, LStart, LEnd - LStart); end; end; Lcount := Lcount + LDelLength; end else inc(LCount); end; if (LStart > 0) and (LEnd = 0) then result := copy(Source, LStart, LSourceLength - LStart + 1); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 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