Форум: "Основная";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
ВнизПомогите с пробоемой Найти похожие ветки
← →
abcd (2002-12-19 17:43) [0]type
PBuffer = ^TBuffer;
TBuffer = array [Byte] of Char;
var buf: PBuffer;
begin
...
AssignFile(f,"123");
Rewrite(f);
BlockWrite(f,buf^,4);
...
end;
в файл помимо нужной информации пишется что-то левое, хотя я из буфера беру, допустим 4 символа.
← →
Reindeer Moss Eater (2002-12-19 17:47) [1]Пишется то, на что указывает ни на что не указывающий buf
← →
abcd (2002-12-19 17:53) [2]если подробней, то до этого кода:
src := TFileStream.Create("234",fmOpenRead);
while src.Position < src.Size do
cnt := src.Read(buf^, SizeOf(buf));
← →
Sha (2002-12-19 17:53) [3]Нам видно все, что между точек...
← →
Digitman (2002-12-19 17:56) [4]Нет, ну а инициализация переменной buf где ? она вообще существует у тебя в коде ДО всего того, что ты привел ?
← →
abcd (2002-12-19 17:59) [5]Это посылка с сервера:
src := TFileStream.Create("234",fmOpenRead);
sServ.Socket.Connections[0].SendText(IntToStr(src.Size));
New(buf);
while src.Position < src.Size do
begin
cnt := src.Read(buf^, SizeOf(buf));
sServ.Socket.Connections[0].SendBuf(buf^, cnt);
end;
Dispose(buf);
buf := nil;
src.Free;
Это прием клиентом:
if not Receive then Count := StrToInt(Socket.ReceiveText);
cnt := Socket.ReceiveLength;
if not Receive then
begin
AssignFile(f,"123");
Rewrite(f);
Receive := true;
end;
GetMem(buf,cnt+1);
Socket.ReceiveBuf(buf^,cnt);
BlockWrite(f,buf^,cnt);
CountRead := CountRead + cnt;
if CountRead = Count then
begin
CountRead := 0;
Count := 0;
Receive := false;
FreeMem(buf);
CloseFile(f);
sClnt.Socket.SendText("Received");
end;
Помимо файла источника в файл назначения пишется что-то, что не должно туда писаться.
← →
{bas} (2002-12-19 18:28) [6]а кто б. обнулять buf в цикле отпраки?????
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c