![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте, помогите написать функцию замены слов в строке на другие слова, напрмер, дана строка 'one two one three oneone' надо заменить one на zero. Должно получиться: 'zero two zero three oneone'
|
#2
|
||||
|
||||
![]() Можно разбить строку на слова и заменять слова поотдельности, например так:
Код:
function ReplaceStr(S, Srch, Replace: string; Delim: Char; IgnoreCase: boolean): string; var i, l: integer; tmp: string; ReplaceFlags: TReplaceFlags; begin Result:= ''; l:= Length(S); if l < 1 then exit; tmp:= ''; if IgnoreCase then ReplaceFlags:= [rfIgnoreCase] else ReplaceFlags:= []; for i:= 1 to l do begin tmp:= tmp + s[i]; if (s[i] = Delim) or (i = l) then begin if Trim(tmp) = Trim(Srch + Delim) then tmp:= StringReplace(tmp, Srch, Replace, ReplaceFlags); Result:= Result + tmp; tmp:= ''; end; end; end; procedure TForm1.Button1Click(Sender: TObject); const x1 = 'one two one three oneone'; x2 = 'one two one three oneone one'; x3 = 'one,two,one,three,oneone'; x4 = 'one, two, one, three, oneone'; var s: string; begin s:= ReplaceStr(x1, 'one', 'zero', ' ', false); s:= s + #13#10 + ReplaceStr(x2, 'one', 'zero', ' ', false); s:= s + #13#10 + ReplaceStr(x3, 'one', 'zero', ',', false); s:= s + #13#10 + ReplaceStr(x4, 'one', 'zero', ',', false); ShowMessage(s); end; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#3
|
||||
|
||||
![]() StringReplace
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
||||
|
||||
![]() Цитата:
StringReplace заменит строку "one two one three oneone" на "zero two zero three zerozero", а нужно на "zero two zero three oneone". Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#5
|
||||
|
||||
![]() Код:
StringReplace('one two one three oneone','one ','zero ',[rfReplaceAll]) ![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
||||
|
||||
![]() Цитата:
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |