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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2010, 15:46   #1
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию Добавить строку в TStringList

Здравствуйте. Подскажите как добавить вторую строку в TStringList, если первую я нахожу так
Код:
   if (Pos('стоимость', price[Index]) <> 0) then
            temp.Add(price[Index]);
и сразу же мне надо добавить вторую строку, за той где найдена 'стоимость', т.е. нашли строку со 'стоимость' - добавили и за ней следующую строку добавили.
Что во второй строке - неизвестно.
мимо вне форума Ответить с цитированием
Старый 14.02.2010, 15:55   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Если без проверки на присутствие строки "стоимость" :
Код:
temp.Insert(temp.IndexOf('стоимость') + 1, 'Строка после строки Стоимость');
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 15.02.2010, 11:49   #3
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

странно работает. в TStringList строка, стоящая после 'стоимость' добавляется перед ней, а нужно после. Да и мне нужно добавлять неизвестную по содержанию строку после 'стоимость'. Добавлять строку не заданную самому, а из текста.

Последний раз редактировалось мимо; 15.02.2010 в 12:35.
мимо вне форума Ответить с цитированием
Старый 15.02.2010, 12:45   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

что то мне подсказывает что надо было вот это
Код:
   if (Pos('стоимость', price[Index]) <> 0) then
begin
            temp.Add(price[Index]);//добавили одну строку
      temp.Add(price[Index+1]);//и сразу же добавили другую строку
end;
НО как нам быть если
- добавлять нечего (стоимость была последней)
- стоимость будет найдено в двух и более последовательных строках
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 15.02.2010, 14:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
странно работает. в TStringList строка, стоящая после 'стоимость' добавляется перед ней, а нужно после.
НЕ ПОДТВЕРЖДАЮ!
код (C) Kotofff работает так, как ему положено!
нужны доказательства?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.02.2010, 14:45   #6
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
НЕ ПОДТВЕРЖДАЮ!
код (C) Kotofff работает так, как ему положено!
нужны доказательства?!
а у меня работает именно так. перепроверил.
на входе:
стоимость
на выходе:
Строка после строки Стоимость
стоимость

Цитата:
что то мне подсказывает что надо было вот это
Спасибо вам. так работает.

Цитата:
НО как нам быть если
- добавлять нечего (стоимость была последней)
- стоимость будет найдено в двух и более последовательных строках
-стоимость просто добавится и все. она будет последней в списке.
-а если идет последовательно, тогда последующая строка со 'стоимость' будет добавляться за найденной.
на входе:
стоимость
стоимость
строка
на выходе:
стоимость
стоимость
стоимость
строка

Последний раз редактировалось мимо; 15.02.2010 в 14:49.
мимо вне форума Ответить с цитированием
Старый 15.02.2010, 14:54   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

приведенный алгоритм не учитывает эти особенности и были приведены для того чтобы не просто переписали а разобрались и изменили код с учетом приведенных вопросов.
Цитата:
- добавлять нечего (стоимость была последней)
- стоимость будет найдено в двух и более последовательных строках
Цитата:
-стоимость просто добавится и все. она будет последней в списке.
-а если идет последовательно, тогда последующая строка со 'стоимость' будет добавляться за найденной.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.02.2010, 16:39   #8
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
приведенный алгоритм не учитывает эти особенности и были приведены для того чтобы не просто переписали а разобрались и изменили код с учетом приведенных вопросов.
ну первый п. меня устраивает как есть, а со вторым я уже разобрался - просто не добавляется уже добавленная (такая же) строка в TStringList.
а еще вопрос:

Цитата:
if (Pos('стоимость', price[Index]) <> 0) then
begin
temp.Add(price[Index]);//добавили одну строку
temp.Add(price[Index+1]);//и сразу же добавили другую строку
end;
а возможно ли осуществить добавление строки (вместо temp.Add(price[Index+1]);//и сразу же добавили другую строку) строки с определенным содержанием, например "у.е.", т.е. если найденно такое содержание в строке, идущей за 'стоимость', то добавили, если нет, то - не добавляем.
мимо вне форума Ответить с цитированием
Старый 16.02.2010, 20:42   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
ну первый п. меня устраивает как есть,
ровно до те пор пока такое(стоимость булет последней строкой) не произойдет. Как только произойдет будет AV (List bound of...).

добавлять можно любой текст.
Код:
s:='пример 1';
temp.add(s);
temp.add('пример 2');
temp.add(s+'последний пример');
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.02.2010, 12:14   #10
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

нет. не самому добавлять строку с определенным содержанием, а при нахождении программой.
Код:
if (Pos('стоимость', price[Index]) <> 0) then
begin
temp.Add(price[Index]);//добавили одну строку
затем если за найденной строкой нашлась строкас содержимым -  'у.е.',
то и ее добавили в temp.
мимо вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#: Добавить, Изменить и удалить строку в бд Veiron Общие вопросы .NET 1 10.06.2009 09:25
Добавить строку в ДБГрид и удалить MbIJIO БД в Delphi 4 18.04.2009 12:45
как добавить строку в конец строки Damhurz PHP 4 16.04.2009 14:35
Как программно добавить строку в ексель? AnnNet Microsoft Office Excel 2 04.02.2009 14:05
Как добавить нужную строку в memo Volkogriz Общие вопросы Delphi 5 02.12.2008 22:38