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

Вниз

Скрытый поиск по маске с копированием   Найти похожие ветки 

 
CoolMan ©   (2004-10-09 17:58) [0]

Доброго времени суток, уважаемые мастера!

Вот что интересует:
Есть файл 1.txt. В первой строчке указаны маски для поиска разделенные запятой (ПРИМЕР: *.txt, *.html и т.д). Во второй строке адрес деректории куда будут копироваться все найденые файлы

ВОТ ЧТО НАДО: прога запускаится. Без всяких вопросов начинает поиск по всем локальным дискам (+ А)(но не cd-rom) беря переменные из файла 1.txt, и если находит файл, удовлетворяющий одну из масок, указаных в первой строке файла копирует его в директорию указаную во второй строке. После пороверки всех дисков и копирования файлов выводит сообщение что поиск завершен.

Заранее Вам благодарен!!!

PS: пожалуйста если есть возможность - полный код


 
Семен Сорокин ©   (2004-10-09 18:01) [1]

а если 1.txt содержит *.* ? :))
по сабжу:
парсер строки + FindFirst, FindNext, FindClose + CopyFile


 
CoolMan ©   (2004-10-09 18:04) [2]

2 Семен Сорокин

:) можно и *.*

Я начинающий - так что если можно полный код.
СПАСИБО


 
Defunct ©   (2004-10-09 18:27) [3]

Я начинающий - так что если можно зарплату на год вперед.


 
kaZaNoVa ©   (2004-10-09 18:40) [4]

CoolMan ©   (09.10.04 17:58)
боюсь полный код тут никто не выложит ...
//всё-таки задача хоть и простая, но не тривиальная ;))
- получение списка дисков:

procedure TForm1.Button1Click(Sender: TObject);
function GetDriveAll:string;
Var
ld,i:DWORD;
info:string;
Begin
info:="";
ld := GetLogicalDrives;
for i := 0 to 25 do
begin
if (ld and (1 shl i)) <> 0 then begin
if GetDriveType(PChar(Char(Ord("A") + i) + ":\"))=DRIVE_FIXED then
info:=info+Char(Ord("A") + i);
if GetDriveType(PChar(Char(Ord("A") + i) + ":\"))=DRIVE_REMOVABLE then
info:=info+Char(Ord("A") + i);
//if GetDriveType(PChar(Char(Ord("A") + i) + ":\"))=DRIVE_CDROM then
//info:=info+Char(Ord("A") + i);
if GetDriveType(PChar(Char(Ord("A") + i) + ":\"))=DRIVE_REMOTE then
info:=info+Char(Ord("A") + i);
if GetDriveType(PChar(Char(Ord("A") + i) + ":\"))=DRIVE_RAMDISK then
info:=info+Char(Ord("A") + i);  end;
end;
GetDriveAll:=info;
end;
begin
form1.caption:=GetDriveAll;
end;


а дальше рекурсия поиска с копированием .. )


 
CoolMan ©   (2004-10-09 18:43) [5]

2 kaZaNoVa

И опять мой респект!
Спасибо за терпимость и помощь!


 
Defunct ©   (2004-10-09 18:48) [6]

[4]

на вкладке Win3.1 есть компонент TDriveComboBox, который делает тоже самое без лишних телодвижений ;>


 
kaZaNoVa ©   (2004-10-09 18:55) [7]

CoolMan ©   (09.10.04 18:43) [5]
все мы когда-то были новичками ;)))


 
begin...end ©   (2004-10-09 19:00) [8]

function GetDrives: String;
var
 Ch: Char;
begin
 for Ch := "A" to "Z" do
   if GetDriveType(PChar(Ch + ":\")) in [DRIVE_FIXED, DRIVE_REMOVABLE] then
     Result := Result + Ch;
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
4-1095448825
cerber1
2004-09-17 23:20
2004.10.24
Каретка в Ворде


14-1096659940
Piter
2004-10-01 23:45
2004.10.24
А есть процедура, которая удаляет элемент динамического массива?


4-1095430666
Smart Crazy
2004-09-17 18:17
2004.10.24
Убить эту чёртову иконку в трее


14-1096736432
ArMellon
2004-10-02 21:00
2004.10.24
Заканчиваю работу над прогой и хотелось бы


14-1096878392
said
2004-10-04 12:26
2004.10.24
Метод анализа иерархий