![]() |
|
#1
|
|||
|
|||
![]() Задан текст имеющий в себе пробелы, запятые и другие знаки препинания (например const r = [ '',',',';','!','?']) нужно разработать программу, которая удаляет из текста все слова повторения вхождения слов (т.е. исключить слова повторяющихся)
|
#2
|
|||
|
|||
![]() Че-та не понял. Тебе нужно удалить повторяющиеся слова чтоли?
|
#3
|
||||
|
||||
![]() Разбиваешь предложения на слова, загоняешь в массив и с ним работаешь
Код:
//Разбить строку на слова Procedure DevideStrOnWords(Str : String); var CurPos, LengthStr : byte; Ch : WideString; ListWords := TStringList; begin ListWords := TStringList.Create; //Преобразование всех разделительных знаков в пробелы Str:=StringReplace(Str,'.',' ',[rfReplaceAll]); Str:=StringReplace(Str,',',' ',[rfReplaceAll]); Str:=StringReplace(Str,'!',' ',[rfReplaceAll]); Str:=StringReplace(Str,'?',' ',[rfReplaceAll]); //Удаление лишних пробелов CurPos := 0; LengthStr := Length(Str); repeat inc(CurPos); Ch := Copy(Str, CurPos ,1); if Ch = ' ' then begin while Copy(Str, CurPos+1, 1) = ' ' do begin Str := Copy(Str, 1, CurPos)+Copy(Str, CurPos+2, LengthStr-CurPos+1); Dec(LengthStr); end; end; until CurPos=Length(Str); //Форматировние пробелов в символ конец строки Str:=StringReplace(Str,' ',#13#10,[rfReplaceAll]); //Загоняешь строку в StringList, а это массив слов ListWords.text := Str; end; В начале был Бит, потом Байт и только потом появилось Слово... |
#4
|
||||
|
||||
![]() Вместо вот этого:
Код:
//Преобразование всех разделительных знаков в пробелы Str:=StringReplace(Str,'.',' ',[rfReplaceAll]); Str:=StringReplace(Str,',',' ',[rfReplaceAll]); Str:=StringReplace(Str,'!',' ',[rfReplaceAll]); Str:=StringReplace(Str,'?',' ',[rfReplaceAll]); Код:
Str:=WrapText(Str,#32,['.', ',', '!', '?'],1); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
![]() Спасибо за вариант!!!
Но немного не то, эта функция не уберет из текста символы . , ! ? и т.д. Она просто разобьет строку на подстроки...фактически добавив в конец подстрок #32. http://www.delphisources.ru/pages/fa...pText.php.html Поэтому я использовал StringReplace http://www.delphisources.ru/pages/fa...place.php.html В начале был Бит, потом Байт и только потом появилось Слово... |
#6
|
||||
|
||||
![]() И верно, я видимо погорячился.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |