T :=0; Sname := Dfile.Strings[33]; Bname :=Sname; Sname := SearchAndReplace(Sname, '/', '\'); LenFname := Length(Sname); for i := 1 to LenFname do begin nPos := Pos('\', Sname[i]);
if nPos > 0 then begin // Length(OpenDialog1.FileName) - nPos Length(OpenDialog1.FileName) T := T + nPos;
if T > 2 then
begin swebF := Copy(Bname, i, LenFname - 1); Break; end ; Delete(Sname, i, LenFname); Insert('/', Sname, i); nPos :=0; end; end;
function Filterdz(Url: string): string; var URI: TIdURI; LS: TStringList; begin LS := TStringList.Create; URI := TIdURI.Create(Url); try LS.Add(URI.Path + URI.Document); LS.Add(URI.Path); Result := LS.Text; finally LS.Free; URI.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); var LS, LS2: TStringList; i: Integer; Data, Result: string; begin LS := TStringList.Create; LS2 := TStringList.Create; LS.Text := Data; begin for i := 0 to LS.Count - 1 do begin LS2.Add(Filterdz(LS[i])); end; Result := LS2.Text; end; end;
15-06-2011, 01:43 PM (آخر تعديل لهذه المشاركة: 15-06-2011, 02:58 PM بواسطة kachwahed.)
تستطيع التقطيع والجمع بواسطة
الدالتين : Explode, implode
كود :
function Explode(ch: string; sep: string = ';'): TStringList;
var
p: integer;
begin
p := pos(sep, ch);
explode := TStringList.Create;
while p > 0 do begin
explode.Add(copy(ch, 1, p - 1));
if p <= length(ch) then ch := copy(ch, p + length(sep), length(ch));
p := pos(sep, ch);
end;
if length(ch) > 0 then explode.Add(ch);
end;
//------------------------------
function Implode(lst: TStringList; sep: string = ';'): string;
var
i: integer;
s: string;
begin
i := 0;
while i < lst.Count - 1 do begin
s := s + lst[i] + sep;
i := i + 1;
end;
if i < lst.Count then s := s + lst[i]; //Ne mets pas de séparateur sur le dernier élément
result := s;
end;
الدالتين : Explode, implode شهيرتين في PHP
هناك دوما البديل في دلفي
في الرابط السابق أمثلة عن استخدام DelimitedText CommaText Delimiter QuoteChar مع StringReplace أيضا