AGB  ·  Datenschutz  ·  Impressum  







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

Leere Zeilen beim Einlesen überspringen

Ein Thema von JulianT · begonnen am 8. Jun 2015 · letzter Beitrag vom 8. Jun 2015
Antwort Antwort
JulianT
(Gast)

n/a Beiträge
 
#1

Leere Zeilen beim Einlesen überspringen

  Alt 8. Jun 2015, 08:15
Delphi-Version: XE4
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:
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;
Kann mir jemand vlt helfen und sagen, wie das geht? :=

Julian
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Leere Zeilen beim Einlesen überspringen

  Alt 8. Jun 2015, 08:25
Guten Morgen,

vor dem Hinzufügen in die Listbox prüfen ob die Zeile etwas enthält.

Delphi-Quellcode:
if length(zeile) > 0 then
 ...
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#3

AW: Leere Zeilen beim Einlesen überspringen

  Alt 8. Jun 2015, 09:20
Zum Glück ist der Compiler meistens intelligent genug, so daß er if length(zeile) > 0 then oftmals gegen ein einfaches if Zeile <> 'then ersetzt.

Aber so oder so, wenn man das prüft, was auch in der Fragestellung drin steht, dann hat man natürlich die Lösung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Leere Zeilen beim Einlesen überspringen

  Alt 8. Jun 2015, 09:29
Delphi-Quellcode:
  repeat
      ReadLn(TextDatei,Zeile);
      Inc(Anzahl);
      if Trim(Zeile) <> 'then
        ListBox1.Items.Add(AnsiUpperCase(Zeile));
  until EOF(TextDatei);
Evtl. noch Trim einsetzen, wenn für dich Leer eine Zeile ohne Inhalt, aber evtl. mit Leerzeichen bedeutet.

//EDIT:

Mal so ein Tipp: Items von TListBox ist eine TStrings Klasse, d. h. du kannst den Inhalt auch laden mit: ListBox1.Items.LoadFromFile(TextDatei); Und wegen der Leerzeilen:
Delphi-Quellcode:
  ListBox1.Items.LoadFromFile(TextDatei);
  for i := ListBox1.Items.Count - 1 downto 0
    if Trim(ListBox1.Items[i]) = 'then
      ListBox1.Items.Delete(i);

Geändert von Popov ( 8. Jun 2015 um 10:04 Uhr) Grund: Fehler korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#5

AW: Leere Zeilen beim Einlesen überspringen

  Alt 8. Jun 2015, 09:48
Delphi-Quellcode:
if Trim(Zeile) <> 'then
  ListBox1.Items.Add(...);
Wirklich nicht so?

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Leere Zeilen beim Einlesen überspringen

  Alt 8. Jun 2015, 10:05
Wirklich nicht so?
Jep. Nicht drauf geachtet.
  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 11:06 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