Zamiana stringa (StringReplace)

Odpowiedz Nowy wątek
2006-10-01 11:55
Ad
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.


Pozostało 580 znaków

2006-10-01 12:23
0

no to dodaj spacje.

Pozostało 580 znaków

2006-10-01 12:31
Ad
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.


Pozostało 580 znaków

2006-10-01 12:37
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]

Pozostało 580 znaków

2006-10-01 12:41
Ad
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.


Pozostało 580 znaków

2006-10-01 13:50
0

ech...
no to dajesz warunek :-P

Pozostało 580 znaków

2006-10-01 14:08
Ad
0

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


Pozostało 580 znaków

2006-10-01 14:54
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()

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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