Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];
ВнизСкрытый поиск по маске с копированием Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c