раньше написал функцию разбора заголовка, ее и надо применять ParseHeader
| Код | procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var s, sl, fn: string; begin s:= Socket.ReceiveText; if Reciving then begin fs.Write(s[1], length(s)); if fs.Size=DataSize then begin fs.Free; Reciving:=false; Application.MessageBox('Файл принят'); end; exit; end; sl := copy(s, 1, Pos(#0, s) - 1); Delete(s, 1, Pos(#0, s)); ParseHeader(sl, DataSize, fn); <==== Reciving:=true; fs:=TFileStream.Create(fn,fmCreate); fs.Write(s[1], length(s)); end;
|
Добавлено через 1 минуту и 8 секунд повторюсь
| Код | procedure ParseHeader(AHeader: String; var ASize: Integer; var AFileName: String); var sp, fp: Integer; begin ASize := 0; AFileName := ''; sp := Pos('Size:', AHeader); fp := Pos(';FileName:', AHeader); try ASize := StrToInt(Copy(AHeader, sp + 5, fp - sp - 5)); except Exit end; AFileName := Copy(AHeader, fp + 10, Length(AHeader) - fp - 9); end;
|
|