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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2017, 18:53   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
Вопрос Получить остаток строки после слова

Добрый вечер всем!
Прошу подсказать по такому вопросу.
Есть текст в переменной типа TStringList. Он в виде списка строк.
Есть слово, которое я ищу в это тексте. Слово 100% не повторяется.
Мне нужно, после того как Pos(...) > 0 получить остаток текста в строке, в которой было найдено искомое слово до конца строки и занести его в переменную типа string.
Прошу помочь советами, направлениями, может кто делал такое раньше.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 12.01.2017, 19:29   #2
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Код:
var i, index:integer;
    s:TStringlist;
....
  for i:=0 to s.Count-1 do
    begin
      index:= pos(s[i]);
      if index >0 then begin
        result:=Delete(s[i], 1, index);
        Break;
      end;
    end;

Последний раз редактировалось Replicant; 12.01.2017 в 19:35.
Replicant вне форума Ответить с цитированием
Старый 12.01.2017, 19:53   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
  s:=''; s1:='123';
  i:=Pos(s1,Memo1.Text);
  if i>0 then begin
    j:=PosEx(#13,Memo1.Text,i);
    if j>0 then s:=Copy(Memo1.Text,i+Length(s1),j-i-Length(s1))
           else s:=Copy(Memo1.Text,i+Length(s1),Length(Memo1.Text));
  end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.01.2017, 00:59   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Код Replicant представляется мне более лучшим с т.з. быстродействия, чем код Аватар. Т.к. в последнем идет работа со свойством TMemo.Text.
northener вне форума Ответить с цитированием
Старый 13.01.2017, 09:13   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не-а. Даже так быстрей, а если еще Memo1.Text прочитать только один раз, присвоив его в строку, и обращаться потом к той строке, то будет на порядок быстрей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.01.2017, 09:38   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Код Replicant представляется мне более лучшим с т.з. быстродействия
Казалось что выполнить задание за время (1) быстрее чем за (n).
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 13.01.2017, 09:59   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не совсем так, обращение к Text тоже цикл по строкам в генокоде. Там Delete очень медленная
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в ряду символов определить слова, которые могут быть получены разворотом другого слова этой строки (Паскаль) Mr. J. Паскаль, Turbo Pascal, PascalABC.NET 9 06.04.2014 08:15
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Даны два слова. Получить третье слово из неповторяющихся символов, входящих как в первое, так и во второе слова. dlinkz Паскаль, Turbo Pascal, PascalABC.NET 8 01.02.2012 11:09
Чтение символов после нахождения слова Reanimator13 Общие вопросы .NET 5 30.07.2010 17:31
Получить остаток от деления Cpluser Общие вопросы C/C++ 18 26.02.2009 18:05