Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > Автоматическое открытие текстовых файлов. |
Автор: Vladimir_K 17.4.2007, 17:15 |
Подскажите, как, указав папку, реализовать программное открытие находящихся в ней текстовых файлов? Количество и имена файлов заранее неизвестны. Порядок такой: 1) указать конкретную папку; 2) нажать кнопку Пуск; 3) содержимое первого по-порядку файла загружается в окно RichEdit; 4) обработка файла; 5) сохранение файла; 6) открытие следующего файла; 7) и т.д. 8) остановка, когда все файлы из папки обработаны. |
Автор: Snowy 17.4.2007, 17:22 |
FindFirst + F1 |
Автор: ama_kid 17.4.2007, 17:22 |
FindFirst/FindNext |
Автор: Vladimir_K 17.4.2007, 18:25 |
Что-то я не очень понял... Как это сделать-то? ![]() |
Автор: z-END 17.4.2007, 18:30 |
дык.. руками или деньгами ![]() вызываем диалог обзора папок (или пишем свой) выполнем поиск всех текстовых файлов, заносим их в массив потом крутим цикл по всем элементам полученного массива (окртываем, редактируем,сохраняем) |
Автор: Vladimir_K 17.4.2007, 19:17 |
Как вызвать диалог обзора папок? Чтобы выбрать можно было именно папку а не конкретный файл в ней? |
Автор: Vladimir_K 17.4.2007, 19:45 | ||
Как-то так... А как задать каталог в переменную sdirtxt? |
Автор: z-END 18.4.2007, 09:23 |
может вам инструкцию по пользованию поиском распечатать? ![]() |
Автор: Akella 18.4.2007, 10:58 | ||
наглёш Добавлено @ 11:01
а в EditFile() уже извращаешься как хочешь, открываешь, редактируешь, закрываешь ну и т.д. |
Автор: z-END 18.4.2007, 11:04 |
оффтоп все можно сделать или самому или за вознаграждение ![]() |
Автор: Akella 18.4.2007, 11:09 |
На Винграде советы дают и оказывают помощь бесплатно, за иск. той ветки, где явно подразумевается вознаграждения за помошь. ![]() Добавлено через 25 секунд а ты намекаешь ему.... вместо помощи.... Добавлено через 2 минуты и 2 секунды или обратиться к нам на форум ![]() |
Автор: z-END 18.4.2007, 11:16 |
к вам на форум и обратились.. так что пиши код ![]() |
Автор: Vladimir_K 18.4.2007, 15:04 |
Спасибо, конечно за помощь, но я думал это будет попроще сделать, типа использования OpenDialog... Как работать с этой процедурой: procedure TfmUpdateInfo.GetArchivesToUpload(Dir:String); я вообще понятия не имею. Ну нет у меня таких знаний. Попробую разобраться, что там к чему, а нет, так использую другой путь. Но все равно всем спасибо за помощь. Или почти всем... А поиск по запросу "диалог обзора папок" ничего не дал. |
Автор: Akella 19.4.2007, 08:34 | ||
|
Автор: Vladimir_K 19.4.2007, 17:50 | ||||||
Я использовал вот какой код:
В теме, в которой я его нашел, сказано следующее:
После этого:
И больше никаких подробностей. Но мне этого мало. Подскажите, как использовать эту компоненту: JvSelectDirectory? |
Автор: Vladimir_K 19.4.2007, 21:42 |
И почему-то для правильной работы моей программы, она должна находиться в той же папке, где и текстовые файлы... Иначе - не работает. Поэтому, наверное, и со вложенными папками ничего не получается? В принципе, мне запоминание последней открытой папки не нужно, если программа сможет открывать файлы из папки, которую я укажу и из вложенных в нее папок! |
Автор: Vladimir_K 22.4.2007, 13:30 | ||
Akella, спасибо за выложенные коды, я пытался разобраться в них, но так как я очень слаб в Delphi, я не смог применить Ваш код (исправить "ошибки", которые вывалила моя Delphi7 на Ваш код), сколько я с ним не бился ![]() Вот мой код:
Проблема такая: моя программа может открыть txt файлы только из папки, в которой находится сама программа. Из других папок файлы не открываются. DRKB3 Full скачал (за 2.5 часа ![]() Может быть, кто-то из вас, о, Великие и Мудрые снизойдет до решения моей задачи? |
Автор: VladBD 22.4.2007, 19:22 | ||
Хочешь просто - бери OpenDialog, кидай на форму. При старте программы можешь начальный путь указать или расширение по умолчанию - но это не обязательно. Главное укажи мультиселект - чтобы несколько файлов можно было выделять... Потом в обработчике Button1 пишешь
|
Автор: Vladimir_K 23.4.2007, 08:18 |
Нет, OpenDialog здесь не поможет. ![]() Мне нужно указывать не отдельные файлы, а папку целиком (в которой находятся вложенные папки, а в них *.txt файлы - и прога должна уметь их все находить, и открывать). |
Автор: Akella 23.4.2007, 08:40 | ||||
какие именно ошибки? наверное тебе так нужно сделать: в верху юнита, есть раздел private объяви там процедуру, и обрати внимание на TForm1 - замени на свою форму
|
Автор: Vladimir_K 23.4.2007, 10:17 | ||||
Так, это сделал:
Теперь набросок того, что по-моему должно быть:
Как правильно написать обработчик Button1Click? EditFile(Dir+SearchRec.name), наверное надо написать процедурой, а не функцией? |
Автор: Akella 24.4.2007, 08:08 | ||
Добавлено через 2 минуты и 26 секунд Но я бы на твоём месте не делал так в цикле, а в цикле (FindeFolder(....) ) загрузил бы в список все найденные файлы, и показал бы пользователю список. Пусть сам выбирает. |
Автор: Vladimir_K 24.4.2007, 18:13 |
Ура, заработало! ![]() Спасибо, Akella, огромное! А пользователь у этой программы один будет - я, так что все путём! ![]() P.S. Совсем забыл спросить: как в DRKB искать фразу целиком? А то я ввожу фразу для поиска, а оно мне винегрет из отдельных слов находит... |
Автор: Martisha 25.11.2008, 09:01 |
e у ня похожаяситуация, только у меня папка уже известна из которой текстовые файлы берутся, это папка каждый час обновляется..что мне поменять нужно в этом коде? т.е. задача загрузить из известной папки текстовые файлы в эдит, ну и обработать их потом.. |