Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.08.2008, 14:40
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию Обработать несколько файлов

Есть более-менее работающая программа. Обрабатывает текстовые файлы(вносит комментарии в конец файла). Как сделать так, чтобы программа умела обрабатывать пакеты таких файлов? Т.е. открыл opendialog'ом 10 файлов и она к каждому добавила?

Код пожалуйста в студию.

Заранее всем благодарен.
Ответить с цитированием
  #2  
Старый 19.08.2008, 16:07
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Цитата:
Сообщение от FreeUser
Есть более-менее работающая программа. Обрабатывает текстовые файлы(вносит комментарии в конец файла). Как сделать так, чтобы программа умела обрабатывать пакеты таких файлов? Т.е. открыл opendialog'ом 10 файлов и она к каждому добавила?

Код пожалуйста в студию.

Заранее всем благодарен.

Код:
for i:=0 to OpenDialog.Files.Count-1 do
begin
  AssignFile(f, OpenDialog.Files[i]);
  ...
  CloseFile(f);
end;
Ответить с цитированием
  #3  
Старый 20.08.2008, 19:25
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Неа. Не дает opendialog выбирать файлы. Только по 1.
Ответить с цитированием
  #4  
Старый 20.08.2008, 19:28
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

И при таком доступе разве мне удасться загрузить пачку очередью в Memo?
Задачей является - выбор многих файлов для впихивания по 1, в порядке очереди.
Ответить с цитированием
  #5  
Старый 20.08.2008, 19:36
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Код:
memo1.Lines.Clear;
Opendialog1.Execute;
for i:=0 to opendialog1.Files.Count-1 do begin
AssignFile(f, OpenDialog1.Files[i]);
if opendialog1.FileName <> '' then
memo1.Lines.LoadFromFile(OpenDialog1.Files[i])
...
Работа с содержимым Memo1.
...
CloseFile(f);
end; 

После этого вылетает ошибка i/o 103. Не подскажете в чем проблема?
Ответить с цитированием
  #6  
Старый 20.08.2008, 19:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

проблема в том, что тебе не надо открывать файл, т.к. LoadFromFile сама все сделает. Убираешь из кода строки:

AssignFile(f, OpenDialog1.Files[i]);
if opendialog1.FileName <> '' then
CloseFile(f);

А строку

Opendialog1.Execute;

меняешь на

If Opendialog1.Execute Then
Begin
...
End;

Должно получиться что-то типа:

Код:
memo1.Lines.Clear;
if Opendialog1.Execute then
begin
  for i:=0 to opendialog1.Files.Count-1 do begin
    memo1.Lines.LoadFromFile(OpenDialog1.Files[i])
    ...
    Работа с содержимым Memo1.
    ...
  end;
end; 
Ответить с цитированием
  #7  
Старый 20.08.2008, 19:58
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Opendialog не дает выделить несколько файлов. Не дает и все
Ответить с цитированием
  #8  
Старый 20.08.2008, 19:59
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

allow multi нашел. сорри
Ответить с цитированием
  #9  
Старый 20.08.2008, 20:03
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Так. Все исправил. Выделил пачку 8шт. На выхлопе вместо 8 обработанных - 1. Имена у всех рандомом ставятся, так что перезапись исключена.
Ответить с цитированием
  #10  
Старый 20.08.2008, 21:10
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

тоесть ты хочешь объеденить все файлы в один?
Ответить с цитированием
  #11  
Старый 20.08.2008, 21:23
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Нет. У меня программа обрабатывает txt файл. 1 выбрал - 1 обработала. Теперь надо прикрутить к программе работу не с 1 файлом, а с группой. Выбрал 10 штук, она 10 и обработала.
Ответить с цитированием
  #12  
Старый 20.08.2008, 21:26
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

lmikle все объяснил уже...
Ответить с цитированием
  #13  
Старый 20.08.2008, 21:33
FreeUser FreeUser вне форума
Начинающий
 
Регистрация: 13.08.2008
Сообщения: 119
Репутация: 10
По умолчанию

Блин, сорри еще раз..После do - begin забыл воткнуть. СПАСИБО огромное! Все работает!
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025