Einzelnen Beitrag anzeigen

Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: komische TXT-Datei in Array auslesen

  Alt 12. Nov 2004, 11:20
Servus!
2 kleine Tips für die Zukunft:
1) Was dir bisher keiner gesagt hat: Anstatt deiner "LeerzeichenSchneiden" kannste auch einfach "trim" benutzen. Die Funktion schneidet sogar vorne und hinten alle Leerzeichen ab.
2) Wenn du den Code etwas formatierst, dann wird er gleich viel übersichtlicher. (Sprich: Jeden Block ein bißchen einrücken, also nach jedem Begin usw.)

Könnte dann also so aussehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStrings; //Variable für Stringlist definieren
    Zeile, Endzeile, Zname, Zvorname, Zklasse: integer;
    klassenbez: string ;

begin
  sl:=TStringlist.Create; //StringList erzeugen
  sl.LoadFromFile('E:\...\schueler5a.txt'); //Die Zeilen einer Datei in eine Stringlist laden
  //sl.Add('Hallo'); //eine Zeichenkette ans Ende der Stringlist hinzufügen
  Zname := 20; // Der Name geht von Zeichen 1-20 = 20 Zeichen Zeichen 21 = TAB
  Zvorname := 22 ; // Der Vorname geht von Zeichen 22-43 = 22 Zeichen Zeichen 44 TAB
  Zklasse := 8 ; // Die Klasse geht von 44 bis 51
  Endzeile:= sl.count-1 ; // Endzeile

  For Zeile:= 3 to Endzeile do
  begin
    StringGrid1.Cells[1,Zeile-2]:= trim( Copy(sl.strings[Zeile],1,Zname) );
    StringGrid1.Cells[2,Zeile-2]:= trim( Copy(sl.strings[Zeile],22,Zvorname) );
    klassenbez := trim( Copy(sl.strings[Zeile],45,Zklasse) );

    StringGrid1.Cells[4,Zeile-2]:= copy(klassenbez,3,1);
    if Copy(klassenbez,0,1) = '0then
      StringGrid1.Cells[3,Zeile-2]:= copy(klassenbez,2,1)
    else
      StringGrid1.Cells[3,Zeile-2]:= copy(klassenbez,1,2);


  end; // end of For

  sl.SaveToFile('datei.txt'); //Die Zeichenketten der Stringlist in Datei speichern

  sl.free;

end;
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat