Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

Размер файла   Найти похожие ветки 

 
ГореПрограммер   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.062 c
15-1161948526
alles
2006-10-27 15:28
2006.11.12
Почему без ping-a Windows не видет компютера?


15-1161790654
Kerk
2006-10-25 19:37
2006.11.12
Пиво. Ice.


6-1151011930
Rembo
2006-06-23 01:32
2006.11.12
WebBroker и post


15-1161933521
Pazitron_Brain
2006-10-27 11:18
2006.11.12
Как можно повлиять на телевизионный канал?


15-1160999941
palva
2006-10-16 15:59
2006.11.12
Оказывается, приемник GPS полезен при поиске сокровищ