Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#4

Re: Socket: Bild herunterladen

  Alt 18. Nov 2009, 22:38
Mal 'ne Frage:
Wie hast'n das obrige Zitat
Zitat:
HTTP/1.1 200 OK
Date: Wed, 18 Nov 2009 20:01:55 GMT
Server: Apache/2.2.10 (Linux/SUSE)
Last-Modified: Sun, 23 Aug 2009 09:05:27 GMT
ETag: "63059c-82da-471cb66fd03c0"
Accept-Ranges: bytes
Content-Length: 33498
Connection: close
Content-Type: image/jpeg

ÿØÿà
eigentlich bekommen?

Etwa in einem Memo/RichEdit ausgegeben?


Diese hören ja bei #0 auf.

Denn also ich es grade mal testete, da hatte ich anscheinend das gesamte Bild im Output-String.
Also zumindestens in D7 gibt .ReceiveText alle Daten anscheinend sogar unconvertiert zurück ... auch die 0#.



[add]
Delphi-Quellcode:
// Datenanfang suchen:
// Alternativ solange Zeilen rauslesen, bis eine Leerzeile gefunden wird.
// Man könnte die gelesenen Zeilen auch gleich rauslöschen
// und dann hätte man im String nur noch das Bild drinnen
i := Pos(#13#10#13#10, Output) + 4;
i2 := Pos(#10#10, Output) + 2;
if (i2 > 2) and (i2 < i) then i := i2;

if i > 4 then
begin
  // Daten lesen:
  S := TMemoryStream.Create;
  S.ReadBuffer(Output[i], Length(Output) - i + 1);
  S.Position := 0;
  jpeg.LoadFromStream(S);
end;

PS: ab Delphi 2009 wirst du massive Probleme bekommen, da dort .ReceiveText Unicode ist und somit vermutlich die Binärdaten zerstört werden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat