Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
На досуге создал программу для массового переименования файлов, а так же расширений. Если постараться, программу можно довести до ума, будет очень даже полезна, а пока она мало функциональна.
может кто то оценит программу или форум совсем слёг?
Alien, а у вас самого после вот таких слов:
Quote (Alien)
а пока она мало функциональна.
возникнет желание что-то тестировать? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Еще прикольно когда в поле имени ствишь символ "\" или "?", то файлы просто исчезают Ну теперь точно удивишь нас программкой копированием\удалением\перемещением фалов с любой вложеностью
А это желание у кого должно возникнуть? Alien, проект же ваш, вам и улучшать его! Тем более, если вы и сами это видите и понимаете. А оценивать малофункциональную программу просто смысла нет. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Peter, я сделал заготовку проекта, а не саму программу. Это для других людей, тех кто скачает проект и доделает его на свой вкус и цвет, а так же посмотрит алгоритм.
Peter, я сделал заготовку проекта, а не саму программу.
Гм... Сначала было так:
Quote (Alien)
На досуге создал программу для массового переименования файлов, а так же расширений.
Потом так:
Quote (Alien)
может кто то оценит программу
Quote (Alien)
Это для других людей, тех кто скачает проект и доделает его на свой вкус и цвет, а так же посмотрит алгоритм.
Ну коли так, то тогда ничего не остается, как ждать.... Или может все же улучшить? А?... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Функцирнальность типа delete *.* rename *.txt *.doc как то не представляет интереса, так же и массовое переименование, как само по себе, другое дело если оно делается в контексте иной конкретной задачи. К примеру при работе с аудиофайлами и тегами, типа track1...trackN, для придания им более понятных имен, но и тут на первом месте именно работы с тегами, а переименование как сопутствующий алгоритм. Перебор "дерева", довольно старая задача, широко описанная и доступная, так что тут присутствует твое личное достижение, по решению этой задачи. К примеру в ммв она была уже не раз реализована, и не как отдельный механизм а как часть более сложного алгоритма.
имелось ввиду "рост" Не скажу, что задачка трудная, но и не легкая. И ты любишь делать просто алгоритмы (заготовки). Вот и написал типа идею на следущюю заготовку
Ну теперь точно удивишь нас программкой копированием\удалением\перемещением фалов с любой вложеностью
Помнишь мы как-то спорили на эту тему? Если честно, то я так и не сделал такую функцию, правда пытался, но к сожалению у меня так ничего и не получилось реализовать
Но главное, сама концепция реализации мне ясна. Вот если бы мне кто-нибудь помог осуществить эту задачку.....
Вот если бы мне кто-нибудь помог осуществить эту задачку.....
Ну вот, теперь появился единомышленник в лице Alien. Объединяйтесь и действуйте! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Но главное, сама концепция реализации мне ясна. Вот если бы мне кто-нибудь помог осуществить эту задачку.....
может Alien сделает хорошую заготовку, и мы будем пользоватся ей с большой благодарностью Если ну очень надо, могу дать свою заготовку, она как раз требует небольшой дороботки (пиши в ЛС)
это значит, что в проверяемой дириктории, может быть любое количество, папок с вложеными файлами и папками и естественно неизвестно сколько их. Папка на папке и папкой погоняет когда я тестил свю заготовку, то отсканировал дирикторию сайта, она обработала 800 файлов, из них 47 папок, вывела в текст, я проверил(не все конечно), но ошибок не нашел. Беда тока, если попадется пустая папка, то "пипец" останавливается только через диспетчер
Беда тока, если попадется пустая папка, то "пипец" останавливается только через диспетчер
Значит у тебя в аглгоритме баг, ищи и исправляй. Есть два алгоритма линейный и рекурсивный. Рекурсивный, это когда процедура вызвываем саму себя procedure Finddir(path:string) begin перебор всех объектов в текущей директории: если файл, то проверить его расширение, и сделать что там надо если директория, то вызвать Finddir(path+имя директории) end Дойдя до самой нижней директории и обработав файлы, экземпляр процедуры заканчивается, и управление передается предидущему экземпляру, и так до окончания самого первого.
Если ну очень надо, могу дать свою заготовку, она как раз требует небольшой дороботки (пиши в ЛС)
Чуть позже, т.к. свою заготовку удалил, осталась только сама идея в голове Восстановлю свою, скину тебе, а потом уже будем думать как их объединить
Quote (Alex3A)
begin перебор всех объектов в текущей директории: если файл, то проверить его расширение, и сделать что там надо если директория, то вызвать Finddir(path+имя директории) end
Ну примерно так я и пытался сделать, вот только самая проблема была вот с этим:
Quote (Alex3A)
Дойдя до самой нижней директории и обработав файлы, экземпляр процедуры заканчивается, и управление передается предидущему экземпляру,
Не пойму как вернуться на уровень выше из обрабатываемой папки...
Не пойму как вернуться на уровень выше из обрабатываемой папки...
А ни как, процедура сама заканчивается, ключевой момент тут, аргумент функции - путь к папке, он должен быть разным в каждом экземпляре, то есть хранить его в одной переменной нельзя, так как в нижнем экземпляре функции ты его можеш переписать. В примере же четко показано path+имя директории, или тебя интересует, как попасть в верхнюю папку? Это немного из другой оперы, есть имя .. (две точки) что значит перейти на папку выше, или на несколько - ..\..\..\
ну естестно, только пока времени нет, будет свободное времечко доделаю, т.к. этот крипт частенько выручает. Помню там заноза была, в том если ставлю проверку на пустоту дирик. то получается бескон. цикл, если не ставить проверку на пустоту, то засада с пустой папкой , патом поковыряюсь.
Quote (Bodi)
Не пойму как вернуться на уровень выше из обрабатываемой папки..
не стоит тебе идти в этом напровлении! Alex3A, правильно дорогу показал, в принципе алгоритм у всех один, реализация разная. Попробуй использовать 2- ЛистБокса, один ЛБ для всех файлов(т.е. как просканируешь дирик. сложи туда результат) потом берешь с этого ЛБ по одному имени и проверяешь, если папка закидываешь во второй ЛБ (но с учетом новой дирик. т.е. на один уровень ниже). Как закончишь перебор 1 ЛБ, принимайся за второй. Сам не проверял этот метод(наверное это будет линейный способ). Я в загатовке тоже использую 2 ЛБ, правда второй у меня для обработанных файлов, и к сканеру не имеет отношения
А ни как, процедура сама заканчивается, ключевой момент тут, аргумент функции - путь к папке, он должен быть разным в каждом экземпляре, то есть хранить его в одной переменной нельзя
Да-а-а, это я еще понял когда пытался что-то сделать.
Quote (Alex3A)
В примере же четко показано path+имя директории, или тебя интересует, как попасть в верхнюю папку?
Не все так просто.... Может например быть такое: ИМЯ_КОРНЕВОЙ_ПАПКИ/ПАПКА1/ПАПКА2/ПАПКА3. Соответственно текущая папка - "ПАПКА3", дак вот как перейти на уровень выше, если в текущей папке нет больше других катологов, а затем продолжить сканирование папок (и файлов), исключая уже просканированую папку - "ПАПКА3"???
Quote (Alex3A)
..\..\..\
Хм.. здесь надо будет поэксперементировать....
Quote (sp3d)
не стоит тебе идти в этом напровлении! Alex3A, правильно дорогу показал, в принципе алгоритм у всех один, реализация разная.
Ну вообще-то, насколько я понял, мы с Алексом мыслим по поводу этой проблему аналогично, а вот тот вариант который предлагаешь ты, мне как-то не по душе
Ну ну,эксперементируй Небольшой экскурс в прошлое... Еще в досе, папку открывали командой cd имя папки, для возврата на уровень вверх cd.., в некоторых прогах, до сих пор при показе содержимого папки присутствует папка .. щелкнув по которой вы окажетесь на папку выше То есть .. это команда перехода к папке хозяину текущей папки, без указания ее имени. Если мы находимся c:\1\2\3\4\5 то выполнив команду cd.., будем в c:\1\2\3\4, а cd ..\..\ в c:\1\2\3, но никто не мешает нам перейти на любую папку, путь у которой нам заранее известен cd c:\1 или c:\другая папка. В современных прогах вас просто избавили от ручного ввода команд, прописав их в события объктов, и вам просто достаточно целкнуть мышом, что бы система набрала нужную команду, за вас, леньтяев