Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2008, 17:30   #1
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
Радость Поиск файлов

Здравствуйте Уважаемые Программеры!! подскажите пожалуйсто как сделать поиск определенного файла(123.txt) по диску "С"во всех деректориях и скопировать его на диск "D"????
hacknet вне форума Ответить с цитированием
Старый 23.11.2008, 17:49   #2
KiDoki
Форумчанин
 
Регистрация: 06.10.2008
Сообщений: 102
По умолчанию

http://www.delphicode.ru/files/file_search.htm
http://www.programmersforum.ru/showthread.php?t=28609

Научись пользоваться поиском.
"Программист не умеющий пользоваться поиском - не программист."(с)
KiDoki вне форума Ответить с цитированием
Старый 23.11.2008, 17:53   #3
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

да мне самый простой способ...а то там посмотрел ничего не понимаю!! я токо учюсь!!зарание спасибо!
hacknet вне форума Ответить с цитированием
Старый 23.11.2008, 18:06   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Попробуйте так:

Код:
Procedure ScanDir(StartDir: String; FileNam: String);    //параметры процедуры
Var
SearchRec: TSearchRec; //Объявляем переменную
begin
If StartDir[Length(StartDir)] <> '\' Then  //Проверяем имеет ли наша директория слэш т.е. '\'
StartDir := StartDir + '\';    // если нет, то присваиваем '\'
Try           //оператор исключений
if FindFirst(StartDir+FileNam, faAnyFile, SearchRec) = 0 then   //Ищем первый файл
Repeat         //начинаем цикл
if (SearchRec.Attr and faDirectory) <> faDirectory then    //если найденый файл не является директорией, то выводим его
Begin
form1.memo1.Lines.Add(StartDir+SearchRec.Name);  //выводим путь и имя найденого файла
copyfile(pchar(StartDir+SearchRec.Name),pchar('D:\'+SearchRec.Name),true);  //копируем файл
halt;     //закрываем прогу
end;
until FindNext(SearchRec) <> 0;   //условие цикла
FindClose(SearchRec);      //освобождаем переменную поиска
except
end;
{разделение по каталогам}
if FindFirst(StartDir+'*', faAnyFile, SearchRec) = 0 then   //ищем первый файл
try         //оператор исключений
repeat        //цикл
if (SearchRec.Attr and faDirectory) = faDirectory then //если нашли директорию, то ищем файлы в ней
if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then//чтобы не было файлов . и..
begin
ScanDir(StartDir + SearchRec.Name + '\', FileNam);   //проверяем конечная ли директория
end;
until FindNext(SearchRec) <> 0;   //условие цикла
FindClose(SearchRec);  //освобождаем переменную поиска
except
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
chrI:char;  //объявляем переменную
begin
for chrI:='C' to 'Z' do begin  //начинаем цикл что бы искать во всех дисках
//if not diskexist(chrI) then continue;  //если диск не существует, то пропускаем
ScanDir(chrI+':\','1.txt') //имя файла
end
end;
Этот пример был взят от сюда: http://www.programmersforum.ru/showthread.php?t=20019
Только я его немного для вас подкорректировал.
Всегда рад помочь!

Последний раз редактировалось Terran; 23.11.2008 в 22:30.
Terran вне форума Ответить с цитированием
Старый 23.11.2008, 18:34   #5
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

а как мне сделать эту процедуру???вы уж не ругайтесь, я реально пока что в этом коде ни чего не понимаю)))
hacknet вне форума Ответить с цитированием
Старый 23.11.2008, 18:43   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
вы уж не ругайтесь, я реально пока что в этом коде ни чего не понимаю)))
Все мы когда-то учимся.
Поиск.rar
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 23.11.2008, 19:05   #7
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

ха спс код работает!!!сделал в диске "С" файл 1.txt и он его скопировал на диск "D"!! но когда я его поместил в programfiles то он его не ищет а просто создаёт на диске "D", с таким же названием а содержание файла другое!((((

Но не могли бы Вы мне пояснить сам код, как он работает и как именно или почему он скопировал файл на диск "D"???или может в асе погорим!!!???

Последний раз редактировалось hacknet; 23.11.2008 в 19:13.
hacknet вне форума Ответить с цитированием
Старый 23.11.2008, 22:37   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
когда я его поместил в programfiles то он его не ищет а просто создаёт на диске "D", с таким же названием а содержание файла другое!((((
Возможно у вас на диске есть файл с таким же именем.

Цитата:
Но не могли бы Вы мне пояснить сам код, как он работает и как именно или почему он скопировал файл на диск "D"???
Я добавил в код повыше краткие пояснения. Если я где то неправильно пояснил, то не судите cтрого.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 23.11.2008, 23:21   #9
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

Цитата:
Сообщение от Terran Посмотреть сообщение
Возможно у вас на диске есть файл с таким же именем.
такого нет!!


Я добавил в код повыше краткие пояснения. Если я где то неправильно пояснил, то не судите cтрого.
Я Вас немогу судить т,к Вы больше меня понимаете, и к тому же мне помогаете!
hacknet вне форума Ответить с цитированием
Старый 23.11.2008, 23:23   #10
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

вот я нашел код, может он будет работать...меня интересует поиск файла
1.txt на всём диске "С" и потом его скопировать на "D")))

код:

procedure LookDir(StartDir, Mask : String; List : TStrings);
var
SearchRec : TSearchRec;
begin
if StartDir[Length(StartDir)] <> '' then StartDir := StartDir + '';
if FindFirst(StartDir+'*.*', faAnyFile, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory) <> faDirectory then
begin
if ExtractFileExt(StartDir+SearchRec.N ame) = Mask then List.Add(StartDir+SearchRec.Name);
end
else
if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
begin
LookDir(StartDir + SearchRec.Name + '', Mask, List);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
hacknet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов student_63 Общие вопросы Delphi 6 07.03.2008 19:00
Поиск файлов LeoN Общие вопросы Delphi 5 25.11.2007 22:54
поиск файлов KORN Компоненты Delphi 3 12.10.2007 05:42
Поиск файлов necky Общие вопросы Delphi 10 31.08.2007 00:27