Zamiana stringa (StringReplace)

0

Czy jest jakiś sposób, żeby funkcja StringReplace (albo inna) zamieniała tylko całe wyrazy. A może ktoś wie jak to inaczej zrobić? Chodzi mi o to że jak wpiszę:
beton ton a chcę zamienić "ton" na "kod" to wynik był beton kod a nie bekod kod, jakby to zrobiła normalnie funkcja StringReplace.

0

no to dodaj spacje.

0

Ok, ale jakbym zamieniał " ton " to ostatnie by się nie zamieniło (bo nie ma spacji tylko koniec stringa. A poza tym '+,./[]{}-=\ i inne znaki też oddzielają słowa.

0

no to napisz sobie (sam :-P ) procedurke ktora wyszuka w stringu fragment "kod"
a nastepnie sprawdzi, czy przed lub za sa jakies inne znaki.
w zaleznosci od tego czy bedzie to cale slowo czy nie, podmieni je.

pozdro i powodzenia [browar]

0

I co mam sprawdzać czy:

(string[Pos('tekst',string)-1] nie jest literą) and (string[Pos('tekst',string)+Length('tekst')+1] nie jest literą)

A co jeśli będzie to ostatni znak? Albo Pos=1? Wtedy będzie błąd.

0

ech...
no to dajesz warunek :-P

0

OK. Myślałem, że może ktoś zrobił kiedyś gotowca...

0

Innym rozwiązaniem (o wiele łatwiejszym) byłby wyrażenia regularne (jest jakiś komponent do Delphi), ale w tym przypadku jest to rozwiązanie wysoce nieoptymalne i lepiej jest pobawić się Pos()

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0