Das entwickelt sich zu einer schönen Übung sehe ich gerade.
Ich habe mittlerweile alles hinbekommen außer..
ich schaffe es nicht die Datei abzüglich der letzten 16 Bytes einzulesen. Ich bekomme nur Chinesisch
Delphi-Quellcode:
// Dateiinhalt:
// TESTTESTTEST_d0f980502943ec62a52e0a44280a5066
aFileStream := TFileStream.Create(sFile, fmOpenRead or fmShareDenyWrite);
try
// Get hash of the original file content without the hash we appended before
aFileStream.Seek(32 * SizeOf(Char), soFromEnd); // gehe an die End-Position-32 Zeichen (also bis zum _)
SetLength(s, aFileStream.Position * SizeOf(Char)); // setze die Länge von s auf Länge von "TESTTESTTEST_"
aFileStream.Read(s[1], Length(s) * SizeOf(Char));
ShowMessage(s); // Chinesisch?
finally
aFileStream.Free;
end;
Alles andere klappt. Die letzten 32 Zeichen lese ich so aus
Delphi-Quellcode:
SetLength(sOut, 32 * SizeOf(Char));
aFileStream.Position := aFileStream.Size - Length(sOut);
aFileStream.Read(sOut[1], Length(sOut) * SizeOf(Char));
// sOut enthält nun d0f980502943ec62a52e0a44280a5066