做乙個返回陣列的函式 DELPHI

2021-04-07 09:25:42 字數 1760 閱讀 3099

1.

type

tarray = array of string;

procedure trimchar(s:string;var sret : tarray);

function countchar(s:string; c:char):integer;

vari : integer;

begin

result := 0;

for i := 1 to length(s) do

if s[i] = c then inc(result);

end;

varipos : 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);

varsa : 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);

vartarr: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;

C 做乙個返回陣列指標的函式

這個問題我已經不是第一次遇到了,由於不是總程式設計,所以總會忘記這一點 在c 中是不允許陣列作為函式的返回值的 所以想要函式返回乙個陣列,那麼只能返回這個陣列的指標,然後在想呼叫這個陣列的函式中新建指標然後呼叫這個函式。舉個例子 生成含有範圍屬於 begin,end 的188個隨機整數的陣列 int...

乙個oracle函式返回陣列的例子

create or replace type t ret table is table of varchar2 20 create or replace function f test var num in integer return t ret table is var out t ret ta...

做乙個programmer,而不做乙個coder

programmer是程式的思考者,而coder只是乙個執行者 勞心者製人,勞力者制於人 如果專案不緊的情況下,應該從需求做起,最好能夠窮盡所有的需求,遇到與別人模組互動的情況,規定好與別人互動的介面。然後才是開始設計,抓住需求當中的名詞,想想是否設計成為類,然後根據測試用例,來設計框架結構,至少要...