Wie ließt du denn die Datei ein? Also wenn du sie zeilenweise mit Readln einließt sollte das eig. kein Problem sein:
Du ließt alles bis zu der Zeile nach <root> ein:
(is jetzt n bisschen primitiver code)
Delphi-Quellcode:
assignfile(textfile1,filename1); //textfile1 aus dem gelesen werden soll
reset(textfile1);
assignfile(textfile2,filename2); //textfile2 in das geschrieben werden soll
rewrite(textfile2);
a:='';
while (not a='<root>') or (not eof(textfile1)) do
begin
readln(textfile1,a);
writeln(textfile2,a);
end;
a:='';
while (not a='Element3') or (not eof(textfile1)) do
readln(textfile1,a);
a:='';
while (not eof(textfile1)) do
begin
readln(textfile1,a);
writeln(textfile2,a);
end;
closefile(textfile1);
closefile(textfile2);
Das ganze könnte man dann in eine procedure schreiben, z.B.
Delphi-Quellcode:
procedure CopyLines(FromFile,ToFile:textfile;
TerminateString:String;
seekonly:boolean);
var a:string;
begin
a:='';
while (TerminateString='' or (not a=TerminateString)) or (not eof(textfile1)) do
begin
readln(textfile1,a);
if not seekonly then writeln(textfile2,a);
end;
end;
Mit der Procedur würde dein Programm dann so aussehen:
Delphi-Quellcode:
assignfile(textfile1,filename1); //textfile1 aus dem gelesen werden soll
reset(textfile1);
assignfile(textfile2,filename2); //textfile2 in das geschrieben werden soll
rewrite(textfile2);
CopyLines(textfile1,textfile2,'<root>',false);
CopyLines(textfile1,textfile2,'Eingabe3',true);
CopyLines(textfile1,textfile2,'',false);