Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 10.10.2012
Сообщений: 32
1

Как задать цикл открытия файлов в memo?

11.10.2012, 21:53. Показов 1276. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, что нужно:
Нужно, чтобы программа открывала все файлы по-порядку из определённой папки в memo1, проводила над ней некоторые операции и значения выкидывала в StringGrid.
Так вот, как "сказать" ей, чтобы она открывала файлы по-порядку, т.е. как задать ей цикл?

Вроде что-то написал, но оно не работает. Компилируется но не работает.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure TForm1.Button1Click(Sender: TObject);
var
sr: TSearchRec;
a,b,i,j,d,z: Longint;
st1,st2,st3,st4: String;
L : TStringList;
begin
 
Memo2.Clear;
 
 
if FindFirst('C:\000\*.*', faAnyFile, sr) = 0 then
  begin
  repeat
  Memo2.Lines.Add(sr.Name);
  until FindNext(sr) <> 0;
  FindClose(sr);
 end;
 
i:=1;
 
 
for d:=1 to Memo2.Lines.Count-1 do
  begin
   Memo1.Lines.LoadFromFile('c:\000\'+memo2.Lines[d]);
 
for b:=0 to Memo1.Lines.Count-1 do
begin
st1:=Memo1.Lines[b];
if Pos ('Product Code',st1)<>0 then
begin
a:=b+1;
j:=1;
StringGrid1.Cells [i,j]:=memo1.Lines[a];
end;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2012, 21:53
Ответы с готовыми решениями:

Как задать фильтр в диалоговом окне открытия файлов
Вот я открываю файл таким образом, как сделать так, чтоб я мог открыть и видеть в диалоговом окне...

Задать начальную область открытия обозревателя файлов
Здравствуйте! В моей программе при нажатии на кнопку открывается обозреватель файлов, но открыться...

Как задать время открытия, формы при нажатии кнопки?
Пример: нажал на кнопку &quot;Открыть форму&quot; прошло 3 секунды и форма открылась. Знаю что можно сделать...

Как в функции открытия файла fopen() задать путь через ключи
Как в функции открытия файла fopen() задать путь через ключи. Раньше путь задавался так: char...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
11.10.2012, 22:05 2
Что-то ты непонятное творишь. После прохода FindFirst/FindNext в Memo2 уже будут полные пути, не надо к ним опять добавлять 'c:\000\'. Файлы просто не будут найдены.
0
1 / 1 / 1
Регистрация: 10.10.2012
Сообщений: 32
11.10.2012, 22:13  [ТС] 3
Да, он как раз и пишет, что не может открыть файл.
Но если и убрать эту часть, т.е. получается:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for d:=1 to Memo2.Lines.Count-1 do
  begin
   Memo1.Lines.LoadFromFile(memo2.Lines[d]);
 
for b:=0 to Memo1.Lines.Count-1 do
begin
st1:=Memo1.Lines[b];
if Pos ('Product Code',st1)<>0 then
begin
a:=b+1;
j:=1;
StringGrid1.Cells [i,j]:=memo1.Lines[a];
end;
end;
Опять же пишет то, что во вложенном скриншоте
Миниатюры
Как задать цикл открытия файлов в memo?  
0
angstrom
11.10.2012, 22:17 4
А это что за ерунда?
Delphi
1
2
3
for d:=1 to Memo2.Lines.Count-1 do
  begin
   Memo1.Lines.LoadFromFile(memo2.Lines[d]);
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
11.10.2012, 22:18 5
Стоп. Я с чем-то FindFirst явно перепутал. Надо делать так, как ты делаешь, только отсекать ссылки на родительский каталог и на самого себя ( если в той папке есть еще и поддиректории - надо будет и их отсекать ):

Delphi
1
2
3
4
5
6
7
8
if FindFirst('C:\000\*.*', faAnyFile, sr) = 0 then
begin
   repeat
      if (sr.Name <> '.') and (sr.Name <> '..') then // вот это условие добавь
         Memo2.Lines.Add(sr.Name);
   until FindNext(sr) <> 0;
   FindClose(sr);
end;
, а дальше - делай, как у тебя было, с добавлением 'c:\000\'
0
1 / 1 / 1
Регистрация: 10.10.2012
Сообщений: 32
11.10.2012, 22:33  [ТС] 6
Ну, это попытка поочерёдной загрузки файлов в memo1(они текстовые).
Как бы в memo2 организовался список с именами файлов. А в memo1 они загружаются

Добавлено через 13 минут
О,всё работает, спасибо)

P.S. там надо было ещё строки с нуля считать, т.к. строки в Memo с нулевой считаются. Но это не суть
0
11.10.2012, 22:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2012, 22:33
Помогаю со студенческими работами здесь

Как в функции открытия файла fopen() задать путь через ключи
Как в функции открытия файла fopen() задать путь через ключи. Раньше путь задавался так: char...

Как задать путь открытия файла из папки \Resources после опубликования приложения?
Добрый день уважаемые форумчане. При создании приложения (используется VS2013) в Обозреватель...

Как задать положение слова в строке Memo?
Здравствуйте. Имется такой алгоритм: Memo1.Lines.add(Edit1.text+Edit2.text); Как зделать...

Как задать вывод текста построчно в Memo?
помогите, пожалуйста) нужно загрузить в Мемо текстовый файл без двух его последних строк. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru