Показать сообщение отдельно
  #1  
Старый 06.05.2010, 15:47
azalivin azalivin вне форума
Прохожий
 
Регистрация: 06.05.2010
Сообщения: 1
Репутация: 10
По умолчанию Помогите пожалуйста с решением задачи

Обнаружить и исправить в тексте дважды записанное слово,записанный текст 80-символьными строками
;переформатировать строки в пределах абзаца

Надо переделать данную программу под задание, как я понимаю сходиться многое
Код:
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;
Admin: Пользуемся тегами!
Ответить с цитированием