AGB  ·  Datenschutz  ·  Impressum  







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

Delimiter Textfile

Ein Thema von keine_ahnung · begonnen am 14. Aug 2010 · letzter Beitrag vom 14. Aug 2010
Antwort Antwort
keine_ahnung

Registriert seit: 5. Mär 2009
5 Beiträge
 
#1

Delimiter Textfile

  Alt 14. Aug 2010, 12:01
Grüß euch herzlich...
versuche verzweifelt aus einer Textdatei die folgendermaßen aufgebaut ist:
Code:
1;12
10;100
1;12
2;51
die erste Zahl bis zum Semikolon in ein Memofeld 1 und die 2 Zahl nach dem Semikolon in Memofeld 2 zuschreiben.
Bei der ersten Zeile hab ich kein problem...
Hier der Code
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
  var
  Datei : TStringList;
  TextZeile0, textzeile1 : string;
  i,y:integer;
begin
    i:=0;
    y:=1;
    Datei := TStringList.Create;
    try
      OpenDialog1.Execute;
      Datei.LoadFromFile(OpenDialog1.FileName);
      Datei.Delimiter := ';';
      Datei.DelimitedText := Datei.text;
      label1.Caption:=inttostr(Datei.count);
      TextZeile0:=Datei[i];
      TextZeile1:=Datei[y];
      Memo1.Lines.Add(TextZeile0);
      Memo2.Lines.Add(TextZeile1);
   finally
   Datei.Free;
  end;
end;
könnte mir jemand helfen, wie ich eine Schleife konstruiere kann, damit ich die ganze Textdatei abarbeiten kann.
Besten Dank im voraus.
chris

Geändert von mkinzler (14. Aug 2010 um 12:20 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Delimiter Textfile

  Alt 14. Aug 2010, 12:04
Delphi-Quellcode:
for i:=0 to Datei.count-1 do
         Memo1.Lines.Add(Datei.Strings[i]);
        ......
Gruss Kaki

Repeat Until true=false;

Geändert von Der.Kaktus (14. Aug 2010 um 12:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delimiter Textfile

  Alt 14. Aug 2010, 12:14
Kaki, da fehlt aber eine Kleinigkeit
Delphi-Quellcode:
for i := 0 to Datei.Count - 1 do
  if Odd(i) then
    Memo2.Lines.Add(Datei[i])
  else
    Memo1.Lines.Add(Datei[i]);
Oder auch
Delphi-Quellcode:
var Memo: TMemo;
...
for i := 0 to Datei.Count - 1 do
  begin
    if Odd(i) then
      Memo := Memo2
    else
      Memo := Memo1;
    Memo.Lines.Add(Datei[i]);
  end;
Ungetestet
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von simmi
simmi

Registriert seit: 24. Nov 2004
Ort: Röbel/Müritz
112 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Delimiter Textfile

  Alt 14. Aug 2010, 12:20
Ist zwar recht einfach gestrickt, funktioniert aber völlig Problemlos. Sofern, das 3. Memofeld nicht stört...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, j : word;
    s : string;
begin
memo3.Lines.LoadFromFile('datei.txt');
for i:=0 to memo3.Lines.Count-1 do
  begin
    s:=memo3.Lines[i];
    j:=pos(';',s);
    memo1.Lines.Add(copy(s,1,j-1));
    delete(s,j,length(s)-j);
    memo2.Lines.Add(s);
  end;
end;
Uwe
  Mit Zitat antworten Zitat
keine_ahnung

Registriert seit: 5. Mär 2009
5 Beiträge
 
#5

AW: Delimiter Textfile

  Alt 14. Aug 2010, 12:30
Ich danke Euch für die schnelle Antwort...
stand irgendwie auf der Leitung....
chris
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#6

AW: Delimiter Textfile

  Alt 14. Aug 2010, 12:41
Hallo,

hier mal eine Funktion aus meiner Funktionskiste. Ich danke dem Autor der mich mit seiner Orginalfunktion inspirierte, leider ist dieser mir unbekannt.

Delphi-Quellcode:
{-------------------------------------------------------------------------------
  Procedure: splitOutIndex
  DateTime:  2009.05.20
  Arguments: const Source: String; const Delimiter: String; Index: Integer
  Result:    String
  Aufgabe:  Funktion zum heraussplitten eines einzelnen Indexes
  Aufrufbeispiel:
                var
                LZumZerlegen: String;
                  begin
                        LZumZerlegen := 'Text1|Text2|Text3';
                        ShowMessage(SplitOutIndex(LZumZerlegen, '|', 1));  //Zeigt "Text2"
                  end;
-------------------------------------------------------------------------------}


function splitOutIndex(const Source: string; const Delimiter: string; Index: Integer): string;
var
  Lcount, Lnumber, LSourceLength, LDelLength, LStart, LEnd: Integer;
begin
  LCount := 1;
  Lnumber := 0;
  if Index = 0 then LStart := 1 else LStart := 0;
  LEnd := 0;
  result := '';
  LSourceLength := length(Source);
  LDelLength := length(Delimiter);
  while (LCount <= LSourceLength) and (LEnd = 0) do
    begin
      if copy(Source, LCount, LDelLength) = Delimiter then
        begin
          inc(LNumber);
          if LNumber >= Index then
            begin
              if LStart = 0 then
                LStart := LCount + LDelLength
              else
                begin
                  LEnd := LCount;
                  result := copy(Source, LStart, LEnd - LStart);
                end;
            end;
          Lcount := Lcount + LDelLength;
        end else inc(LCount);
    end;
  if (LStart > 0) and (LEnd = 0) then
    result := copy(Source, LStart, LSourceLength - LStart + 1);
end;
Mfg Marko
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  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 20:45 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