Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизРазмер файла Найти похожие ветки
← →
ГореПрограммер (2006-10-27 10:24) [0]Здравствуйте.
Есть у меня файл
1.ххх
в нем одна строчка
123
вот код:
var f:file;
fs:variant;
begin
assignfile(f,"1.xxx");
reset(f);
showmessage(inttostr(filesize(f)));
closefile(f);
и отображается 0 ... а как узнать точный размер ?
← →
ЮЮ © (2006-10-27 10:28) [1]В Help-е же все написано:
Note: If the file is declared as an untyped file and you don’t specify a record size when you call Reset, then FileSize assumes a record size of 128. That is, FileSize gives the number of bytes divided by 128.
И в примере дано
f: file of Byte;
← →
Elen © (2006-10-27 10:32) [2]
> ГореПрограммер
reset(f,1); - и будет радость в байтиках ;)
← →
viper03 © (2006-10-27 10:32) [3]var f: file of byte;
← →
Anatoly Podgoretsky © (2006-10-27 10:35) [4]У тебя наверно файл меньше 128 байт
← →
ГореПрограммер (2006-10-27 10:43) [5]Все, спасибо большое.
Только вот второй вопрос:
есть переменная
f:byte;
в которую
blockread(ff,f,filesize(ff));
в файле, как я говорил одна запись "123"
как получить f в текстовом виде теперь ?
← →
ЮЮ © (2006-10-27 10:48) [6]Как, интересно, в переменную f:byte (один) намерен записать как минимум ТРИ байта, не уронив к чертям программу??? Открой Example в Helpe по blockread, в конце-концов.
← →
ГореПрограммер (2006-10-27 10:50) [7]нет example в delphi 2005 я понял, что бред написал ,а каким тогда образом ?
← →
Elen © (2006-10-27 10:54) [8]
> ГореПрограммер
А чего б тебе не readln рулить, А?
← →
ГореПрограммер (2006-10-27 10:56) [9]потому что в последующем необходимо будет сравнивать именно набор байт.
← →
ЮЮ © (2006-10-27 10:57) [10]
BlockRead, BlockWrite, SaveDialog example
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); { Record size = 1 }
if SaveDialog1.Execute then { Display Save dialog box}
begin
AssignFile(ToF, SaveDialog1.FileName); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
Canvas.TextOut(10, 10, "Copying " + IntToStr(FileSize(FromF))
+ " bytes...");
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
end;
end;
← →
Elen © (2006-10-27 11:03) [11]
> потому что в последующем необходимо будет сравнивать именно
> набор байт.
Может тогда лучше TFileStream?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.049 c