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.
no to dodaj spacje.
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.
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]
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.
ech...
no to dajesz warunek :-P
OK. Myślałem, że może ktoś zrobił kiedyś gotowca...
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()