Witam.
Mam pewnien problem. Za pomoca socketów pobieram sobie plik graficzny z serwera http.
procedure HttpPlik(plik: string; host: string);
begin
http.Socket.SendText('GET '+plik+' HTTP/1.1'+ #13#10);
http.Socket.SendText('Host:'+host+ #13#10);
http.Socket.SendText('Accept: text/html, */*'+ #13#10);
http.Socket.SendText('User-Agent: HTTP/1.1 (compatible; Klient HTTP)'+ #13#10);
http.Socket.SendText(#13+#10);
end;
To co odpowie mi serwer "łapie" przez Socket.ReceiveBuf(StreamHeader, SizeOf(StreamHeader));
i zapisuje do pliku.
Łącznie z "trescia" pliku graficznego zapisuja sie informacje od serwera. I w pliku mam takie cos:
/1.1 200 OK
Date: Mon, 15 Jan 2007 17:13:02 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-18
Last-Modified: Fri, 13 Oct 2006 22:08:13 GMT
ETag: "34251-e3-86366d40"
Accept-Ranges: bytes
Content-Length: 227
Content-Type: image/gif
GIF89aTB
...reszta pliku
Pomyslem sobie, zeby "przepisac plik" ale od momentu w ktorym "zacznie sie plik graficzny"...
Probuje to robic tak:
var
plik_tmp, plik : textfile;
znak: char;
CzyPisac: boolean;
begin
CzyPisac:=false;
assignfile(plik_tmp,'tmp.txt');
assignfile(plik,'plik.txt');
rewrite(plik);
try
Reset(plik_tmp);
while not eof(plik_tmp) do
begin
read(plik_tmp,znak);
if <b>{tu jakis warunek}</b> then CzyPisac:=true;
if CzyPisac then write(plik,znak);
end;
finally
CloseFile(plik_tmp);
CloseFile(plik);
end;
end;
Problem mam wlasnie w "poprawnym" sporzadzenu warunku ktory powie programowi od jakiego momentu ma przepsiac plik.
ps. Prosilbym mi nie pisac o komponentach Indy. Musze to zrobic na socketach.