Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#55

AW: Datei an Datei anhängen

  Alt 26. Sep 2010, 17:29
Ich habe da so meine Bedenken wegen Unicode. Erstmal scheint alles zu stimmen (wenn der Text Ansi ist). Die ersten 4 Byte enthalten die Zahl 8. Dann folgen 8 Zeichen und dann folgen wieder 4 Byte und in denen steht auch die Länge des Rests.

Könntest du vielleicht die JPG noch mit hochladen?

[edit]Nachdem das Bild hochgeladen ist: Er scheint 8 Bytes zu früh anfangen zu schreiben. Deshalb überleben nur 4 Zeichen von deinem Satz. Und dann setzte noch ein drauf und setzt dann nach 4 Byte von JPG noch deine 4 Byte für die Länge.[/edit]

[edit]In dieser Zeile lStream.Position := lStream.Position + sizeof(lDataSize); hauts in aus den Socken! Das zweite lStream.Position muss lStartPos sein! Weil die Position ist nach dem setzen der Länge des Textes 4 (weil er 4 Bytes am Anfang der Datei geschrieben hat). Dann addierst du noch die Länge von der Größe dazu (auch 4 Byte). Stattdessen musst du aber am Ende der Datei springen und dann noch 4 Byte weiter (um Platz für die Größe zu lassen).

Übrigens könnte man da auch zwei Methoden daraus machen:
Delphi-Quellcode:
function WriteStream(Source, Dest : TStream; Offset : Integer) : Integer;
var
  lDataSize : Cardinal;
begin
  Dest.Position := Offset + SizeOf(lDataSize);
  Dest.CopyFrom(Source);
  Result := Dest.Position;
  Dest.Position := Offset;
  lDataSize := Sourc....;
  Dest.Write(lDataSize, SizeOf(lDataSize));
end;
[/edit]

MfG
Fabian

PS: Von JFIF scheint es nur das IF überlebt zu haben?!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler

Geändert von xZise (26. Sep 2010 um 17:43 Uhr)
  Mit Zitat antworten Zitat