随笔 - 809  文章 - 0 评论 - 144 阅读 - 770万

 

对.先定义一个 数组类型. 然后函数返回这个数组类型 就可以了.

 

复制代码
type
TStrArr = array of string;

function strSplit(strSplit,str:string):TStrArr ;
var
sl:TStringList;
I: Integer;
begin
try
sl:=TStringList.Create;
sl.LineBreak:=strSplit;
sl.Text:=str;
SetLength(result,sl.Count);
for I := 0 to sl.Count - 1 do
result[i]:=sl[i];
finally
sl.Free;
end;
end;
复制代码

 

例子3:

 

复制代码
//首先定义一个数组类型
type
TArr = array of integer;
//然后定义返回这个数组类型的函数
function strSplit(strSplit,str:string):TArr ;
var
str: array[1..2] of integer;
i: integer;
begin
str[1]:=0;
str[2]:=1;
for i:= 1 to 2 do
result[i]:=strl[i];
end;
复制代码


方法有二: 1、返回动态数组(如楼上意见),但需要在给数组元素赋值之前,申请空间,调用SetLength,楼上的忽略了这句,必然出现数据访问异常;调用SetLength也有两种方案,其一是每收集一个,就申请扩大一次,再来赋值,其二是批量申请一批,例如一批几百个,在未超越几百个时,可以随时赋值,当达到数据长度极限时,再次批量申请,最后根据实际收集到的元素个数,重新设定一次长度。 2、返回足够大的静态数组,要求预先定义一个足够大的数组类型和变量(根据需要而定,例如假设文件不大,估计不会超过1万个数儿,就定为10000),以变量作为参数传入(var传指针),函数处理时可以随意赋值,但需要通过返回值指明实际上收集到的元素个数。

 

复制代码
Type
TArrayString = Array of String;//自定义类型

......
//3. 根据预定义类型来声明数组: type   TMyArr = array[0..10] of Integer;  //先定义一个数组类型 var   MyArr: TMyArr;  //再定义静态数组 

function GetArrayString(VLength: Integer): TArrayString;//返回一个宽度VLength的数组
var
I: Integer;
begin
SetLength(Result, VLength);
for I := Low(Result) to High(Result) do
Result[I] := IntToStr(I);
end;
复制代码



posted on   del88  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示