Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2011, 22:25   #1
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию Сдвигание строк в StringList (Delphi)

Подскажите пожалуйста. Как можно при удаление строки или при ее очищение, следующую строку сдвинуть на ее место. Если мы очистили строку 4, то срока 5 становиться на ее место, а строка 6 на место пятой и так далее до конца последней строки
CAMOBAP вне форума Ответить с цитированием
Старый 08.03.2011, 08:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

э...
так это уже и так работает.
Если Вы удаляете строку, то все остальные "как бы сдвигаются" - на самом деле у них просто индекс уменьшается!

например. есть (в скобках индекс):
Первая строчечка (0)
Вторая строчечка (1)
Третья строчечка (2)
Четвёртая строчечка (3)

выполнив команду удаления, например второй строки (с индексом 1): xxxx.Delete(1);
получаем:
Первая строчечка (0)
Третья строчечка (1)
Четвёртая строчечка (2)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2011, 09:58   #3
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Спасибо. А если нужно добавить в средину StringList какую то строчку ?Как в этом случае действовать?
CAMOBAP вне форума Ответить с цитированием
Старый 08.03.2011, 10:07   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

xxx.Insert(Куда, Что)
Цитата:
Inserts a string to the list at the position specified by Index.

procedure Insert(Index: Integer; const S: string);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2011, 10:56   #5
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Значит если мы пропишем
Код:
s.insert(5,Строка);
То строка стане на место пятой, а пятая сдвинется на место шестой? То есть индекс увеличиться.
CAMOBAP вне форума Ответить с цитированием
Старый 08.03.2011, 11:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
s.insert(5,Строка);
То строка стане на место пятой, а пятая сдвинется на место шестой? То есть индекс увеличиться.
так, как Вы написали, она встанет на место 6-й (нумерация индексов строк идёт от нуля).
Но принцип Вы уловили правильно, именно так и будет происходить!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.03.2011, 11:52   #7
CAMOBAP
Форумчанин
 
Регистрация: 07.12.2010
Сообщений: 115
По умолчанию

Забыл что нумерация идет с нуля. Теперь разобрался.Спасибо
CAMOBAP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringList(Delphi) CAMOBAP Помощь студентам 26 28.02.2011 23:20
StringList adr Общие вопросы Delphi 0 05.11.2010 18:43
Раздваивание строки в StringList (Delphi 7) alxd Помощь студентам 8 23.09.2009 13:11
stringlist grater83 Общие вопросы Delphi 2 21.09.2009 14:26
Сдвигание label'a когда значение капшн меняеться diznt Помощь студентам 3 18.08.2008 00:23