方法返回一组数据如何编写?

mmnan 2012-02-22 12:06:34
大家好:
我在程序里写了一个方法,需要返回一组值,比如返回username、password和host三个值,都是string类型的。我是这样写的:

function getvalue(ss:string):pchar;
var
str:pchar;
begin
str[0]:=username;
result:=str;
end;


当然不行这样,求正确方法。
...全文
116 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmnan 2012-02-24
  • 打赏
  • 举报
回复
谢谢大家!
SVIP_ 2012-02-22
  • 打赏
  • 举报
回复
最简单的
function getvalue(var username:string; var password:string; var host:string;): bool;
begin
username := '11111';
end;

这样外面就可以取了

ADSLAN 2012-02-22
  • 打赏
  • 举报
回复
function getvalue(var username,password,host:string;): bool;
1楼的方式简单实用
使用记录型也不错
  • 打赏
  • 举报
回复
Delphi函数可以返回任意类型,包括自定义类型,不需要显式使用指向类型的指针。

CS_DNisSB2B 2012-02-22
  • 打赏
  • 举报
回复
最简单的
function getvalue(var username:string; var password:string; var host:string;): bool;
begin
username := '11111';
end;
这样最简单,传进来值,在函数中改变,外面再取值就是变化后的了
kaikai_kk 2012-02-22
  • 打赏
  • 举报
回复
方法很多
可以返单个string加个特殊特号分隔,或者返回数组,返回记录,用Pchar,用var ...等等
下面举例一个数组(当然数据类型一样的是很好的办法):
type
TArr=array [0..2] of string;

function getvalue():TArr;
var
arr:TArr;
begin
arr[0]:='1';
arr[1]:='2';
arr[2]:='3';
result:=arr;
end;

调用:
var
arr:TArr;
begin
arr:=getvalue;
showmessage(arr[0]);
showmessage(arr[1]);
showmessage(arr[2]);
end;
haitao 2012-02-22
  • 打赏
  • 举报
回复
借鉴ini:
result:=';username='+s1+';password='+s2+';host='+s3+';';
lynmison2012 2012-02-22
  • 打赏
  • 举报
回复
type
TUserInfo=record
username: string;
password: string;
host : string;
end;
TUserInfoList=record
count: integer;
users: array of TUserInfo;
end;

function getvalue(var userList: TUserInfoList):integer;
var
i: integer;
begin
//取用户数据,假定有n个,动态分配数组空间
userList.count := n;
SetLength(userList.users,userList.count);
for i:=0 to userList.count-1 do
begin
userList.users[i].userName := 用户名;
userList.users[i].password := 密码;
userList.users[i].host := 主机;
end;
result := userList.count;
end;

这种封装好处就是如果用户信息有变化,不用去更改获取用户信息函数参数。
bdmh 2012-02-22
  • 打赏
  • 举报
回复
可以定义record,返回record指针

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧