Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.17;
Скачать: [xml.tar.bz2];

Вниз

Функция 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
15-1237211479
@!!ex
2009-03-16 16:51
2009.05.17
Как забрать SVN репозиторий с сервера?


15-1237007629
@!!ex
2009-03-14 08:13
2009.05.17
Удаленное управление закачками.


15-1237093319
Mozart
2009-03-15 08:01
2009.05.17
1C - экспорт?


3-1221022999
Alexey
2008-09-10 09:03
2009.05.17
SQL-запрос в delphi


15-1236598494
kuzmich
2009-03-09 14:34
2009.05.17
подскажите как работать с SIP в Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский