| Pos(substr, srcstr):Integer |
function WideStrPos(const substr,src:WideString;const start:Integer=1):Integer;
var
s : WideString;
p : Integer;
begin
if start>1 then
begin
s := WideMidStr(src, start);
p := Pos(substr, s);
if p>0 then
p := p + start-1;
end
else
p := Pos(substr, src);
Result := p;
end; |
| LeftStr |
| MidStr |
| RightStr |
function WideMidStr(const src:WideString; const start:Integer; len:Integer=-1):WideString;
var
l : Integer;
begin
if len=-1 then
l := Length(src)-start+1
else
l := len;
result := MidStr(src, start, l);
end; |
function WideStrSplit(const src, mid:WideString;const max:Integer=-1):TTntStrings;
var
s, tmp : WideString;
num : Integer;
p : Integer;
begin
Result := TTntStringList.Create;
s := src;
num := 0;
while ((num<max-1) or (max=-1)) and (Length(s)>0) do
begin
p := Pos(mid, s);
if p = 0 then
break;
tmp := LeftStr(s, p-1);
Result.Add(tmp);
num := num + 1;
s := WideMidStr(s, p + Length(mid) );
end;
Result.Add(s);
end; |