Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дата создания файла и количество строк?


Страницы:   1 2

Я ©   (2008-05-07 13:47:00) 

Скажите пожалуйста как можно используюя FindFirst/FindNext узнать дату создания файла и количество строк в каждом файле.

Что есть:
Функция определяющая дату создания файла

function GetFileDateTime(FileName: string): TDateTime;
var
 intFileAge: LongInt;
begin
 intFileAge := FileAge(FileName);
 if intFileAge = -1 then
   Result := 0
 else
   Result := FileDateToDateTime(intFileAge)
end;

FileAttrs := FileAttrs + faSysFile;

Кусок кода

 
var
 sr: TSearchRec;
 FileAttrs: Integer;
 a:TDateTime;
begin
FileAttrs := FileAttrs + faSysFile;

if FindFirst('путь до файлов', FileAttrs, sr) = 0 then
   begin
     repeat
        a:=GetFileDateTime(sr.Name);// не работает пытаюсь взять дату создания файла
        if (sr.Attr and FileAttrs) = sr.Attr then
       begin

          ListBox1.Items.Add(sr.Name + '   ' + DateToStr(a));
       end;
     until FindNext(sr) <> 0;
     FindClose(sr);
   end;


AtZako   (2008-05-10 14:39:00) [1]

Вроде никак. Если только не прочитать кусочек из файла и анализировать его содержимое.


Юрий Зотов   (2008-05-07 16:54:00) [2]

> Я   (07.05.08 14:26) [17]

> Вопросы закрыты. Разобрался.

Тогда вопрос.

Понятие "строка" существует только для текстовых файлов. Спрашивается - а как, зная только имя файла, определить, текстовый он или нет?


han_malign   (2008-05-07 15:55:00) [3]

эээ???

а FileTimeToDateTime(sr.FindData.ftCreationTime)?
а как насчет того, что FileAge возвращает время последней модификации(которое уже лежит в sr.Time), а не создания?


Игорь Шевченко   (2008-05-07 14:29:00) [4]

Reindeer Moss Eater ©   (07.05.08 14:17) [12]


> загрузить фай в стринглист и взять его каунт


Какой ты злой, право. Вроде и праздник сегодня...


Я   (2008-05-07 14:26:00) [5]

Вопросы закрыты. Разобрался. Большое всем спасибо.


Reindeer Moss Eater   (2008-05-07 14:23:00) [6]

А как здесь же посчитать несколько фойлов попорядку?

Поставить рядом несколько компьютеров с этим кодом. по числу файлов.


Я   (2008-05-07 14:20:00) [7]

Я понимаю что количество строк можно посчитать вот так:

Schet:=0;
AssignFile(F1, 'путь до файла');
   Reset(F1);
   while not SeekEof(F1) do
     begin
       ReadLn(F1, Ch);
       inc(Schet);
       Label1.Caption:=IntToStr(Schet);// покажет количество строк в файле
     end;
   CloseFile(F1);


Но это только для одного файла. А как здесь же посчитать несколько фойлов попорядку?


Knight   (2008-05-07 14:20:00) [8]

> [11] Я   (07.05.08 14:14)

мэй би...

ReadLn();
Inc(k);


Palladin   (2008-05-07 14:17:00) [9]

раз, два, три, четыре, ...,эн, эн+1, эн+2...


Reindeer Moss Eater   (2008-05-07 14:17:00) [10]

загрузить фай в стринглист и взять его каунт


Я   (2008-05-07 14:14:00) [11]

А как в repeat/until посчитать количество строк в каждом файле?


Я   (2008-05-07 14:10:00) [12]

Блин во тупица!
Нада было так
if not FileExists('E:\FilesProject\Vhod\' + sr.Name) then Raise Exception.Create('Нет файла');
      a:=GetFileDateTime('E:\FilesProject\Vhod\' + sr.Name);


Reindeer Moss Eater   (2008-05-07 14:07:00) [13]

Ты либо ответы читай и вникай, либо вопросы свои не задавай.


Reindeer Moss Eater   (2008-05-07 14:07:00) [14]

The return value is -1 if the file does not exist.


Я   (2008-05-07 14:06:00) [15]

Что озночает (-1). Почему функция не хочет показывать дату файла?


Reindeer Moss Eater   (2008-05-07 14:05:00) [16]

if FindFirst('путь до файлов', FileAttrs, sr) = 0 then
  begin
    repeat
       a:=GetFileDateTime(sr.Name);// не работает пытаюсь взять дату создания файла


if FindFirst('путь до файлов', FileAttrs, sr) = 0 then
  begin
    repeat
       if not FileExists(sr.name) then Raise Exception.Create('Опа! Как же так вышло? Могет я чото забыл???');
       a:=GetFileDateTime(sr.Name);


Palladin   (2008-05-07 14:04:00) [17]

вообще говоря не нужно наивно полагать, что DateToStr(-1) вернет '-1' :)


Reindeer Moss Eater   (2008-05-07 14:02:00) [18]

Получил вчерашнюю пустую делфийскую дату (-1)


Palladin   (2008-05-07 14:01:00) [19]

это и есть -1


Я   (2008-05-07 14:00:00) [20]

Сделал так

a:=FileAge(sr.Name);

В результате получил следующее - 29.12.1899


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо