Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2008, 22:01   #1
valyan
 
Регистрация: 16.07.2008
Сообщений: 5
По умолчанию открытие нескольких файлов

здравствуйте. проблема следующая: в папке есть несколько файлов, их нужно открыть для чтения все, не по одному. с одним файлом проблем нет.
Код:
var sr:TSearchRec;
FindRes:word;
f:file;
buf:array[1..65535] of Char;
begin
ListBox1.Clear;
FindRes:=FindFirst('C:\Documents and Settings\S k 8\Рабочий стол\Валян\практика\Новая папка\ctr\ufns\2008\07\03\T04?????.???',faAnyFile,sr);
 while FindRes=0 do
 begin
     ListBox1.Items.Add(SR.Name);
     FindRes:=FindNext(sr)
  end;
 AssignFile(f,'C:\Documents and Settings\S k 8\Рабочий стол\Валян\практика\Новая папка\ctr\ufns\2008\07\03\T0402530.282');
  reset(f,1);
  BlockRead(F, Buf, 1024);
  Form1.Memo1.Lines.Add(buf);
 FindClose(sr);
 CloseFile(f);
end;

Последний раз редактировалось Stilet; 17.07.2008 в 08:43.
valyan вне форума Ответить с цитированием
Старый 16.07.2008, 22:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

заводите столько переменных типа file, сколько файлов одновременно надо открыть....
а можно поинтересоваться - в чём изначально задача заключается - для чего файлы открывать ОДНОВРЕМЕННО?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2008, 22:59   #3
valyan
 
Регистрация: 16.07.2008
Сообщений: 5
По умолчанию

а если в папке немалое количество файлов(например 20)? ну открыл один файл-прочитал-сравнил с другим файлом, вывел разницу в их содержании

задача: автоматическая проверка соответствия реквизитов платежных документов администраторов поступлений в бюджет данным реестров направленных платежей, передаваемых в банк. во как

Последний раз редактировалось Stilet; 17.07.2008 в 08:38.
valyan вне форума Ответить с цитированием
Старый 16.07.2008, 23:52   #4
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Немного не до понял суть, но всё-таки.
Если не известно имя файла, то ищите, как находится файл сохраняете его адрес в массиве (кстати Вы так и делали), после как закончили поиск, с помощью цикла For перебираете массив и открываете все файлы на чтение (как в принципе и говорил Serge_Bliznykov), после (как цикл завершён) выполняете нужные действия с файлами.
И в чём проблема?
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 17.07.2008, 09:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Air, полностью с Вами согласен.

Цитата:
Сообщение от valyan
задача: автоматическая проверка соответствия реквизитов платежных документов администраторов поступлений в бюджет данным реестров направленных платежей, передаваемых в банк.
Смотрите. у Вас проблема в том, что, IMHO, Вы плохо представляете себе тот алгоритм проверки, который Вы хотите реализовать!..
Представьте себе - нет никакого компьютера, файлы - это просто картонная папка с вложенным в неё распечатанным текстом... есть рабочее место = рабочий стол, на котором Вы открываете папки и можете их читать/сравнивать/исправлять/писать новые листики в новые папки...
Так вот, как Вы лично будете сравнивать ? Откроете ВСЕ папки на столе? сразу? Но согласитесь, всё равно, даже в этом случае (хотя стол будет захламлен), Вы возьмёте ОДНУ папку, откроете её и будете проверять реквизиты (кстати, с чем сравнивать - есть эталон?) ? Проверите, решите правильные они или нет, если неправильные сделате какое-то действие... Возьмете следующую папку и т.д. и т.п... Или я ошибаюсь и всё совсем не так?... :-)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.07.2008, 10:45   #6
valyan
 
Регистрация: 16.07.2008
Сообщений: 5
По умолчанию

Serge_Bliznykov
да именно так.открываем сначала одну папку с файлами, читаем все файлы из этой папки и сравниваем поля открытых файлов с полями файла с которым сравниваем
valyan вне форума Ответить с цитированием
Старый 17.07.2008, 10:56   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

хм. Ябы делал так:
В цикле открываем каждый файл, копируем его в память и тупо сравниваем(скажем через CompareMem) с уже имеющимся в память файлом-источником.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.07.2008, 11:05   #8
valyan
 
Регистрация: 16.07.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
хм. Ябы делал так:
В цикле открываем каждый файл, копируем его в память и тупо сравниваем(скажем через CompareMem) с уже имеющимся в память файлом-источником.
открываем через AssignFile и reset, но там же по одному файлу, не пойму как сделать через цикл????
valyan вне форума Ответить с цитированием
Старый 17.07.2008, 11:17   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

смотри. Для простоты можно прикрутить в форме TFileListBox, в нем указать директорию где твои файлы лежат, и потом в цикле:
Код:
for i:=0 to FileListBox.items.count-1 do // открываем FileListBox.items[i] ну и его считываем
.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.07.2008, 15:22   #10
valyan
 
Регистрация: 16.07.2008
Сообщений: 5
По умолчанию

продолжая тему. в чем ошибка:
n:=ListBox1.Items.Count-1;
for i:=0 to n do
begin
AssignFile(f,ListBox1.Items.Strings[i]);
reset(f,1);
BlockRead(f, Buf, 1024);
FindClose(sr);
CloseFile(f);
valyan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать по одной ячейке из нескольких файлов в один Nimo Microsoft Office Excel 2 09.08.2008 09:25
Копирование нескольких файлов + ProgressBar AngelOfDeath Общие вопросы Delphi 4 28.05.2008 14:57
Как получить имена нескольких файлов выделенных в OpenDialog Comer_Jus Общие вопросы Delphi 2 26.05.2008 19:47
открытие файлов Ensoph Общие вопросы Delphi 5 31.03.2008 20:45
Перенос нескольких файлов посредством VBA Victor Microsoft Office Excel 5 09.12.2007 23:25