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) = '0' then
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;