ifname,ofname:string;
sourceStream, targetStream: TFileStream;
filesizevalue, size:integer;
Buffer: AnsiString;
begin
ifname := 'U:\SYSTEM\enwiktionary-latest-stub-articles\stub-articles.xml';
ofname := 'A:1.txt';
filesizevalue:=900000;
size := 1;
SetLength(Buffer, filesizevalue);
sourceStream := TFileStream.Create(ifname, fmOpenRead);
targetStream := TFileStream.Create(ofname, fmCreate or fmOpenWrite);
try
sourceStream.seek(0, soFromBeginning);
sourceStream.ReadBuffer(PAnsiChar(Buffer)^, filesizevalue * size);
buffer := stringreplace(buffer, '<page>','<p>', [rfReplaceAll]);
buffer := stringreplace(buffer, '</page>','</p>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<title>','<t>', [rfReplaceAll]);
buffer := stringreplace(buffer, '</title>','</t>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<ns>','<n', [rfReplaceAll]);
buffer := stringreplace(buffer, '</ns>','>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<revision>','<r>', [rfReplaceAll]);
buffer := stringreplace(buffer, '</revision>','</r>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<id>','<i', [rfReplaceAll]);
buffer := stringreplace(buffer, '</id>','>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<parentid>','<pi', [rfReplaceAll]);
buffer := stringreplace(buffer, '</parentid>','>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<contributor>','', [rfReplaceAll]);
buffer := stringreplace(buffer, '</contributor>','', [rfReplaceAll]);
buffer := stringreplace(buffer, '<username>','<u>', [rfReplaceAll]);
buffer := stringreplace(buffer, '</username>','</u>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<comment>','<c>', [rfReplaceAll]);
buffer := stringreplace(buffer, '</comment>','</c>', [rfReplaceAll]);
buffer := stringreplace(buffer, '<text id="','<t =', [rfReplaceAll]);
buffer := stringreplace(buffer, '" bytes="',' b=', [rfReplaceAll]);
targetStream.Write(PAnsiChar(buffer)^, length(buffer) );
finally
sourceStream.free;
targetStream.free;
end;