Форум: "Начинающим";
Текущий архив: 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.004 c