線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2874
推到 Plurk!
推到 Facebook!

動態宣告array+record

缺席
whitefox0939
一般會員


發表:1
回覆:1
積分:0
註冊:2004-08-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-09-29 13:07:58 IP:60.250.xxx.xxx 訂閱
請問各位前輩
我編寫一個搜尋XML檔案的內各個Node的數值然後存入紀錄型態的動態矩陣內
而這個紀錄型態內也包含令一個動態矩陣的資料型態
現在是執行到給定這個紀錄型態的動態矩陣大小就會出現Incompatible types錯誤
1. 是否我宣告使用有錯誤?該怎麼修正
2. XML格式的檔案,是否有其他方式一一讀出Section跟Node的數值?
謝謝

以下是程式內容,紅字部分為顯示錯誤訊息的程式行

[code delphi]
Type
EventData = Record
EventID : String;
StartFrame : Integer;
EndFrame : Integer;
MiniID : Integer;
MiniDiff : Real;
end;
LogData = Record
DateTime : TDateTime;
ClipName : String;
TestItem : String;
Event : array of EventData;
End;

var
SoRe : array of LogData;

implementation

procedure GetLogInfo(var SoSL : TStringList; var SoRec : array of LogData);
var
i : Integer;
LogCount, EventCount : Integer;
begin
LogCount := 0;
EventCount := 0;
for i := 0 to SoSL.Count-1 do
begin
if pos(' 0 then
begin
LogCount := LogCount 1;
SetLength(SoRec, LogCount);
..................
end else
if pos(' 0 then
begin
EventCount := EventCount 1;
SetLength(SoRec[LogCount].Event, EventCount);
....................
[/code]

pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-09-29 20:02:44 IP:114.32.xxx.xxx 訂閱
太多次SetLength Array會有記憶體問題,之前站上討論的結論好像是無解。
建議可以用TList代替
RootKit
資深會員


發表:16
回覆:357
積分:419
註冊:2008-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-09-30 17:07:07 IP:60.250.xxx.xxx 訂閱
SoRec[LogCount - 1]
whitefox0939
一般會員


發表:1
回覆:1
積分:0
註冊:2004-08-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-10-01 17:47:47 IP:210.68.xxx.xxx 訂閱
找到解法
compiler不過主要出在procedure/function傳值是要Type型態
所以在多宣告一個Record去包一個動態矩陣就好了

系統時間:2017-10-22 6:52:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!