Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Nur 1. Zeile laden (https://www.delphipraxis.net/58680-nur-1-zeile-laden.html)

Martin.Ghosts 10. Dez 2005 19:40


Nur 1. Zeile laden
 
Hallo,

Bei mir tritt folgendes Problem auf. Ich habe eine unbekannte Anzahl an txtdateien, die in eine ComboBox geladen werden.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

var LStrList: TStringlist;
    LPfad: String;
    LSearchRec: TSearchRec;

begin
  begin
    LPfad:='Name\';
    Combobox2.Items.Clear;
    LStrList:=TStringlist.Create;
    if FindFirst(LPfad +'*.txt', faAnyFile, LSearchRec) = 0 then
      begin
        repeat
          if LSearchRec.Attr and faDirectory = 0 then
            begin
              LStrList.LoadFromFile(LPfad + LSearchRec.Name);
              Combobox2.Items.Add(LStrList.Text);
            end;
        until FindNext(LSearchRec) <> 0;
        FindClose(LSearchRec);
      end;
    LStrList.Free;
  end;
end;
Das funktioniert auch soweit. Wie kann ich es schaffen, dass nur die erste Zeile geladen wird? Bei mir werden immer noch zwei senkrechte Balken angezeigt, ich vermute mal dass das ein Zeilenumbruch ist.

Danke schon mal, Martin.Ghosts

marabu 10. Dez 2005 20:13

Re: Nur 1. Zeile laden
 
Hallo Martin,

ist zwar alles sehr unkonventionell, aber vielleicht reicht dir ja schon eine kleine Änderung:

Delphi-Quellcode:
Combobox2.Items.Add(LStrList[0]); // nur die erste Zeile!
Grüße vom marabu

himitsu 10. Dez 2005 20:16

Re: Nur 1. Zeile laden
 
Dat sollte es sein, dann Combobox2.Items.Add(LStrList.Text) fügt ja schließlich immer den gedsammten Inhalt von LStrList hjinzu und nicht nur die 1. Zeile ;)

Ansonsten würdes du bestimmt auch besser kommen, wenn du nur mit AssignFile, Reset und ReadLn die erste Zeile ausliest, denn mit 'ner StringList liest du ja immer die komplette Datei ein, selbst wenn du dann nur die 1. Zeile verwendest.

Martin.Ghosts 10. Dez 2005 20:19

Re: Nur 1. Zeile laden
 
Ja, das hat geholfe, vielen Dank.

DP-Maintenance 10. Dez 2005 22:29

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Internet / LAN / ASP.NET" nach "Object-Pascal / Delphi-Language" verschoben.
Hat nichts mit Netzwerk zu tun

jim_raynor 10. Dez 2005 22:31

Re: Nur 1. Zeile laden
 
Ich würde es lieber mit AssignFile und ReadLn und TextFile machen. Hat den Vorteil, dass es wesentlich schneller geht, da nicht die gesamte Datei immer geladen wird.

ichbins 11. Dez 2005 08:16

Re: Nur 1. Zeile laden
 
So:

Delphi-Quellcode:
var
  t:textfile;
  s:string;
begin
  assignfile(t,DATEINAME);
  filemode:=0;
  reset(t);
  readln(t,s);
  closefile(t);
  combobox1.items.add(s);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 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