![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск образца текста в StringList
Мимо прогодивший © (2014-01-14 18:17:00)Так как "Начинающим" не работает, пишу вопрос сюда.
Есть программа где текст хранится в StringList. Нужно по всему его тексту выполнить поиск подстроки, подстрока не может начинаться в Strings[I], а заканчиваться на Strings[I + 1]. Поэтому код примерно такой:
S: String;
..........................................................
for i := 0 to StringList.Count - 1 do begin
S := StringList.Strings[i];
.......................................
поиск образца текста в "S"
end;
Каждый раз нужно делать S := StringList.Strings[i] ?
antonn (2014-01-14 20:58:00) [1]
> Юрий Зотов © (14.01.14 18:35) [3]
>
> > antonn © (14.01.14 18:31) [1]
> >
> > if(pos('popa',StringList.Strings[i]))
> > если в лоб
>
> Это не в лоб.
я к тому, что неужели оптимизатор конструкцию автора к моему виду не видет? а если приведет - я лишь синтаксисом написал то что у него и есть
Германн (2014-01-14 19:59:00) [2]
> но как то не удобно параметром постоянно указывать StringList.Strings[i]
Неудобно параметром указывать StringList.Text. А StringList.Strings это просто массив указателей.
Мимо прогодивший (2014-01-14 19:01:00) [3]А, во, возможна следующая конструкция:
string(StringList.Strings[i])[j];
Мимо прогодивший (2014-01-14 18:55:00) [4]
> А если искомая подстрока не содержит CR/LF, то можно искать
> и без цикла, в StringList.Text
Содержит, текст грузится с текстовых файлов
Мимо прогодивший (2014-01-14 18:54:00) [5]Я за то что нельзя:
for i := 0 to StringList.Count - 1 do
for j := 1 to Length(StringList.Strings[i]) do begin
StringList.Strings[i] [j]
end;
Copy(SL.Strings[i],2,5)
> Можно и не делать, а искать прямо в StringList.Strings[i].
Подскажите плиз.
> if(pos('popa',StringList.Strings[i]))
так конечно можно, но как то не удобно параметром постоянно указывать StringList.Strings[i]
Юрий Зотов (2014-01-14 18:35:00) [6]> antonn © (14.01.14 18:31) [1]
>
> if(pos('popa',StringList.Strings[i]))
> если в лоб
Это не в лоб.
Юрий Зотов (2014-01-14 18:34:00) [7]Можно и не делать, а искать прямо в StringList.Strings[i].
А если искомая подстрока не содержит CR/LF, то можно искать и без цикла, в StringList.Text
antonn (2014-01-14 18:31:00) [8]if(pos('popa',StringList.Strings[i]))
если в лоб