大家能否提供一个比较好的解决方案,我这里有是有一个,但是数据类型不一样不知怎样才行
type
userarray=array of string;
...
{$R *.dfm}
function tform1.split(s:string;dot:char):userarray;
var
str:userarray;
i,j:integer;
begin
i:=1;
j:=0;
setlength(str, 255);
while pos(dot, s) > 0 do
begin
str[j]:=copy(s,i,pos(dot,s)-i);
i:=pos(dot,s)+1;
s[i-1] := chr(ord(dot)+1);
j:=j+1;
end;
str[j]:=copy(s,i,strlen(pchar(s))-i+1);
end;procedure TForm1.Button1Click(Sender: TObject);
var
a:userarray;
begin
a:=split(memo1.text,',');//这里就没有办法编译过了,因为数据类型不同memo1.text是字符
型,而a是数组型,又没法转换
showmessage(a);//这里测试结果和传送的方式就更加的不行了,因为也要求是字符型,
end;end.
type
userarray=array of string;
...
{$R *.dfm}
function tform1.split(s:string;dot:char):userarray;
var
str:userarray;
i,j:integer;
begin
i:=1;
j:=0;
setlength(str, 255);
while pos(dot, s) > 0 do
begin
str[j]:=copy(s,i,pos(dot,s)-i);
i:=pos(dot,s)+1;
s[i-1] := chr(ord(dot)+1);
j:=j+1;
end;
str[j]:=copy(s,i,strlen(pchar(s))-i+1);
end;procedure TForm1.Button1Click(Sender: TObject);
var
a:userarray;
begin
a:=split(memo1.text,',');//这里就没有办法编译过了,因为数据类型不同memo1.text是字符
型,而a是数组型,又没法转换
showmessage(a);//这里测试结果和传送的方式就更加的不行了,因为也要求是字符型,
end;end.
解决方案 »
- 求解决“当前程序不支持从单一执行返回多个记录集”错误
- DLL 参数为BYTE数组时,在DELPHI怎么调用
- 在TreeView中显示D盘根目录下所有的dat文件名
- delphi提取ppt文件里的文本函数,VBA中能正确执行,但delphi中提示出错。
- try finally end;优化的具体应用?
- 关于一个类似于dbgird控件的问题
- 在ActiveForm中如何对添加的自定义事件进行写代码。
- 求助!急!
- delphi 调用 lable view 打印条码的!!!!急
- 求助?请高手指点
- 如何用Dabase组件连接设有密码的Access数据库?
- 请问如何在delphi中写程序备份access数据库?
1。打算返回局部变量
2。Function连Result都没有,所以连局部变量都没返回
3。测试结果的时候明明知道是数组还不用数组的方式使用这样用
type
userarray=array of string;
procedure split(s: string; dot:char; var res: userarray);
var
i,j:integer;
begin
i:=1;
j:=0;
setlength(res, 1);
while pos(dot, s) > 0 do
begin
res[j]:=copy(s,i,pos(dot,s)-i);
i:=pos(dot,s)+1;
s[i-1] := chr(ord(dot)+1);
j:=j+1;
setlength(res, Length(res) + 1);
end;
res[j]:=copy(s,i,strlen(pchar(s))-i+1);
end;procedure TForm1.main2Click(Sender: TObject);
var
a: userarray;
i: Integer;
begin
split(memo1.text, ',', a);//这里就没有办法编译过了,因为数据类型不同memo1.text是字符
// 型,而a是数组型,又没法转换
for I := Low(a) to High(a) do
begin
showmessage(a[i]);//这里测试结果和传送的方式就更加的不行了,因为也要求是字符型,
end;
end;
postren(小虫) ( ) 信誉:117 当字符串有一些特别字时,会乱了的.
Memo1.Lines.DelimitedText := Memo1.Text;
procedure TForm1.Button1Click(Sender: TObject);
var
str:userarray;
i:integer;
begin
i:=1;
setlength(str, 255);
str[i]:=split(edit1.Text,',');
for i:=0 to length(str) do//这样的作,就进入了死循环,我只想按顺序取出值,不知错在那
showmessage(str[i]);
next;
end;end.