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

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

Организовать цикл.


_Levin ©   (2007-11-09 21:47:00) 

У меня есть два TStringList, в одном 100 записей, второй пустой.
записи в первом например:

1
один
2
два
3
бегемот


Мне нужно перенести все эти записи во второй StringList, в таком формате:

1один
2два
3бегемот


Т.е. сократить записи в два раза, путем перенесения каждой второй строки в первую.

Все понимая, как организовать, но вот как цикл задать?

for i := 0 to StringList1.Count ??? do
 StringList2.Add(???);


Германн   (2007-11-10 01:50:00) [1]


> {RASkov}   (10.11.07 00:36) [9]
>
> > Ну я может быть и ошибся в местах слогаемых, но вроде.
> ...
> > верно :)
>
> Эх.... точно ошибся :)
>

Да ещё и орфография  Она хорошая, но...
Вспоминается А.А.Милн в пересказе Б.Заходера:
"Пух.-- Это очень, очень полезная  вещь.  И  я  хотел  попросить
тебя...
    -- Ты бы написал на нем: "Поздравляю с днем рождения".
    -- Так  вот об этом я и пришел тебя попросить! -- объяснил
наконец Пух.-- Потому  что  у  меня  правильнописание  какое-то
хромое.  Вообще-то  оно  хорошее  правильнописание,  но  только
почему-то хромает..."


{RASkov}   (2007-11-10 00:36:00) [2]

> Ну я может быть и ошибся в местах слогаемых, но вроде....
> верно :)

Эх.... точно ошибся :)
Нужно так
StringList2.Add(StringList1[N*2]+StringList1[N*2+1]);
:)


{RASkov}   (2007-11-10 00:27:00) [3]

> [7] Anatoly Podgoretsky ©   (09.11.07 23:03)

I:=1;
while I<100 do begin
...Add(StringList1[I]+StringList1[ I-1]);
Inc(I,2);
end;

Да я в шутку....:)

> [6] Германн ©   (09.11.07 22:57)

Ну я может быть и ошибся в местах слогаемых, но вроде.... верно :)

>
Ну если конечно не четное будет в первом строк, то тут.... и while не поможет)


Anatoly Podgoretsky   (2007-11-09 23:03:00) [4]

> {RASkov}  (09.11.2007 22:42:05)  [5]

Поскольку это StringList то начальное значение 0, а конечное 99, и шаг 2


Германн   (2007-11-09 22:57:00) [5]


> {RASkov}   (09.11.07 22:42) [5]

Это не арифметика. Тут от перемены мест слагаемых многое зависит.
:)


{RASkov}   (2007-11-09 22:42:00) [6]

> [4] Anatoly Podgoretsky ©   (09.11.07 21:57)
> I и I+1

Зависит от начального значения I :)

А вот тем же самым For'ом можно так попробывать:

var N: Integer;
begin
 for N:= 0 to (StringList1.Count-1) div 2 do
  StringList2.Add(StringList1[N*2+1]+StringList1[N*2]);
end;


Anatoly Podgoretsky   (2007-11-09 21:57:00) [7]

> Kolan  (09.11.2007 21:54:03)  [3]

I и I+1


Kolan   (2007-11-09 21:54:00) [8]

> while

Если так то можно шагать серез 1 и брать StringList1[I-1]+StringList1[I]


Kolan   (2007-11-09 21:51:00) [9]

var
S: string;

for i := 0 to StringList1.Count — 1 do
 if Odd(I) then
   S := StringList1[I]
 else
   StringList2.Add(S + StringList1[I]);


Ку?


Anatoly Podgoretsky   (2007-11-09 21:51:00) [10]

> _Levin  (09.11.2007 21:47:00)  [0]

Тут лучше цикл while, а не for
А что неужели такие простые задания дают на курсовых, лабораторных, куда катимся однако.


Наверх

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