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

Вниз

Функция FileSize   Найти похожие ветки 

 
Roman88   (2009-04-03 09:44) [0]

Здравствуйте. Пытаюсь получить размер файла с помощью функции FileSize, но она возвращает не верное число. Подскажите что я не так делаю, вот пример кода:

procedure TForm1.Button1Click(Sender: TObject);
var
 f : TextFile;
begin
 AssignFile(f, "C:\1.xls");
 Reset(f);
 ShowMessage("размер = " + IntToStr(FileSize(f)));
end;

Функция возвращает 3 байта, в свойствах файла 410 байт. Подскажите, что делаю не так.


 
Palladin ©   (2009-04-03 09:50) [1]

потому что 410/128~3


 
Palladin ©   (2009-04-03 09:51) [2]

а какого хрена ты сообщаешь компилятору что ты собрался работать с файлом экселя как с текстовым?


 
Roman88   (2009-04-03 09:56) [3]


> потому что 410/128~3


А это что за математика такая?


> а какого хрена ты сообщаешь компилятору что ты собрался
> работать с файлом экселя как с текстовым?


На самом деле, работать буду с CSV фалами ...


 
Ega23 ©   (2009-04-03 09:58) [4]


> в свойствах файла 410 байт


Что-то ты братан брешешь. BIFF-8 как минимум имеет заголовок (512 байт), FAT (возможно и mini-FAT). Все блоки, ЕМНИП, по 512 байт идут.


 
Anatoly Podgoretsky ©   (2009-04-03 10:03) [5]

Используй FindFirst, кроме случаев когда необходимо работать с записями, а какие могут быть записи у текстового файла. Ну и про бессмысленность этого для Экселя тебе уже сказали.

Что за задачу решаешь?


 
Roman88   (2009-04-03 10:05) [6]


> Что-то ты братан брешешь. BIFF-8 как минимум имеет заголовок
> (512 байт), FAT (возможно и mini-FAT). Все блоки, ЕМНИП,
>  по 512 байт идут.


ну ошибся я, 410 КБ. 419840 байт


 
Roman88   (2009-04-03 10:07) [7]


> Используй FindFirst, кроме случаев когда необходимо работать
> с записями, а какие могут быть записи у текстового файла.
>  Ну и про бессмысленность этого для Экселя тебе уже сказали.
>
>
> Что за задачу решаешь?


Обработка строк CSV файлов. Размер хотел получить, что бы Gauge на форму поставить, для отображения прогресса.


 
Ega23 ©   (2009-04-03 10:09) [8]


> ну ошибся я, 410 КБ. 419840 байт


Штобы я так жил! на 3 порядка... :)))


 
Roman88   (2009-04-03 10:13) [9]


> Штобы я так жил! на 3 порядка... :)))


Если поможете, я помолюсь за это))


 
Anatoly Podgoretsky ©   (2009-04-03 10:16) [10]

Gauge?
Почему тогда .xls?


 
brother ©   (2009-04-03 10:20) [11]

из справки:
procedure TForm1.Button1Click(Sender: TObject);

var
  f: file of Byte;
  size: Longint;
  S: string;
  y: Integer;
begin
 if OpenDialog1.Execute then
 begin
   AssignFile(f, OpenDialog1.FileName);
   Reset(f);
   try
     size := FileSize(f);
     S := "File size in bytes: " + IntToStr(size);
     y := 10;
     Canvas.TextOut(5, y, S);
     y := y + Canvas.TextHeight(S) + 5;
     S := "Seeking halfway into file...";
     Canvas.TextOut(5, y, S);

     y := y + Canvas.TextHeight(S) + 5;
     Seek(f, size div 2);
     S := "Position is now " + IntToStr(FilePos(f));
     Canvas.TextOut(5, y, S);
   finally
     CloseFile(f);
   end;
 end;
end;

а у тебя:

> var
> f : TextFile;


 
Roman88   (2009-04-03 10:25) [12]


> Почему тогда .xls?


я как пример написал, честно - не знал что формат файла имеет значение, простите чайник я ((


> brother ©   (03.04.09 10:20) [11]


Спасибо


 
Плохиш ©   (2009-04-03 10:45) [13]


> Roman88   (03.04.09 09:56) [3]
>
>
> > потому что 410/128~3
>
>
> А это что за математика такая?
>

В справке всё расписано.


 
Palladin ©   (2009-04-03 10:59) [14]

Не царское это дело. Справку читать. Пусть холопы читают.



Страницы: 1 вся ветка

Текущий архив: 2009.05.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
15-1236840903
PHProgger
2009-03-12 09:55
2009.05.17
MySQL - TRIM in function


2-1238587245
Xmen
2009-04-01 16:00
2009.05.17
Delphi+FireBird Book


15-1237192980
asafr
2009-03-16 11:43
2009.05.17
2D barcodes


15-1236677968
It's me
2009-03-10 12:39
2009.05.17
Восстановление БД по индексам?


15-1236699497
Кое кто
2009-03-10 18:38
2009.05.17
Включить "Администратор"