| 
| 
 | Вопрос # 3 056/ вопрос открыт / | 
 |  Здравствуйте!Прошу извинения может мой вопрос кому-то и покажется глупым, но знания у меня очень фрагментарные и найти в литературе не могу нигде, ибо кажется не могу саму последовательность действий уяснить.
 Итак: Есть две кнопочки. По нажатии одной из поля Мемо3 в масив заносятся строке. Это работает.
 И есть вторая кнопочка. По нажатию которой должен создаваться файл из содержимым Поля MemoFinish (которое я буду менять вручную)
 Как сделать так чтобы при нажатии кнопки записи файла имя файла бралось каждый раз новое из поля Мемо3 (оно создается один раз).
 Если код создания файла поместить у цыкл - все работает.
 Файлы создаются, да вот только содержимое у них у всех однаковое. (а оно то как раз и должно браться из поля MemoFinish - которое я буду менять)
 Думал счетчик типа q:=q+1 но что-то не придумаю с локальными-глобальными переменными.
 Приложение:Переключить в обычный режим procedure TForm1.ButtonWriteClick(Sender: TObject);varf: textfile;beginq:=q+1;AssignFile(f,'c:'+name[q]);ReWrite(f);Writeln(f, MemoFinish.Text);CloseFile(f);end; procedure TForm1.ButtonCrNameClick(Sender: TObject);const varn: integer;q: integer; begin if n=0 thenbegin Exit;end;if n>size thenbegin end;for q:=1 to n doname[q]:=Memo3.Lines[q-1];if n>0 thenbegin         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. С уважением. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |