AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Textdatei bis zum ersten Komma in ListBox laden
Thema durchsuchen
Ansicht
Themen-Optionen

Textdatei bis zum ersten Komma in ListBox laden

Ein Thema von r4in · begonnen am 27. Apr 2006 · letzter Beitrag vom 27. Apr 2006
Antwort Antwort
r4in

Registriert seit: 27. Apr 2006
2 Beiträge
 
#1

Textdatei bis zum ersten Komma in ListBox laden

  Alt 27. Apr 2006, 12:14
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 =)
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Textdatei bis zum ersten Komma in ListBox laden

  Alt 27. Apr 2006, 12:28
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;
  Mit Zitat antworten Zitat
r4in

Registriert seit: 27. Apr 2006
2 Beiträge
 
#3

Re: Textdatei bis zum ersten Komma in ListBox laden

  Alt 27. Apr 2006, 12:58
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....)
  Mit Zitat antworten Zitat
Klaus01

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

Re: Textdatei bis zum ersten Komma in ListBox laden

  Alt 27. Apr 2006, 13:15
Delphi-Quellcode:
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;
ungetestet

Grüße
Klaus

[edit] odd := not odd versetzt [/edit]
Klaus
  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 18:09 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