如何将一行文本(例如Hello there*3
)拆分为数组?需要将*
之前的所有内容添加到第一个元素,并且需要将*
之后的所有内容添加到第二个元素。我确信这是可能的。我需要稍后再回忆一下,第一和第二项必须彼此相关
我正在使用Delphi 7。
答案 0 :(得分:4)
type
TStringPair = array[0..1] of string;
function SplitStrAtAmpersand(const Str: string): TStringPair;
var
p: integer;
begin
p := Pos('&', Str);
if p = 0 then
p := MaxInt - 1;
result[0] := Copy(Str, 1, p - 1);
result[1] := Copy(Str, p + 1);
end;
或者,如果你没有魔法,
function SplitStrAtAmpersand(const Str: string): TStringPair;
var
p: integer;
begin
p := Pos('&', Str);
if p > 0 then
begin
result[0] := Copy(Str, 1, p - 1);
result[1] := Copy(Str, p + 1);
end
else
begin
result[0] := Str;
result[1] := '';
end;
end;
如果你因某些奇怪而有些奇怪的原因需要一个程序而不是一个函数,那就
procedure SplitStrAtAmpersand(const Str: string; out StringPair: TStringPair);
var
p: integer;
begin
p := Pos('&', Str);
if p > 0 then
begin
StringPair[0] := Copy(Str, 1, p - 1);
StringPair[1] := Copy(Str, p + 1);
end
else
begin
StringPair[0] := Str;
StringPair[1] := '';
end;
end;