|
Вопрос # 3 056/ вопрос открыт / |
|
Здравствуйте!
Прошу извинения может мой вопрос кому-то и покажется глупым, но знания у меня очень фрагментарные и найти в литературе не могу нигде, ибо кажется не могу саму последовательность действий уяснить.
Итак: Есть две кнопочки. По нажатии одной из поля Мемо3 в масив заносятся строке. Это работает.
И есть вторая кнопочка. По нажатию которой должен создаваться файл из содержимым Поля MemoFinish (которое я буду менять вручную)
Как сделать так чтобы при нажатии кнопки записи файла имя файла бралось каждый раз новое из поля Мемо3 (оно создается один раз).
Если код создания файла поместить у цыкл - все работает.
Файлы создаются, да вот только содержимое у них у всех однаковое. (а оно то как раз и должно браться из поля MemoFinish - которое я буду менять)
Думал счетчик типа q:=q+1 но что-то не придумаю с локальными-глобальными переменными.
Приложение: Переключить в обычный режим- procedure TForm1.ButtonWriteClick(Sender: TObject);
- var
- f: textfile;
- begin
- q:=q+1;
- AssignFile(f,'c:'+name[q]);
- ReWrite(f);
- Writeln(f, MemoFinish.Text);
- CloseFile(f);
- end;
-
- procedure TForm1.ButtonCrNameClick(Sender: TObject);
- const
-
- var
- n: integer;
- q: integer;
-
- begin
-
- if n=0 then
- begin
-
- Exit;
- end;
- if n>size then
- begin
-
- end;
- for q:=1 to n do
- name[q]:=Memo3.Lines[q-1];
- if n>0 then
- begin
-
- begin
-
- end;
- end;
- end;
 |
Вопрос задал: Pokemonchyk (статус: Посетитель)
Вопрос отправлен: 2 августа 2009, 00:55
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 2 августа 2009, 08:44; участников в обсуждении: 2.
|
Dron (статус: Студент), 2 августа 2009, 00:59 [#1]:
Не очень понял, что вам нужно сделать... Сохранить текст из Memo проще всего методом SaveToFile('имя файла'). Если речь о том, чтобы вставить счётчик в имя файла, то здесь два пути: 1) хранить значение счётчика в специальном месте (например, в ini-файле); 2) "на лету" узнавать значение счётчика - в данном случае перебор файлов циклом до тех пор, пока файлы с таким именем существуют.
С уважением.
|
|
Pokemonchyk (статус: Посетитель), 2 августа 2009, 01:02 [#2]:
проще говоря мне нужно добавить счетчик сдвига в поле мемо по нажатию кнопки.
Тоесть нажал я раз кнопку - оно в качестве имени файла взяло первую строку поля мемо, нажал еще раз - вторую строку.
Чтобы каждый файл создавался только после нажатия кнопки (ибо я должен еще успевать вставлять текст в поле MemoFinish)
|
|
Dron (статус: Студент), 2 августа 2009, 01:05 [#3]:
В таком случае номер текущей строки нужно хранить где-то во внешней памяти, если этот счётчик должен сохраняться после перезапуска программы. Если же он только на время работы программы - единственная переменная, больше ничего и не нужно. Да и то можно использовать Memo.Tag, чтобы лишнюю переменную не заводить.
С уважением.
|
|
Pokemonchyk (статус: Посетитель), 2 августа 2009, 01:15 [#4]:
Мдя... Допозна нельзя сидеть...
Код спростился до:
procedure TForm1.ButtonWriteClick(Sender: TObject);
var
f: textfile;
name: string;
begin
name:=Memo3.Lines[q-1];
AssignFile(f,'c:\'+name);
ReWrite(f);
Writeln(f, MemoFinish.Text);
CloseFile(f);
q:=q+1;
end;
Тоесть заносить в цикл не нужно. В качесте глобальной переменной установил q и присвоил q:=1 при создании формы.
Мдя...
to Dron - спасибо за освежение мозгов
|
|
Dron (статус: Студент), 2 августа 2009, 08:44 [#5]:
Да не за что - обращайтесь А вообще, рекомендую всё же не заводить отдельную переменную - только мешаться будет. MemoFinish.Tag - очень хороший вариант. И сразу видно, что относится именно к MemoFinish.
С уважением.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|