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.
Zamiana stringa (StringReplace)
- Rejestracja: dni
- Ostatnio: dni
0
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1668
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]
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
0
OK. Myślałem, że może ktoś zrobił kiedyś gotowca...
- Rejestracja: dni
- Ostatnio: dni
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()