![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как разбить текст на строки?
ekto © (2008-07-11 13:11:00)Есть текст: (х А х А х......)
где: х - любая последовательность слов
А - искомая последовательность слов (хранятся в БД).
Нужно разбить текст на строки вида: (х А х)
(А х)
... ,
т.е. находится нужная фраза и все последующие слова до следующей, формируется строка и т.д.
ekto (2008-07-11 14:02:00) [61]
> Поросенок Винни-Пух © (11.07.08 14:00) [13]
> Они как-то "разбивают" строку?
на мелкие кусочки)
Поросенок Винни-Пух (2008-07-11 14:00:00) [62]Ой , а я то и не в кусре. И шо?
Они как-то "разбивают" строку?
han_malign (2008-07-11 13:59:00) [63]
> Поросенок Винни-Пух © (11.07.08 13:41) [8]
- "Это какие-то неправильыне пчелы."©...
#$13 - Carriage Return - Возврат Каретки
#$10 - LineFeed - Перевод Строки
ekto (2008-07-11 13:53:00) [64]
> oldman © (11.07.08 13:52) [10]
> Кстати, а зачем искомая последовательнось хранится в БД?
>
> Судя по задаче, она единственная. Или нет?
пока порядка тысячи, потом будет больше.
> Если нет, что на выходе? N результатов разбивки текста?
дальше обрабатывать
oldman (2008-07-11 13:52:00) [65]Кстати, а зачем искомая последовательнось хранится в БД?
Судя по задаче, она единственная. Или нет?
Если нет, что на выходе? N результатов разбивки текста?
Ничего не понимаю ©
Dennis I. Komarov (2008-07-11 13:50:00) [66]> [7] ekto © (11.07.08 13:41)
with TStringList.Create ... do begin
Text:=q.FieldByName('n').AsString;
... дальше сам
Free;
end;
> [8] Поросенок Винни-Пух © (11.07.08 13:41)
Это смотря где и чего надо автору. ИМХО ему достаточно...
Поросенок Винни-Пух (2008-07-11 13:41:00) [67]Ищи где надо разбить и вставляй #$13 #$10.
Это неправильно.
Так на строки не разбить
ekto (2008-07-11 13:41:00) [68]
> Dennis I. Komarov © (11.07.08 13:30) [6]
while not q.Eof do
begin
MyPos := Pos(q.FieldByName('n').AsString, tmpText);
if MyPos <> 0 then
begin
tmpText := Copy(tmpText, 1, MyPos - 1) + #13#10 + Copy(tmpText, MyPos, Length(tmpText) );
...
StringList.Text := tmpText;
end;
Dennis I. Komarov (2008-07-11 13:30:00) [69]> а где хранить - не важно
Очень даже важно, в виду упомянутой тобой БД...
ekto (2008-07-11 13:29:00) [70]
> Dennis I. Komarov © (11.07.08 13:23) [4]
да, точно, протормозил. а где хранить - не важно
Dennis I. Komarov (2008-07-11 13:23:00) [71]> [2] ekto © (11.07.08 13:19)
Бред какой...
Ищи где надо разбить и вставляй #$13 #$10. Токма я не понял где результат хранить...
Ega23 (2008-07-11 13:22:00) [72]
> POS + F1 Спасет отца русской демократии...
И + COPY
ekto (2008-07-11 13:19:00) [73]
> Dennis I. Komarov © (11.07.08 13:12) [1]
Забыл добавить "по-быстрее".
есть набор данных( в котором искомые фразы). Ну и как, по твоему должен выглядеть код?
while not q.Eof do
begin
MyPos := Pos(q.FieldByName('n').AsString, tmpText);
if MyPos <> 0 then
begin
StrArr[i] := ...
Inc(i)
...
end;
а, если в StrArr[i], окажется пропущенная фраза?
Dennis I. Komarov (2008-07-11 13:12:00) [74]POS + F1 Спасет отца русской демократии...