Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.07.2011, 08:54
DiXel DiXel вне форума
Прохожий
 
Регистрация: 18.07.2011
Сообщения: 3
Репутация: 10
По умолчанию Ключевые слова в фразе

Здрасте.
мб, у кого есть наработки алгоритма который бы обрабатывал стринг и с помощью функции мог бы вернуть true если в стринге содержится указанное ключевое слово.
ну, типа, includesword(fraza, word : string) : boolean;
P.S.: Или хотябы подскажите как стринг разделить на слова и записать эти слова в стринглист. и чтобы знаки препинания записывались как отдельное слово. т.е. вот так:
это фраза, с запятой : это исходная фраза

это
фраза
,
с
запятой : это стринглист

Последний раз редактировалось DiXel, 18.07.2011 в 08:56.
Ответить с цитированием
  #2  
Старый 18.07.2011, 08:57
Аватар для Developer
Developer Developer вне форума
Прохожий
 
Регистрация: 01.07.2011
Адрес: Украина
Сообщения: 27
Версия Delphi: 7, 2009
Репутация: 75
По умолчанию

Код:
function  includesword(fraza, word : string) : boolean;
begin
  if pos(word,fraza)<>0 then result:=true else result:=false;
end;
Ответить с цитированием
  #3  
Старый 18.07.2011, 10:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

1.
Unit StrUtils
function AnsiContainsStr(const AText, ASubText: string): Boolean;
Description
AnsiContainsStr returns true if the string specified by ASubText appears as a substring of the string specified by AText. Comparison is performed case-sensitively.

AnsiContainsText - case-insensitive
AnsiContainsStr - case-sensitive

2.
Код:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
...
var
  s: String;
begin
  s:='это фраза, с запятой';
  s:=StringReplace(s, ',', #13#10',', [rfReplaceAll, rfIgnoreCase]);
  s:=StringReplace(s, ' ', #13#10, [rfReplaceAll, rfIgnoreCase]);
  Memo1.Text:=s;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 18.07.2011, 14:40
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Я когда-то занимался разработкой разбора строк методом маркеров для математических программ , есть процедура на паскале, но для конкретного применения надо переделывать, если такой метод подойдет, могу выложить.
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter