Hallo,
ich habe ein Problem für das ich bislang keine Lösung habe finden können:
Ich möchte aus einer Quelldatei byteweise Daten in eine Zieldatei kopieren. Allerdings möchte ich nicht die gesamte Datei kopieren, sondern nur bestimmte Teile. Hierzu habe ich im Vorhinein die Datei durchsucht und die Anfangspositionen und Längen der Teile ermittelt, die
nicht kopiert werden sollen. Der Benutzer soll zusätzlich noch auswählen können, welche Daten
nicht mit übernommen werden sollen.
Ich hatte schon die Idee über einen Zähler die Position mit aufzuzeichnen und die Sache etwa so zu lösen:
Delphi-Quellcode:
Byte:=0;
While Not EOF(FromFile) Do
Begin
Read(FromFile,Byte);
Case P Of
Start1..Ende1 : If Not CheckBox1.Checked Then Write(ToFile,Byte);
Start2..Ende2 : If Not CheckBox2.Checked Then Write(ToFile,Byte);
Start3..Ende3 : If Not CheckBox3.Checked Then Write(ToFile,Byte);
.
. // Wenn nicht zum löschen ausgewählt,
. // nur dann kopieren!
End;
Inc(P);
End;
Das dumme ist nur, dass bei den
Case oder
X in [Y..Z] Abfragen keine Variablen zulässig sind, was diesen Versuch nicht glücken lässt.
Hat jemand eine Idee?
Ich schätze, dass es hierfür sogar schon eine Lösung im Forum gibt und ich mich nur zu dumm angestellt habe, sie zu finden.