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

Вниз

Как сравнить 2 предложения (разные разделители)?   Найти похожие ветки 

 
New_ser   (2008-09-09 08:03) [0]

Есть два предложения. Слова в них одинаковые, одинаковый порядок расположения слов. Разное - регистр (ну это можно, в принципе, быстро исправить), и, самое главное - разделитель между словами: пробел, два пробела, встречаются скрытые символы... Вот как можно организовать сравнение 2-х предложений по словам?


 
MBo ©   (2008-09-09 08:06) [1]

заменить все разделители или слитные их комбинации на один разделитель, потом сравнивать. Можно и не заменять, а просто пропускать разделители при обработке строки


 
brother ©   (2008-09-09 08:14) [2]

1. пробегам по всем строкам и убираем все не нужные символы (в том числе и не печатные)
2. приводим в нужный регистр
3. сравниваем
примеров всех пунктов в инете навалом...


 
New_ser   (2008-09-09 08:43) [3]

> убираем все не нужные символы (в том числе и не печатные)

Спасибо! Идея мне понравилась! ) Буду с ней работать!
И, всё-же, как можно "выдернуть" слово из предложения, чтобы проверить его наличие во втором? Есть вероятность, что потом придётся использовать этот механизм на целых абзацах, и там уже порядок не гарантирован! Особо буду благодарен за пример (именно выборки слова из предложения)!


 
brother ©   (2008-09-09 08:45) [4]

pos поможет? спраку почитай, авось сгодится)


 
New_ser   (2008-09-09 09:07) [5]

> brother ©   (09.09.08 08:45) [4]

"pos поможет", когда удастся найти механизм "выдёргивания" слова из текста. Вот тогда с помощь pos можно будет проверить его наличие во втором! )


 
clickmaker ©   (2008-09-09 09:12) [6]

> механизм "выдёргивания"

разделители слов известны? пробелы, знаки пунктуации. Вот и выдергивай


 
brother ©   (2008-09-09 09:14) [7]

> И, всё-же, как можно "выдернуть" слово из предложения, чтобы
> проверить его наличие во втором?

бежим по предложению (читаем посимвольно в буфер (buf:=buf+фраза[текущая позиция]))... как только дошли до пробела, содержимое буфера содержит слово 8), делаем что надо со словом, очищаем буфер итд итп ))) как то так...


 
brother ©   (2008-09-09 09:15) [8]

> знаки пунктуации. Вот и выдергивай

это тоже учитываем...


 
New_ser   (2008-09-09 09:26) [9]

Дело в том, что я что-то слышал о "поисках по маске"! Пробегаться по каждому символу - это-ж сколько времени займёт!?


 
brother ©   (2008-09-09 09:29) [10]

> Пробегаться по каждому символу - это-ж сколько времени займёт!
> ?

совсем маленько)

> поисках по маске

ну бывает)
зы у тебя с каждым постом как в страшной сказке- чем дальше, тем страшнее)


 
clickmaker ©   (2008-09-09 09:38) [11]

> Дело в том, что я что-то слышал о "поисках по маске"!

а как ты думаешь поиск по маске работает?
тоже посимвольно
Посмотри MatchesMask в исходниках Дельфи ради интереса


 
Ega23 ©   (2008-09-09 09:47) [12]


> Дело в том, что я что-то слышал о "поисках по маске"! Пробегаться
> по каждому символу - это-ж сколько времени займёт!?


Если написать по-умному, то в один проход всё разобрать можно.


 
MBo ©   (2008-09-09 10:00) [13]


i := 1;
j := 1;
while (i <= Length(s1)) and (j <= Length(s2)) do begin
 if not (s1[i] in Letters) then
   Inc(i)
 else  
   if not (s2[j] in Letters) then
      Inc(j)
    else  
      if s1[i] <> s2[j] then begin
        строки не совпадают
        Break        
      end
end;



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

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

Наверх





Память: 0.47 MB
Время: 0.005 c
2-1220951379
webpauk
2008-09-09 13:09
2008.10.19
Проблемы с иконкой


15-1220089316
Kostafey
2008-08-30 13:41
2008.10.19
С днем рождения ! 30 августа


3-1208198634
Maxim
2008-04-14 22:43
2008.10.19
ADO в WebSnap


15-1219908226
Виктор008
2008-08-28 11:23
2008.10.19
Как запустить BDS 2005 только в режиме Delphi for Win32


2-1220944122
K12
2008-09-09 11:08
2008.10.19
Запрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский