Jaka jest funkcja w delphi do zamiany kawałka stringa na inny? Coś jak str_replace() w PHP.---------------------------
Delphi 6
Pozdrówka
Pozdrówka
Nie znam php, ale takiej funkcji w Delphi
chyba nie ma (przynajmniej o niej nie slyszalem).
Moze pomoze ci ta funkcja:
function Zamien(Lancuch, Plancuch1, Plancuch2:string):string;
var
Pozycja:Byte;
I,J:Byte;
begin
Pozycja:=Pos(Plancuch1, Lancuch);
if (Pozycja<>0) and (Length(Plancuch1)= Length(Plancuch2)) then
begin
J:=0;
for I:=Pozycja to Pozycja+Length(Plancuch2)-1 do
begin
Inc(J);
Lancuch[I]:=Plancuch2[J];
end;
Result:=Lancuch;
end else Result:='ERROR!';
end;
Parametry:
Lancuch-jest to string, ktorego czesc chcesz zmienic.
Plancuch1-czesc tego ktora chcesz zmienic.
Plancuch2-string na ktory chcesz zmienic Plancuch1 w Lancuch :-)
Najpierw nastepuje sprawdzenie czy Plancuch1 istniej w Lancuch
i czy dlugosc Plancuch1=Plancuch2. Jesli te warunki sa spelnione
to nastepuje zamiana Plancuch1 na Plancuch2. Jesli nie to
funkcja zwraca lancuch 'ERROR!'. Funkcja dzial na lacuchach
do 255 znakow (wynika to z ograniczen fynkcji Pos()).
Przetestuj ten kod dokladnie bo ja niemialem czasu tego
zrobic. Z twojego opisu wydaje mi sie
ze o takie cos ci chodzilo. Mam nadzieje ze pomoglem.
--Pozdrawiam
Ojciec (Delphi/C++)
Pos nie jest ograniczone do 255.
uses StrUtils;
function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
przeszukuje lancuch Atext i wymienia wszystkie afromtext na atotext i zwraca wynik.
function AnsiReplaceText(const AText, AFromText, AToText: string): string;
jw, bez zwracania uwagi na wielkosc liter
a w SysUtils
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
jw, nazwy zmiennych i stalych chyba wszystko tlumacza.
UPRASZA SIĘ O CZYTANIE HELPU :-) :-) --Pawel
Delphi6
pq napisał:
fakt, to bylo jeszcze we wczesnym Turbo Pascalu
uses StrUtils;
Nie mam tej biblioteki (Delphi5) :-) W helpie tez nic o tym nie ma
--Pozdrawiam
Ojciec (Delphi/C++)
Ojciec napisał:
>fakt, to bylo jeszcze we wczesnym Turbo Pascalu
bo tam chyba nie bylo dlugich stringow, prawda?
>Nie mam tej biblioteki (Delphi5) :-) W helpie tez nic o tym nie ma
>
O! No to juz znam jedna roznice miedzy D5 a D6. Ale wg mojego helpu funkcja StringReplace jest w SysUtils. Masz ja?--Pawel
Delphi6
Tak StringReplace w SysUtils jest. Musze sie zaopatrzyc w D6 :-) --Pozdrawiam
Ojciec (Delphi/C++)