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