Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];

Вниз

Как разбить текст на строки?   Найти похожие ветки 

 
ekto ©   (2008-07-11 13:11) [0]

Есть текст: (х А х А х......)

 где:  х - любая последовательность слов
        А - искомая последовательность слов (хранятся в БД).

 Нужно разбить текст на строки вида: (х А х)
                                                    (А х)
                                                    ... ,
 т.е. находится нужная фраза и все последующие слова до следующей, формируется строка  и т.д.


 
Dennis I. Komarov ©   (2008-07-11 13:12) [1]

POS + F1 Спасет отца русской демократии...


 
ekto ©   (2008-07-11 13:19) [2]


> 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], окажется пропущенная фраза?


 
Ega23 ©   (2008-07-11 13:22) [3]


> POS + F1 Спасет отца русской демократии...

И + COPY


 
Dennis I. Komarov ©   (2008-07-11 13:23) [4]

> [2] ekto ©   (11.07.08 13:19)

Бред какой...
Ищи где надо разбить и вставляй #$13 #$10. Токма я не понял где результат хранить...


 
ekto ©   (2008-07-11 13:29) [5]


> Dennis I. Komarov ©   (11.07.08 13:23) [4]


 да, точно, протормозил. а где хранить - не важно


 
Dennis I. Komarov ©   (2008-07-11 13:30) [6]

> а где хранить - не важно

Очень даже важно, в виду упомянутой тобой БД...


 
ekto ©   (2008-07-11 13:41) [7]


> 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;


 
Поросенок Винни-Пух ©   (2008-07-11 13:41) [8]

Ищи где надо разбить и вставляй #$13 #$10.

Это неправильно.
Так на строки не разбить


 
Dennis I. Komarov ©   (2008-07-11 13:50) [9]

> [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)


Это смотря где и чего надо автору. ИМХО ему достаточно...


 
oldman ©   (2008-07-11 13:52) [10]

Кстати, а зачем искомая последовательнось хранится в БД?
Судя по задаче, она единственная. Или нет?
Если нет, что на выходе? N результатов разбивки текста?

Ничего не понимаю ©


 
ekto ©   (2008-07-11 13:53) [11]


> oldman ©   (11.07.08 13:52) [10]


> Кстати, а зачем искомая последовательнось хранится в БД?
>
> Судя по задаче, она единственная. Или нет?

пока порядка тысячи, потом будет больше.


> Если нет, что на выходе? N результатов разбивки текста?

дальше обрабатывать


 
han_malign ©   (2008-07-11 13:59) [12]


> Поросенок Винни-Пух ©   (11.07.08 13:41) [8]

- "Это какие-то неправильыне пчелы."©...
#$13 - Carriage Return - Возврат Каретки
#$10 - Line Feed - Перевод Строки


 
Поросенок Винни-Пух ©   (2008-07-11 14:00) [13]

Ой , а я то и не в кусре. И шо?
Они как-то "разбивают" строку?


 
ekto ©   (2008-07-11 14:02) [14]


> Поросенок Винни-Пух ©   (11.07.08 14:00) [13]


> Они как-то "разбивают" строку?

на мелкие кусочки)


 
Поросенок Винни-Пух ©   (2008-07-11 14:03) [15]

#$10 - Line Feed - Перевод Строки

Вот если бы Разбиватель строки, тогда да. Согласен.


 
Dennis I. Komarov ©   (2008-07-11 14:07) [16]


> [14] ekto ©   (11.07.08 14:02)

#$13 можешь не ставить... Кусочки будут еще мельче :)


 
Anatoly Podgoretsky ©   (2008-07-11 14:39) [17]

> Поросенок Винни-Пух  (11.07.2008 14:00:13)  [13]

В пух и прах. Вопрос только в том, что для автора строка и что он будет делать в следующий раз.


 
ekto ©   (2008-07-11 14:40) [18]


> Anatoly Podgoretsky ©   (11.07.08 14:39) [17]


> что он будет делать в следующий раз.

т.е.?


 
Anatoly Podgoretsky ©   (2008-07-11 15:08) [19]

> ekto  (11.07.2008 14:40:18)  [18]

А что разфе эта операция будет только один раз запускаться?


 
Dennis I. Komarov ©   (2008-07-11 15:15) [20]

> [19] Anatoly Podgoretsky ©   (11.07.08 15:08)

Он все равно никому ничего не скажет. Это секрет...


 
ekto ©   (2008-07-11 15:30) [21]


> Anatoly Podgoretsky ©   (11.07.08 15:08) [19]

нет, не единожды.


 
Anatoly Podgoretsky ©   (2008-07-11 15:32) [22]

> Dennis I. Komarov  (11.07.2008 15:15:20)  [20]

Сообственно я особо на это и не расчитываю, но буду удивлен, если он все таки все расскажет.


 
ekto ©   (2008-07-11 15:45) [23]


> Anatoly Podgoretsky ©   (11.07.08 15:32) [22]

я расскажу, честно-честно. Но, только после того, как Вы мне объясните суть вопроса. Ну не понял я, что Вас тут интересует: что он будет делать вследующий раз.! С чем делать? Конкретно непонятно, чем отличается первый раз от следующего?

и еще... сбился я с бестолку совсем. С самого начала. Pos мне не подходит. Мне нужно полное совпадение слов/фраз.

str :=  авав сб ро лоыоыв сблг сб ропро длж;
substr := "сб";
...
Result := "авав сб ро лоыоыв сблг " + #13#10 + "сб про длж";

Как сделать, проверять каждый раз, стоят ли на концах найденной подстроки пробелы?


 
Поросенок Винни-Пух ©   (2008-07-11 15:52) [24]

регулар експешшионз


 
ekto ©   (2008-07-11 15:53) [25]


> Поросенок Винни-Пух ©   (11.07.08 15:52) [24]

весьма и весьма сумневаюсь, что тут они будут кстати. Шаблоны зае... писать. Много их. И могут добавляться в процессе пользования прогой.


 
Dennis I. Komarov ©   (2008-07-11 16:00) [26]

> [23] ekto ©   (11.07.08 15:45)

Нафига все это надо, и где чего куда подробно...


 
Поросенок Винни-Пух ©   (2008-07-11 16:01) [27]

И могут добавляться в процессе пользования прогой.

Вот как раз в этом RE и удобны.
Так как без них ты модифицируешь алгоритм программы, а с ними только сами выражения, лежащие в файле


 
Поросенок Винни-Пух ©   (2008-07-11 16:03) [28]

Нравятся мне такие перцы.
Сначала ответь им про несколько возможных вариантов решения, потом поуговаривай, потом кашей накорми и еще спать положи.


 
Поросенок Винни-Пух ©   (2008-07-11 16:06) [29]

Как сделать, проверять каждый раз, стоят ли на концах найденной подстроки пробелы?

Проверяй через раз. Чтобы не устать.


 
ekto ©   (2008-07-11 16:11) [30]


> Поросенок Винни-Пух ©   (11.07.08 16:03) [28]

А как прикажешь спрашивать? Не, ну могу, канеш, сказать что мне надо, а вы мне все напишите(если не пошлете), но чет так не очень хочется. А ваще да... мозгое... я еще тот... :)


> Так как без них ты модифицируешь алгоритм программы,

нафик мне его модифицировать? Все лежит в БД. Беру строку и смарю, та иль нет. Ну проще мне так. Точнее, делаю так, как могу.


 
Поросенок Винни-Пух ©   (2008-07-11 16:12) [31]

нафик мне его модифицировать?

Много их. И могут добавляться в процессе пользования прогой.


 
ekto ©   (2008-07-11 16:13) [32]


> Поросенок Винни-Пух ©   (11.07.08 16:12) [31]


> Все лежит в БД.


 
Поросенок Винни-Пух ©   (2008-07-11 16:14) [33]

если алгоритм поиска границ не меняется, то с какого перепугу вдруг потребуется добавлять новые регулярные выражения?!


 
Поросенок Винни-Пух ©   (2008-07-11 16:15) [34]

> Все лежит в БД.

Да хоть в морге на третьей полке.


 
ekto ©   (2008-07-11 16:15) [35]

офтоп. я вот думаю, это только у меня рождаются такие мракобесные алгоритмы или нет? А то взять, да и приобрести метелочку?


 
Поросенок Винни-Пух ©   (2008-07-11 16:17) [36]

> Все лежит в БД.

Ты со строкой работаешь. А где она до этого лежала или стояла - как-то фиолетово.

Или в седьмом классе ты покупал чернила для седьмого класса?


 
b z   (2008-07-11 16:20) [37]


> А то взять, да и приобрести метелочку?
Это выход.


 
Dennis I. Komarov ©   (2008-07-11 16:23) [38]

> [35] ekto ©   (11.07.08 16:15)

Ты кетмара где то встретил? :)


 
ekto ©   (2008-07-11 16:26) [39]


> Поросенок Винни-Пух ©   (11.07.08 16:17) [36]

так, если я правильно понял. Делается это сл. обр.: берется строка, делается для нее шаблон поиска и т.д. Так?


 
ekto ©   (2008-07-11 16:27) [40]


> Dennis I. Komarov ©   (11.07.08 16:23) [38]

О, с удовольствием бы, но увы, подозреваю, он зело занят созданием теории неомизантропии.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.046 c
2-1215801511
Чайник
2008-07-11 22:38
2008.08.17
Редактирование записи в базе


9-1173617382
Аццкий_рыцарь
2007-03-11 15:49
2008.08.17
Проблема со столкновением


2-1216112761
Newss
2008-07-15 13:06
2008.08.17
Создание таблицы в word


15-1214651627
@!!ex
2008-06-28 15:13
2008.08.17
Plugin для браузера сворачивающий в трей


2-1216075012
DJ_UZer
2008-07-15 02:36
2008.08.17
кодировки, определение, открытие и преобразование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский