Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматическое открытие текстовых файлов. 
V
    Опции темы
Vladimir_K
Дата 17.4.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Подскажите, как, указав папку, реализовать программное открытие находящихся в ней текстовых файлов?
Количество и имена файлов заранее неизвестны.
Порядок такой:
1) указать конкретную папку;
2) нажать кнопку Пуск;
3) содержимое первого по-порядку файла загружается в окно RichEdit;
4) обработка файла;
5) сохранение файла;
6) открытие следующего файла;
7) и т.д.
8) остановка, когда все файлы из папки обработаны.
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Snowy
Дата 17.4.2007, 17:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



FindFirst + F1
PM MAIL   Вверх
ama_kid
Дата 17.4.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



FindFirst/FindNext


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Vladimir_K
Дата 17.4.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Что-то я не очень понял...
Как это сделать-то? smile 
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
z-END
Дата 17.4.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(Vladimir_K @  17.4.2007,  19:25 Найти цитируемый пост)
Как это сделать-то?

дык.. руками или деньгамиsmile

вызываем диалог обзора папок (или пишем свой)
выполнем поиск всех текстовых файлов, заносим их в массив
потом крутим цикл по всем элементам полученного массива (окртываем, редактируем,сохраняем)


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Vladimir_K
Дата 17.4.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Как вызвать диалог обзора папок? Чтобы выбрать можно было именно папку а не конкретный файл в ней?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Vladimir_K
Дата 17.4.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Код

procedure TForm1.Button1Click(Sender: TObject);
var F:TSearchRec;
    ires:integer;
    sdirtxt:string;
begin
 ires:=FindFirst(sdirtxt,faAnyFile,F);
 while ires=0 do
  begin
   RichEdit1.Lines.LoadFromFile(F.Name);//Отобразить содержимое файла
   .
   .
   ires:=FindNext(F);
  end;

end;

Как-то так... 
А как задать каталог в переменную sdirtxt?

Это сообщение отредактировал(а) Vladimir_K - 17.4.2007, 19:55
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
z-END
Дата 18.4.2007, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(Vladimir_K @  17.4.2007,  20:45 Найти цитируемый пост)
А как задать каталог в переменную sdirtxt?

может вам инструкцию по пользованию поиском распечатать? smile


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Akella
Дата 18.4.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Цитата(z-END @  17.4.2007,  18:30 Найти цитируемый пост)
или деньгамиsmile

наглёш

Добавлено @ 11:01
Код

Procedure TfmUpdateInfo.GetArchivesToUpload(Dir:String);
Var
 SearchRec:TSearchRec;
begin
 try
   if Dir<>'' then Dir:=IncludeTrailingPathDelimiter(Dir);
   if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then
     repeat
       if (SearchRec.name='.') or (SearchRec.name='..') then continue;
       if ((SearchRec.Attr and faDirectory)<>0) then
         GetArchivesToUpload(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name"
       else  begin

             if AnsiUpperCase(ExtractFileExt(SearchRec.name)) = '.RTF' then   EditFile(Dir+SearchRec.name);

       end;//else
     until FindNext(SearchRec)<>0;
   FindClose(SearchRec);

 finally
   //
 end;
end;


а в EditFile() уже извращаешься как хочешь, открываешь, редактируешь, закрываешь ну и т.д.

Это сообщение отредактировал(а) Akella - 18.4.2007, 11:03
PM MAIL   Вверх
z-END
Дата 18.4.2007, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(Akella @  18.4.2007,  11:58 Найти цитируемый пост)
наглёш

оффтоп

все можно сделать или самому или за вознаграждениеsmile



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Akella
Дата 18.4.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



На Винграде советы дают и оказывают помощь бесплатно, за иск. той ветки, где явно подразумевается вознаграждения за помошь. smile

Добавлено через 25 секунд
а ты намекаешь ему.... вместо помощи....

Добавлено через 2 минуты и 2 секунды
Цитата(z-END @  18.4.2007,  11:04 Найти цитируемый пост)
все можно сделать или самому или за вознаграждение

или обратиться к нам на форум smile 
PM MAIL   Вверх
z-END
Дата 18.4.2007, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102





Цитата(Akella @  18.4.2007,  12:09 Найти цитируемый пост)
или обратиться к нам на форум

к вам на форум и обратились.. так что пиши кодsmile


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Vladimir_K
Дата 18.4.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Спасибо, конечно за помощь, но я думал это будет попроще сделать, типа использования OpenDialog...
Как работать с этой процедурой: procedure TfmUpdateInfo.GetArchivesToUpload(Dir:String); я вообще понятия не имею. Ну нет у меня таких знаний.
Попробую разобраться, что там к чему, а нет, так использую другой путь. 
Но все равно всем спасибо за помощь. Или почти всем...

А поиск по запросу "диалог обзора папок" ничего не дал.
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
z-END
Дата 18.4.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(Vladimir_K @  18.4.2007,  16:04 Найти цитируемый пост)
А поиск по запросу "диалог обзора папок" ничего не дал.

а синонимы проверить сил конечно же нет...
обзор папок/выбор папки/обзор директории/ выбрать директорию/выбрать каталог/ 
самому не догадаться?

Цитата(Vladimir_K @  18.4.2007,  16:04 Найти цитируемый пост)
Как работать с этой процедурой: procedure TfmUpdateInfo.GetArchivesToUpload(Dir:String); я вообще понятия не имею. Ну нет у меня таких знаний.

может сначала мат.часть почитать? smile
тебе дали готовый кусок кода. который нужно вставить тебе в форму и вызывать по нажатию на твой "ПУСК" 


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Akella
Дата 19.4.2007, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Код

Procedure ScanFilder(Dir:String);
Var
 SearchRec:TSearchRec;
begin
 try
   if Dir<>'' then Dir:=IncludeTrailingPathDelimiter(Dir);
   if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then//если что-то нашли
     repeat
       if (SearchRec.name='.') or (SearchRec.name='..') then continue;//если это не каталоги и не файлы, то пропускаем
       if ((SearchRec.Attr and faDirectory)<>0) then//
         ScanFilder(Dir+SearchRec.name) //нашли папку и вызываем опять саму себя - рукурсия называется
       else  begin//если попалась не папка, а файл, то вот он родной, нужно узнать расширение
             
           if AnsiUpperCase(ExtractFileExt(SearchRec.name)) = '.RTF' then   EditFile(Dir+SearchRec.name);//если расширение "наше", то вызываем функцию EditFile(), а вот уже эту функцию пиши сам, никто не знает точно что ты в ней будешь делать!!!
       end;//else
     until FindNext(SearchRec)<>0;
   FindClose(SearchRec);//заканчиваем поиск
 finally
   //
 end;
end;

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1121 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.