Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Замкнутый круг. Как закончить цикл?


Страницы:   1 2

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]

код приведи


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо