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

Вниз

файлы   Найти похожие ветки 

 
Builder   (2004-02-25 10:47) [0]

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


 
esVer ©   (2004-02-25 10:51) [1]

Rx
FileUtil.pas

function GetFileSize(const FileName: string): Longint;

Функция возвращает размер в байтах файла, заданного параметром FileName.


 
Ega23 ©   (2004-02-25 10:53) [2]

TMemoryStream.LoadFromFile;
TMemoryStream.Size;


 
Fay ©   (2004-02-25 10:59) [3]

2Ega23 ©
А если 100 гигов?


 
esVer ©   (2004-02-25 11:03) [4]


> Ega23 © (25.02.04 10:53) [2]


:))

Если уж делать таким способом, то

TFileStream.Create(...
TFileStream.Size;


 
Fay ©   (2004-02-25 11:07) [5]

А чё, GetFileSizeEx уже не катит ваще?!


 
mip ©   (2004-02-25 11:15) [6]

Удалено модератором
Примечание: Задай этот вопрос в своей ветке


 
Builder   (2004-02-25 13:48) [7]

СпасибО.так открыть для добавления? Не Reset, а ....???


 
Mur_r ©   (2004-02-25 13:49) [8]

Rewrite


 
Ega23 ©   (2004-02-25 13:49) [9]

Append


 
Ega23 ©   (2004-02-25 13:50) [10]

Mur_r © (25.02.04 13:49) [8]

Rewrite

Для добавления???? Ну-ну....


 
Андрей Сенченко ©   (2004-02-25 13:51) [11]

Reset - чтение
Append - добавление
Rewrite - перезапись.

Вообще-то если Вы работаете с конструкцией

Assign() ... Close() - то в TSearchRec насколько я помню Вы можете получить и размер файла


 
Fay ©   (2004-02-25 13:52) [12]

>> открывать с аттрибутами только чтение для добавления
Можно поподробней для тех, кто в танке ...
8)


 
Андрей Сенченко ©   (2004-02-25 13:52) [13]

Ega23 © (25.02.04 13:50) [10]

Rewrite - Можно и для добавления. Главное перед этим сохраниться :)


 
Anatoly Podgoretsky ©   (2004-02-25 13:54) [14]

А противоречий не видишь?
и открывать с аттрибутами "только чтение" И "для добавления".


 
Mur_r ©   (2004-02-25 13:55) [15]

мб там запятая стоит? только чтение, для добавления
Великий Могучий Русский Язык


 
Anatoly Podgoretsky ©   (2004-02-25 13:56) [16]

Андрей Сенченко © (25.02.04 13:51) [11]
Reset - чтение

Это в принципе неверно, это только для текстовых файлов, а для других включает и добавление, в отличии от Rewrite, который никогда не добавляет.


 
Андрей Сенченко ©   (2004-02-25 13:56) [17]

Unit

SysUtils

type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;

Fay © (25.02.04 13:52) [12]

Кстати да :) Может быть имелся ввести эксклюзивный доступ ?


 
Андрей Сенченко ©   (2004-02-25 13:57) [18]

Anatoly Podgoretsky © (25.02.04 13:56) [16]

Зарапортовался :)
Работать в жизни приходилось только с текстовыми. Привычка.


 
Builder   (2004-02-25 14:00) [19]

Прошу прощения, да там запятая, у меня файл на CD, его нужно просто открыть чтобы не аттрибуд Read Only не мешал,
а открыть для того чтобы Seek(f1,конец файла); но последнее я уже понял


 
Anatoly Podgoretsky ©   (2004-02-25 14:03) [20]

Так на CD ты вообще не сможешь написать.


 
Builder   (2004-02-25 14:06) [21]

Да в курсе (обидно что таким считают) Но открыть и прочитать то можно? А также вывести в StringGrid :))


 
Андрей Сенченко ©   (2004-02-25 14:06) [22]

Builder (25.02.04 14:00) [19]

1. Скопировать файл на локал
2. Снять с него аттрибут ReadOnly
3. Прочитать ограничения по использованию Seek(), понять что для текстовых файлов она не работает, придумать другой способ найти конец файла ( или решить - нужно ли оно вообще ? )
4. Сделать с файлом все, что надо

Ну и наконец самое интересное -

5. Снова идти на форум чтобы спросить как записать файл с локалки на CD


 
Anatoly Podgoretsky ©   (2004-02-25 14:08) [23]

Builder (25.02.04 14:06) [21]
Не больше чем ты написал, если ты ошибся в каком либо месте, то могбы привести исправленный код и поточнее описать ситуацию. Телепатов здесь пока нет.


 
Андрей Сенченко ©   (2004-02-25 14:09) [24]

Builder (25.02.04 14:06) [21]
Да в курсе (обидно что таким считают) Но открыть и прочитать то можно? А также вывести в StringGrid :))

Открыть - можно ( с ограничениями правда в некоторых пониманиях слова "Открыть" )
Прочитать - можно
Вывести в StringGrid - можно.

Уважаемый !
В пределах одного топика Вы уже неоднократно меняли условия задачи.
Вы можете наконец полностью и окончательно описать - ЧТО ВАМ НУЖНО СДЕЛАТЬ ТО ?


 
Fay ©   (2004-02-25 14:11) [25]

var
h : Cardinal;
begin
h := CreateFile("x:\yy.zzz", GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if h = Cardinal(-1) then
begin
Application.MessageBox("Ужас!!!", "Фуск!", MB_OK or MB_ICONERROR)
Exit;
end;
ReadFIle(....) ;
CloseHandle(h);
end;


 
Builder   (2004-02-25 14:13) [26]

Прошу, прощения, возможно, после работы голова не соображает,
еще раз - мне нужно прочитать типизированный файл, не допуская возможности изменения. Вроде так...Спасибо


 
Anatoly Podgoretsky ©   (2004-02-25 14:14) [27]

Андрей Сенченко © (25.02.04 14:09) [24]
Да хотелось бы узнать точную постановку задачи и достаточно полную для решения проблемы.


 
Mur_r ©   (2004-02-25 14:15) [28]

а при чем тут тогда добавление? Reset


 
Anatoly Podgoretsky ©   (2004-02-25 14:17) [29]

FileMode и reset
Рекомендую сходить на Королевство Дельфи, там есть несколько моих статей по работе с Паскалевскими файлами и если после того, что то будет не понятно вернуться сюда и задать конкретный вопрос и точный вопрос. А с головой решение одно, хорошо выспаться, нельзя себя так насиловать.


 
Builder   (2004-02-25 14:17) [30]

Ну поскажите, неужели я еще не привел правильную постановку задачи?


 
Builder   (2004-02-25 14:19) [31]

Спасибо за совет...Так и сделаю.


 
Mur_r ©   (2004-02-25 14:19) [32]

"еще раз - мне нужно прочитать типизированный файл, не допуская возможности изменения."

Ну и читай на здоровье... А сам не изменишь (возможность не запрограммишь) - никто не изменит.


 
Builder   (2004-02-25 14:26) [33]

Хм. по-моему я все - таки правда хочу спать, если его открыть Reset"ом, ReWrite"ом и проч. выдается ошибка -......и проч. Acces Denied или вроде того, так как его прочитать игнорируя аттрибуты?


 
Андрей Сенченко ©   (2004-02-25 14:28) [34]

Ну если Ты пытаешься открыть на запись файл, находящийся физически на CD - то какая еще может быть реакция системы ? Конечно Ошибка доступа ...

Еще раз -
1. Точная постановка задачи.
2. Код.


 
Builder   (2004-02-25 14:31) [35]

Да не надо мне его записывать, мне просто нужно прочитать - Read(F1,A) A - это RECORD
потом вывести StringGrid.Cells[i,j]:=A.name;
Вот и все, но читать файл с аттрибутами ReadOnly, я не знаю как еще обьяснять...


 
Anatoly Podgoretsky ©   (2004-02-25 14:43) [36]

Тебе приведены переменные и функции, которые необходимы для работы, ну если не хочешь читать статьи, то хотя бы справку по ним посмотри.


 
Builder   (2004-02-25 15:01) [37]

Извините, я читаю.......и пробую, я же не за готовым решением пришел.



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

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

Наверх




Память: 0.55 MB
Время: 0.015 c
1-12398
FREEMAN
2004-02-24 16:12
2004.03.05
Отображение переключения раскладки клавиатуры


14-12538
slippery
2004-02-13 21:42
2004.03.05
Помогите найти!!!


14-12494
Соловьев
2004-02-13 12:56
2004.03.05
В Windows обнаружилась дыра


4-12578
_BladeR
2003-12-28 01:28
2004.03.05
Вопрос по параметрам CBTProc


1-12417
atmospheric
2004-02-25 15:13
2004.03.05
TimeStampToDateTime ?