![]() |
Textdatei bis zum ersten Komma in ListBox laden
Hallo Leute,
ich bin gaaanz neu in Delphi und habe ne warscheinlich lächerliche Frage. Ich möchte den Inhalt einer Textdatei in eine Listbox laden, jedoch pro Zeile der Textdatei nur bis zum ersten Komma. Also pro Zeile steht in meiner *.txt "Artikel, Preis,EKP" usw... (ohne die " "). Jetzt möchte ich in die Listbox jeweis immer nur "Artikel" geladen haben, also jede Zeile runter aber nur bis zum ersten Komma. Wie stell ich das am geschickstesten an? danke für eure Hilfe =) |
Re: Textdatei bis zum ersten Komma in ListBox laden
Hallo,
Delphi-Quellcode:
//hiermit zerlegst du einen übergebenen string in seine einzelteile (getrennt durch (hier:) komma) und bekommst einen
//bestimmten teil zurück function TForm1.ParseString(sTrenner, sString: string; iCount: Integer): string; var i: Integer; sErgebnis: string; begin Result := ''; if Length(sString) > 0 then begin if sString[Length(sString)] <> sTrenner then begin sString := sString + sTrenner; end; for i := 1 to iCount do begin sErgebnis := Copy(sString, 0, Pos(LowerCase(sTrenner), LowerCase(sString)) - 1); sString := Copy(sString, Pos(LowerCase(sTrenner), LowerCase(sString)) + 1, Length(sString)); end; Result := sErgebnis; end; end; procedure TForm1.Button1Click(Sender: TObject); var slTemp: TStringlist; i: Integer; begin slTemp := TStringlist.Create; try slTemp.LoadFromFile('C:\Download\textdatei.txt'); for i := 1 to slTemp.Count - 1 do begin //from 1 cause no header ListBox1.Items.Add(ParseString(',', slTemp.Strings[i], 1)); //first item end; finally FreeAndNil(slTemp); end; end; |
Re: Textdatei bis zum ersten Komma in ListBox laden
Und angenommen, ich mächte nur jede zweite Zeile in die ListBox1 laden?
Das müsste doch mit einer Zeile Code machtbar sein?
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject); var sl: TStringList; zeilennr: integer; begin OpenDialog1.Execute; Edit3.Text:= Opendialog1.FileName; sl:=TStringList.Create; try sl.LoadFromFile(Edit3.Text); //Datei in Stringliste laden for zeilennr:=0 to sl.Count-1 do begin //Schleife über alle Zeilen, Zählung end; finally sl.free; //Objekt wieder freigeben ListBox1.Items.LoadFromFile(Edit3.Text); Kann das jemand vervollständigen? Also dass ich praktisch nur ungerade Zeilen importieren (Zeile 1, 3, 5, 7....) |
Re: Textdatei bis zum ersten Komma in ListBox laden
Delphi-Quellcode:
ungetestet
procedure TForm1.Button4Click(Sender: TObject);
var sl: TStringList; dataFile : TextFile; s : String; odd : Boolean; begin sl:=TStringList.Create; OpenDialog1.Execute; Edit3.Text:= Opendialog1.FileName; AssignFile(dataFile,OpenDialog1.FileName); {$I-} Reset(dataFile); {$I+} odd:=true; if ioresult = 0 then begin While not eof(dataFile) DO begin ReadLn(dataFile,s); if odd then begin s:=copy(s,1,pos(s,',')-1); sl.add(s); end; odd:= not odd; end; //while end; // if ioresult CloseFile(dataFile); // sl freigeben, wenn sie nit mehr benutzt wird end; Grüße Klaus [edit] odd := not odd versetzt [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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