Replace

0

Jaka jest funkcja w delphi do zamiany kawałka stringa na inny? Coś jak str_replace() w PHP.---------------------------
Delphi 6

Pozdrówka

0

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&lt&gt0) 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++)

0
  1. 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

0

pq napisał:

  1. Pos nie jest ograniczone do 255.

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++)

0

Ojciec napisał:

&gtfakt, to bylo jeszcze we wczesnym Turbo Pascalu

bo tam chyba nie bylo dlugich stringow, prawda?

&gtNie mam tej biblioteki (Delphi5) :-) W helpie tez nic o tym nie ma
&gt

O! No to juz znam jedna roznice miedzy D5 a D6. Ale wg mojego helpu funkcja StringReplace jest w SysUtils. Masz ja?--Pawel

Delphi6

0

Tak StringReplace w SysUtils jest. Musze sie zaopatrzyc w D6 :-) --Pozdrawiam
Ojciec (Delphi/C++)

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