Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизBlockWrite пишет всякую еренду Найти похожие ветки
← →
{bas} © (2004-04-14 18:24) [0]После выполненения BlockWrite в файл пишется кроме нужной информации еще какая-то лабуда. Помогите??
var
f : file;
Buffer : PChar;
begin
AssignFile(f, "c:\tmp\log\"+FormatDateTime("yy-mm-dd_hhnnss.log",now));
Rewrite(f);
Buffer := PChar("fffffffffffffffffffffffffffffff");
BlockWrite(f, Buffer^,10);
end;
← →
metalfan © (2004-04-14 18:27) [1]а где выделения памяти под buffer ?
← →
Jack128 © (2004-04-14 18:30) [2]
> а где выделения памяти под buffer ?
По всей видимости человек считает, что вот этим
> Buffer := PChar("fffffffffffffffffffffffffffffff");
он выделел память под Buffer :-)var
f : file;
Buffer : string;
begin
AssignFile(f, "c:\tmp\log\"+FormatDateTime("yy-mm-dd_hhnnss.log",now));
Rewrite(f);
SetLength(Buffer, 10)
BlockWrite(f, Buffer^,10);
end;
← →
BlackTr (2004-04-14 18:36) [3]Читаем Help:
The entire block transferred occupies at most Count * RecSize bytes. RecSize is the record size specified when the file was opened (or 128 if the record size was unspecified).
Так и получается размер файла 1280.
А вот сделаем так:Rewrite(f,1);
И у нас что-нить получится :)
← →
Плохиш (2004-04-14 18:37) [4]Rewrite(f,1);
← →
{bas} © (2004-04-14 18:40) [5]>>BlackTr (14.04.04 18:36) [3]
>>Плохиш (14.04.04 18:37) [4]
Спасибо, вредь буду аккуратнее читать хэлп
>>Jack128 © (14.04.04 18:30) [2]
>>metalfan © (14.04.04 18:27) [1]
А память не обязательно выделять....
← →
VMcL © (2004-04-14 18:41) [6]>>metalfan © (14.04.04 18:27) [1]
>>Jack128 © (14.04.04 18:30) [2]
Зря наехали. Память выделит компилятор для константой строки "fffffffffffffffffffffffffffffff". А он её только в PChar преобразовал. Правильный ответ [3]. Хотя код в [0], конечно, не очень грамотный.
← →
{bas} © (2004-04-14 18:44) [7]>>VMcL © (14.04.04 18:41) [6]
Это просто был тестовый код...
← →
BlackTr (2004-04-14 18:44) [8]Я вообще для лога лучше обычный Writeln :)
← →
Jack128 © (2004-04-14 18:50) [9]
> Зря наехали. Память выделит компилятор для константой строки
> "fffffffffffffffffffffffffffffff". А он её только в PChar
> преобразовал. Правильный ответ [3]. Хотя код в [0], конечно,
> не очень грамотный.
на счет rec size я забыл, но и ты не прав. константа на которую ссылкает храниться exe-шнике и считать в неё данные неудастся..
← →
Jack128 © (2004-04-14 18:56) [10]
> константа на которую ссылкает
читать, как "константа на которую ссылается Buffer"
← →
VMcL © (2004-04-14 19:04) [11]>>Jack128 © (14.04.04 18:50) [9]
Ну так автор же в нее не пишет, а из нее читает и записывает в файл.
← →
Jack128 © (2004-04-14 19:07) [12]Хе, посыпаю голову пеплом..
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c