Jetzt noch einmal für ganz dumme (für mich).
ich lade eine Datei in einen Stream und den Inhalt ändere ich in MD5 oder sonst was.
Delphi-Quellcode:
aFileStream.Position := 0;
SetLength(Bytes, aFileStream.Size);
aFileStream.Read(Bytes[0], Length(Bytes));
Bytes := System.hash.THashMD5.GetHashBytes(TEncoding.ANSI.GetString(Bytes));
aFileStream.Position := aFileStream.Size;
aFileStream.Write(Bytes[0], Length(Bytes));
Wenn ich mir
TEncoding.ANSI.GetString(Bytes)
über Showmessage anzeigen lasse, sehe ich den Dateiinhalt korrekt dargestellt.
Schreibe ich Bytes dann mit Write in den Stream/die Datei, kommt nur Salat in der Datei an.
Bitte sagt mir, dass ich mich auf dem richtigen Weg befinde
Oder ist das eher so vorgesehen?
Delphi-Quellcode:
aFileStream.Position := 0;
SetLength(Bytes, aFileStream.Size);
aFileStream.Read(Bytes[0], Length(Bytes));
s := System.hash.THashMD5.GetHashString(TEncoding.ANSI.GetString(Bytes));
aFileStream.Position := aFileStream.Size;
aFileStream.Write(s[1], Length(s) * SizeOf(Byte));