做一个返回数组的函数 DELPHI

转载 2006年06月05日 12:05:00

1.

type
  TArray = array of string;

procedure TrimChar(s:string;var sRet : TArray);
  function CountChar(s:string; c:char):integer;
  var
    i : integer;
  begin
    result := 0;
    for i := 1 to Length(s) do
      if s[i] = c then Inc(result);
  end;
var
  iPos : integer;
  i    : integer;

begin
  SetLength(sRet, CountChar(s, ',') + 1);
  iPos := Pos(',', s);
  i := 0;
  while iPos > 0 do
  begin
    sRet[i] := Copy(s, 1, iPos - 1);
    Delete(s, 1, iPos);
    iPos := Pos(',', s);
    Inc(i);
  end;
  sRet[i] := s;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  sA : TArray;
  s  : string;
  i  : integer;
begin
  s := 'abc,cd,mm,44';
  sA := nil;
  TrimChar(s, sA);
  for i := Low(sA) to High(sA) do
    Memo1.Lines.Add(sA[i]);
end;

 

2。

主程序中:
......
type
arr=array[0..32768] of double;
parr=^arr;
..............
function test(ptarr:parr):integer;stdcall;external project1.dll name 'DoM1';
procedure TForm1.Button1Click(Sender: TObject);
var
tarr:arr;
ptarr:parr;
i:integer;
begin
ptarr:=@tarr;
i:=test(ptarr); //test是DLL中的函数,我想把数组指针传进去,把所指向的数组内容在DLL中修改
edit1.Text:=floattostr(tarr[16]);
end;


动态链接库 project11.dll中:
......
type
arr=array[0..32768] of double;
parr=^arr;

function test( N:parr):integer;stdcall;
var testarray:arr;
i:integer;
begin
testarray:=N^;
for i := 0 to 32768 do
begin
testarray[i]:=i;
end;
result:=Round(N[16]);//测试用
end;

相关文章推荐

写一个函数,返回一个数组中所有元素被第一个元素相除的结果

来自《编程之美》中面试题

delphi与C++ dll 之间的数据传输(字符串,数组)

1、delphi向C++ dll中传入字符串 delphi中: TsavePicture= procedure(filename:pansiChar); cdecl; name:PAnsiChar; ...

delphi 字符串、数组函数

  • 2014年10月16日 15:27
  • 34KB
  • 下载

Delphi洗牌算法 - 将一个数组随机乱序

用于考试时乱序,相同的试题,但每位考生看到的题序不同。 unit Unit1; interface uses Windows, Messages, SysUtils, Var...
  • holen
  • holen
  • 2013年07月01日 21:08
  • 1069

写一个函数int Func(int* A, int nSize), 使A把0移至后面,非0整数移至数组前面 并保持有序,返回值为原数据中第一个元素为0的下标。

/** int A[nSize],其中隐藏着若干0,其余非0整数, 写一个函数int Func(int* A, int nSize), 使A把0移至后面,非0整数移至数组前面 并保持有序,返回值为原数...

c语言中函数能返回一个数组吗

 不能直接返回一个数组,但是可以用其他方式实现类似功能。 方法1:利用全局变量      分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。...

int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至 数组前面并保持有序,返回值为原数据中第一个

int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至 数组前面并保持有序,返回值为原数据中第一个...

C#--如何在一个函数中返回两个值(包含数组的参数)

/*烟台大学计算机学院学生 *All right reserved. *文件名称:C#--如何在一个函数中返回两个值(包含数组的参数) *作者:杨飞 *完成日期:2014...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:做一个返回数组的函数 DELPHI
举报原因:
原因补充:

(最多只允许输入30个字)