Bár nem hinném, hogy valaki itt még paszkállal mérgezné magát, de e:unit StrArrFunc;
{$mode objfpc}{$H+}
interface
type
DynStrLst = Array of String;
PDynStrLst = ^DynStrLst;
Procedure SplitString(S: String; delim: Char; dest: PDynStrLst);
Function GlueArray(src: PDynStrLst; delim: Char): String;
Function ArrayPosition(data: PDynStrLst; search: String): Longint;
implementation
Procedure SplitString(S: String; delim: Char; dest: PDynStrLst);
var
count, i, l: Longint;
sub: String;
Begin
SetLength(dest^, 0);
count := 0;
sub := '';
l := Length(S);
For i := 1 To l Do
Begin
If (S[i] = delim) Then
Begin
count := count + 1;
SetLength(dest^, count);
dest^[count - 1] := sub;
sub := '';
end
Else
Begin
sub := sub + S[i];
end;
end;
SetLength(dest^, count + 1);
dest^[count] := sub;
end;
Function GlueArray(src: PDynStrLst; delim: Char): String;
var i, l: Longint;
Begin
GlueArray := '';
l := Length(src^) - 2;
If (l > -2) Then
Begin
For i := 0 To l Do
Begin
GlueArray := GlueArray + src^[i] + delim;
end;
GlueArray := GlueArray + src^[l + 1];
end;
end;
Function ArrayPosition(data: PDynStrLst; search: String): Longint;
var i, l: Longint;
Begin
l := Length(data^) - 1;
ArrayPosition := - 1;
For i := 0 To l Do
Begin
If (data^[i] = search) Then
Begin
ArrayPosition := i;
Exit;
end;
end;
end;
end.
A PHP-s explode, implode és array_search megvalósítása. Elméletileg minden Pascal származékban mennie kéne. Felül a $mode fordítási direktíva a FreePascalnak szól, amelyik Pascal nem ismeri, az úgyis kommentnek veszi, lévén {} karakterek közt van. |