Autor Beitrag
Wolfgang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mo 30.01.06 09:13 
Hi!

Ich hab schon überall gesucht aber ich finds nicht.
Kann mir bitte wer sagen wie ich eine bestimmte Anzahl an Zeichen pro Zeile aus einem Textfile einlesen kann?

Beispiel:
Block1 Block2 Block3

Jetzt möchte ich die ersten 10 Zeichen einlesen, anschließend dei nächsten 15 danach die letzten 20. Diesen Vorgang möchte ich für jede Zeile wiederholen, bis ich das Ende des Textfiles erreiche.

Habs mit Read und BlockRead probiert, funktioniert aber nicht.

thx im Vorhnein
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Mo 30.01.06 09:19 
Hallo,

wie meinst Du das genau.
Kannst Du nicht einfach eine Zeile einlesen und dann mit copy zerlegen??
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
while NOT(EOF(TextDatei)) do
  begin
  readln(TextDatei,strEingeleseneZeile);
  strBlock1:=copy(strEingeleseneZeile,1,10);
  strBlock2:=copy(strEingeleseneZeile,11,15);
  strBlock3:=copy(strEingeleseneZeile,26,20);
  MachWaS;
  end;


Gruss Horst
Wolfgang Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mo 30.01.06 09:32 
Danke Horst!

Ich kannte diesen Befehl noch nicht. Programmiere erst seit etwa zwei Monate.

Jetzt funktioniert es problemlos.

Danke sehr!
Wolfgang Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mo 30.01.06 09:42 
Hi!

Nur eins noch.

Wenn ich die Daten jetzt wieder speichern will, wie kann ich sie dann wieder an der gleichen Stelle speichern, an der ich sie eingelesen habe?

thx
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Mo 30.01.06 13:29 
Hallo,

nein, kann man so einfach nicht.
Ueblicherweise wird eine Textdatei zeilenweise:
eingelesen,verarbeitet und in eine andere Textdatei weggeschrieben.
Anschliessend kann man die Dateien loeschen, umbenennen. (erase,rename www.delphibasics.co....ction.asp?Main=Files ).

Gruss Horst
Wolfgang Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mo 30.01.06 13:39 
Hi Horst!

Macht nichts.

Ich lade die Daten einfach zuerst in RichEdit und verwende dann SaveToFile. Müsste eigentlich funktionieren, wenn ich darauf achte, dass im Textfile immer die richtige Anzahl an Leerschritten hinter den Worten stehen.

Hab zwar gerade kein Delphi zur Hand aber:

ausblenden Delphi-Quelltext
1:
RichEdit1.Lines.Add(strBlock1+ strBlock2 + strBlock3)					


müsste gehen, da er mit copy ja die Leerzeichen mitkopiert.

Wenn du was besseres weißt oder die Möglichkeit Schrott ist, kannst du mir das ja noch mitteilen.

Danke für deine Hilfe. Weiß ich zu schätzen!

thx Wolfgang

_________________
Two or three tons of stone can really get you down, and keep you there!