Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при попытки поска яайла, FindFirst, FileDatetoDatetime 
:(
    Опции темы
Berliner
Дата 5.8.2005, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



вот вроде должно работать но в сторке d2:=FileDateToDateTime(a); вываливает ошибку а принимает значение -1 а(типа файл не найден) хотя такой файл есть! Подскажите почему пожалуста

Код

FindFirst('c:\c??.arx',faAnyFile,poisk);
filetp:=poisk.Name;
//filetp:='c:\\с12.arx'; 
a:=FileAge(filetp);
d2:=FileDateToDateTime(a);  // ВОТ ТУТ А=-1 ХОТЯ НА С;\C12.ARX -ЛЕЖИТ
s:=DateTimeToStr(d2); 
s:=Copy(s,1,10);    
d3:=DateTimeToStr(DateTimePicker1.DateTime); 
d3:=Copy(d3,1,10); 
if d3=s then ShowMessage('ok')

  else ShowMessage(Nothing);


М
 
Пользуйся тегами CODE!


Это сообщение отредактировал(а) Girder - 5.8.2005, 23:43
PM   Вверх
Pakshin A. S.
Дата 5.8.2005, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



c:\c??.arx

Шо це таке?

А пошагово выполнить и просмотреть еще раз все значения всех переменных?
PM   Вверх
Pakshin A. S.
Дата 5.8.2005, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



хмм... станнова-то...
PM   Вверх
Berliner
Дата 5.8.2005, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



пробывал пошагово

a:=FileAge(filetp); - вот тут значение filetp =c12.arx

а потом строчкой ниже d2:=FileDateToDateTime(a); а=-1 типа фал не найден???????????????/

файл на диске с есть smile smile smile
PM   Вверх
Pakshin A. S.
Дата 5.8.2005, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Код

FindFirst('c:\c??.arx',faAnyFile,poisk);
filetp:=poisk.Name;
s:='c:\c12.arx';
if filetp <> s then ShowMessage('') ;

Сообщение вылетает всегда...

В чем же различие этих строк?!
Добавлено @ 23:15
Достаточно в малом... в том, что нету полного пути к файлу...
Добавлено @ 23:17
Код

var
 poisk: TSearchRec;
 filetp: string;
begin
FindFirst('c:\c??.arx',faAnyFile,poisk);
filetp:='c:\' + poisk.Name;
FindClose(poisk);
ShowMEssage(DateTimeToStr(FileDateToDateTime(FileAge(filetp))));


Это сообщение отредактировал(а) Girder - 5.8.2005, 23:44
PM   Вверх
Bes
Дата 8.8.2005, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 5
Всего: 7



Ну если я правильно понял то не ошибка, а просто программа не находит файл. Ну я думаю надо поварьировать второй параметр FindFirst-a потому что faAnyFile это не совсем любой файл.... вроде бы у меня была подобная проблема
PM MAIL   Вверх
Pakshin A. S.
Дата 8.8.2005, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Очки подарить? (Тока без обид) smile

Цитата(Pakshin @ 6.8.2005, 00:12)

В чем же различие этих строк?!
Добавлено @ 00:15
Достаточно в малом... в том, что нету полного пути к файлу...


В poisk.Name всегда хранится имя найденного файла без пути к нему!!! А функция FileAge() требует полный путь к файлу!!!

Поэтому если даже прописать все типы файлов с faAnyFile, но оставить все, как было ранее, то функция все-равно не будет работать, т. к. нету полного пути к файлу.
PM   Вверх
Berliner
Дата 8.8.2005, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Спасибо за подсказку с путем разобрался но появилась другая проблема надо чтобы все файлы *.avi переберал
и проверял на время cовпадения с ДэйтамПикером а у меня один только файл хватает а потм циклит(while<>s do..... неадо чтобы взял avi проверил дата с пикером совпала значитshow message ok а если не совпала то перебераем все авишки пока совпадет Я думаю я не правильно использовал FindNEx или цикл
Подскажите пожалуста очень нужно
Код


 begin
        FindFirst('c:\*.avi',faAnyFile,poisk);
        filetp:= 'c:\'+poisk.Name;
        a:=FileAge(filetP);
        d2:=FileDateToDateTime(a);
        s:=DateTimeToStr(d2); 
        s:=Copy(s,1,10);    
        d3:=DateTimeToStr(DateTimePicker1.DateTime); 
        d3:=Copy(d3,1,10); 
        end;
        while d3<>s do
               begin
               FindNext(poisk);
              a:=FileAge(filetP);
              d2:=FileDateToDateTime(a); 
              s:=DateTimeToStr(d2); 
              s:=Copy(s,1,10);     
             d3:=DateTimeToStr(DateTimePicker1.DateTime); 
             d3:=Copy(d3,1,10); 

         end;




PM   Вверх
Pakshin A. S.
Дата 8.8.2005, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Вот пища для размышления:
Код

var
 poisk: TSearchResult;
 res: integer;
begin
 res:=FindFirst('somefile', faAnyFile, poisk);
 while res = 0 do
  begin
   <...>
   res:=FindNext(poisk);
  end;
 FindClose(poisk);
end;

Намек понятен? smile Правильно догадался: все, что связано с происком файла - функции с возвратом определенных значенией. Итого вверху имеем пример обхода все й дирректории с поиском нужного файла. Мы прекращаем поиск в том случае, если файла нету.

Отсюда мораль: Нужно добавить одну переменную и добавить лишнее условие в цикл, которое выводило прогрумму из цикла в тот момент, когда больше файлов не было обнаружено. smile

Надеюсь понятно? smile
Добавлено @ 21:36
Хех... добрый я что-то стал:
Код

begin
 d3:='a'; s:='b';
 res:=FindFirst('c:\*.avi', faAnyFile, poisk);
 while (d3 <> s) and (res = 0) do
   begin
     filetp:= 'c:\' + poisk.Name;      
     a:=FileAge(filetP);
     d2:=FileDateToDateTime(a); 
     s:=DateTimeToStr(d2); 
     s:=Copy(s,1,10);     
     d3:=DateTimeToStr(DateTimePicker1.DateTime); 
     d3:=Copy(d3,1,10); 
     res:=FindNext(poisk)
   end;
 FindClose(poisk);
 if d3 = s
  then
   ShowMessage(':D')
  else
   ShowMEssage(':((')
end;

Надеюсь, правильно... smile
PM   Вверх
Berliner
Дата 9.8.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: нет
Всего: 2



Спасиб уже разобрался
Код

If CheckBox1.Checked=true then

        begin
        if
        FindFirst('c:\*.avi',faAnyFile,poisk)=0 then
          begin
           repeat
                filetp:= 'c:\'+poisk.Name;
                a:=FileAge(filetP);
                 if a=-1 then
                 begin
                 ShowMessage('ll');
                 exit;
                 end;
                d2:=FileDateToDateTime(a);
                s:=DateTimeToStr(d2); 
                s:=Copy(s,1,10);     
                d3:=DateTimeToStr(DateTimePicker1.DateTime); 
                d3:=Copy(d3,1,10); 
        if d3=s then
        begin
///
///

         ShowMessage(filetP);

        break;

        end;
           until FindNext(poisk) <> 0;
           FindClose(poisk);

        end;

        end;


PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.