String 如何复制ANSI字符串数组,以便获得另一个ANSI字符串数组
我想知道是否有一个函数可以分割一个AnsiString的String 如何复制ANSI字符串数组,以便获得另一个ANSI字符串数组,string,pascal,freepascal,String,Pascal,Freepascal,我想知道是否有一个函数可以分割一个AnsiString的数组并返回AnsiString的数组。Copy函数返回字符串数组,所以我碰巧在网上搜索了另一个解决方案,但什么也找不到 我们有解决这个问题的办法吗 我使用的是免费的Pascal。复制将把任何数组X复制到另一个数组X。如果X是AnsiString,它将复制(或切片)到数组AnsiString 下面的验证项目显示结果是一个AnsiString的数组,因为它处理每个单独的“字符”。如果结果是一个UnicodeString,您将只看到第一个字符(例
数组
并返回AnsiString的数组
。Copy
函数返回字符串数组
,所以我碰巧在网上搜索了另一个解决方案,但什么也找不到
我们有解决这个问题的办法吗
我使用的是免费的Pascal。复制将把任何
数组X
复制到另一个数组X。
如果X
是AnsiString
,它将复制(或切片)到数组AnsiString
下面的验证项目显示结果是一个AnsiString的数组,因为它处理每个单独的“字符”。如果结果是一个UnicodeString
,您将只看到第一个字符(例如'One'
将是单个“bytes”'O'#0'n'#0'e'#0#0
,因此循环将在'O'
之后停止)
所以没有必要做任何特别的事情。只需按原样使用Copy
Windows上的FPC 3.0.0。复制将把任何X数组
复制到另一个X数组。
如果X
是AnsiString
,它将复制(或切片)到AnsiString数组
下面的验证项目显示结果是一个AnsiString的数组,因为它处理每个单独的“字符”。如果结果是一个UnicodeString
,您将只看到第一个字符(例如'One'
将是单个“bytes”'O'#0'n'#0'e'#0#0
,因此循环将在'O'
之后停止)
所以没有必要做任何特别的事情。只需按原样使用Copy
Windows上的FPC 3.0.0。编写自己的函数很简单,不是吗?@DavidHeffernan这是一种方法。对不起,我不能完全理解你的问题:你想要什么Copy
做不到?我不确定FreePascal,但在Delphi中,Copy
只会复制(或切片,如果你使用正确的参数)一个X数组
到另一个X数组
。如果X
是AnsiString
,那么结果也是一个AnsiString
数组。编写自己的函数很简单,不是吗?@DavidHeffernan这是一种方法。对不起,我不能完全理解你的问题:你想要什么复制
不会做什么?我不确定FreePascal,但在Delphi中,复制
只会复制(或切片,如果使用正确的参数)将一个数组X
转换为另一个数组X
。如果X
是AnsiString
,则结果也是数组AnsiString
。
program Project1;
uses
SysUtils;
type
TAnsiStringArray = array of AnsiString;
procedure Main;
var
A, B: TAnsiStringArray;
I: Integer;
P: PAnsiChar;
begin
A := TAnsiStringArray.Create('Zero', 'One', 'Two', 'Three');
{ Plain Copy, nothing special: }
B := Copy(A, 1, 2); { Copies 'One' and 'Two' }
for I := Low(B) to High(B) do
begin
P := PAnsiChar(B[I]);
while P^ <> #0 do
begin
Write(P^, '-');
Inc(P);
end;
Writeln;
end;
end;
begin
Main;
Readln;
end.
O-n-e-
T-w-o-