![]() |
Delphi-Version: XE4
Leere Zeilen beim Einlesen überspringen
Hallo, wenn ich aus einer Datei etwas in eine ListBox einlesen will, klappt das soweit ganz gut, nur würde ich z.B. gerne die ganzen leeren Zeilen weg lassen, sodass diese nicht mit übernommen werden. Bin leider etwas ansatzlos.
Hier der Quellcode dafür.
Delphi-Quellcode:
Kann mir jemand vlt helfen und sagen, wie das geht? :=
procedure TForm1.ButtonEinlesenClick(Sender: TObject);
var Anzahl : Integer; Zeile : String; TextDatei : TextFile; begin ListBox1.Items.Clear; Anzahl:=0; AssignFile(TextDatei,'Hier steht mein Pfad'); Reset(TextDatei); repeat ReadLn(TextDatei,Zeile); Inc(Anzahl); ListBox1.Items.Add(AnsiUpperCase(Zeile)); until EOF(TextDatei); CloseFile(TextDatei); AnzahlEdit.Text:=IntToStr(Anzahl); end; Julian |
AW: Leere Zeilen beim Einlesen überspringen
Guten Morgen,
vor dem Hinzufügen in die Listbox prüfen ob die Zeile etwas enthält.
Delphi-Quellcode:
Grüße
if length(zeile) > 0 then
... Klaus |
AW: Leere Zeilen beim Einlesen überspringen
Zum Glück ist der Compiler meistens intelligent genug, so daß er
Delphi-Quellcode:
oftmals gegen ein einfaches
if length(zeile) > 0 then
Delphi-Quellcode:
ersetzt.
if Zeile <> '' then
Aber so oder so, wenn man das prüft, was auch in der Fragestellung drin steht, dann hat man natürlich die Lösung. :roll: |
AW: Leere Zeilen beim Einlesen überspringen
Delphi-Quellcode:
Evtl. noch Trim einsetzen, wenn für dich Leer eine Zeile ohne Inhalt, aber evtl. mit Leerzeichen bedeutet.
repeat
ReadLn(TextDatei,Zeile); Inc(Anzahl); if Trim(Zeile) <> '' then ListBox1.Items.Add(AnsiUpperCase(Zeile)); until EOF(TextDatei); //EDIT: Mal so ein Tipp: Items von TListBox ist eine TStrings Klasse, d. h. du kannst den Inhalt auch laden mit:
Delphi-Quellcode:
Und wegen der Leerzeilen:
ListBox1.Items.LoadFromFile(TextDatei);
Delphi-Quellcode:
ListBox1.Items.LoadFromFile(TextDatei);
for i := ListBox1.Items.Count - 1 downto 0 if Trim(ListBox1.Items[i]) = '' then ListBox1.Items.Delete(i); |
AW: Leere Zeilen beim Einlesen überspringen
Delphi-Quellcode:
Wirklich nicht so?
if Trim(Zeile) <> '' then
ListBox1.Items.Add(...); Warum eigentlich Repeat-Until und nicht While-Do? Ist die Datei leer, dann gibt es keine Zeile, die man auslesen kann, also vorher prüfen. |
AW: Leere Zeilen beim Einlesen überspringen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz