![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замкнутый круг. Как закончить цикл?
UDS © (2002-04-28 21:28:00)Цикл заполняет строками Tmemo2 из TMemo1. Как без ошибки закончить заполнение, если ничего не добавляется.(Блин, как то криво нарисовал проблему...). Если использовать счетчик
for i=0 to n do,
тогда если значение n в нем превышает количество строк в TMemo1, то происходит ошибка в программе. Помогите!
UDS (2002-04-28 22:06:00) [21]>Malder © (28.04.02 21:57)
>UDS, а что такое n ? Если просто перенести из одного memo в >другое, то децствительно: For i:=0 to Memo1.Lines.Count-1 do
>P.S. Хотя, а почемy бы не написать просто: >Memo1.lines:=memo2.lines
Во первых как я уже сказал надо чтобы в Memo2 данные типа ФИО выстраивались в столбик, в отличие от Memo1, где все ФИО идут подряд через запятую, поэтому вариант с простым переносом тут не прокатит.
Во вторых далее их будет легче сортировать: ФИО,ИОФ,ФОИ, и т.д.
А вот For i:=0 to Memo1.Lines.Count-1 щас попробую.Спасибо.
Malder (2002-04-28 21:57:00) [22]UDS, а что такое n ? Если просто перенести из одного memo в другое, то децствительно: For i:=0 to Memo1.Lines.Count-1 do
P.S. Хотя, а почемy бы не написать просто: Memo1.lines:=memo2.lines
UDS (2002-04-28 21:54:00) [23]На момент запуска программы в TMemo1 ни фига нету. Пользователь вводит через запятую несколько Фамилий Имен и Отчеств: Иванов Иван Иванович, Колбасюк Екатерина Семеновна, Петров Федор Николаевич,... ну и т.д. После нажатия на TButton все эти данные выводятся в столбик в TMemo2.
begin
with TstringList.Create do
try
text:=memo1.text;
text:=StringReplace(Text,#32,#13#10,[rfReplaceAll]);
// Заменяем в строке Text пробелы на символ
// #13#10
// благодаря чему записи автоматически
// рассортировываются в Strings
n:=0;
if memo1.Text<>"" then begin
for t:=0 to 3 do //!!!!!!!!! Если в TMemo введено меньше 3-х
// записей, то произойдет ошибка
begin
f:=strings[n];
i:=strings[n+1];
o:=strings[n+2];
memo2.lines.add(f+" "+i+" "+o);
n:=n+3;
end;end;
finally
free
end;
end;
А как сказать,чтоб не превышало?
alxx (2002-04-28 21:41:00) [24]If i>=Memo1.Lines.Count Then Break;
А вообще-то надо так, наверное:
For i:=0 to Memo1.Lines.Count-1 do
Anatoly Podgoretsky (2002-04-28 21:34:00) [25]А зачем превышаешь?
Doom (2002-04-28 21:32:00) [26]код приведи