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

string最大可以多長,array of char最大可以多長。

尚未結案
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-31 17:44:20 IP:218.80.xxx.xxx 未訂閱
setLength(s,length),最大可以是多長呀 ========================= 語言是工具,最重要是如何解決問題。
ROLAND168
一般會員


發表:39
回覆:49
積分:17
註冊:2003-02-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-31 20:33:49 IP:61.229.xxx.xxx 未訂閱
你好: help 內有說, shortstring maximun length 為 255 ,不知是否是 你要的答案??謝謝
aip999
初階會員


發表:10
回覆:63
積分:44
註冊:2002-03-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-31 20:49:06 IP:218.162.xxx.xxx 未訂閱
引言: setLength(s,length),最大可以是多長呀 ========================= 語言是工具,最重要是如何解決問題。
現在好像 都可以幾gb了
liorex
初階會員


發表:19
回覆:60
積分:32
註冊:2002-08-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-31 22:38:25 IP:61.64.xxx.xxx 未訂閱
若沒有特別設定DELPHI 的STRING 是定義成ansiString 可以到2G shotString 好像是255 PS widestring 也是2G 參考HELP
Type        Maximum length        Memory required        Used for
ShortString        255 characters        2 to 256 bytes        backward compatibility
AnsiString        ~2^31 characters        4 bytes to 2GB        8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.
WideString        ~2^30 characters        4 bytes to 2GB        Unicode characters; multi-user servers and multi-language applications
 
---------------------- 一切有為法 如夢幻泡影 如露亦如電 應做如是觀 ----------------------
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-04 08:20:11 IP:218.80.xxx.xxx 未訂閱
那 array of char 最大是多少呢? ========================= 語言是工具,最重要是如何解決問題。
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-06 11:37:12 IP:203.66.xxx.xxx 未訂閱
最大值應該是 2147483646 1 個 Char array[0..2147483646] of char; 宣告一個 Char Array 如果超過 2147483647 (Integer => 2G 限制),會有 Error Message : [Error] Unit1.pas(29): Data type too large: exceeds 2 GB 疑問 1: 放在 物件 private/public 宣告 array[0..2147483646] of char; compile 不會過,不過在 procedure 的 Local 內宣告沒問題.. 從 procedure SetLength(var S; NewLength: Integer); 宣告之 prototype 應該也可以看出 Integer 的限制... 不過實際上寫一段 code 去測試 ... procedure TForm1.Button1Click(Sender: TObject); var MaxNum:integer; CharArr:array of char; begin try MaxNum := Round(2147483646/2); SetLength(CharArr,MaxNum); finally SetLength(CharArr,0); end; end; SetLength 2147483646, compile 會過,不過 Runtime 會掛掉... 嗯,在我的電腦中 1G 左右就 OutofMemory 了... 有沒有懂底層運作的前輩可以大概描述一下不同區段 (private/public Local)宣告與 SetLength 實際上佔用記憶體的位置 (OS 控制的 2G 上下或是在系統的 Heap or Stack 中) ---- 我只會兩件事,這也不會,那也不會
Leway
一般會員


發表:43
回覆:71
積分:22
註冊:2003-07-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-08 08:56:33 IP:218.80.xxx.xxx 未訂閱
在 procedure 的 Local 內宣告試用使用的Memery在Stack中。 放在 物件 private/public 宣告 array[0..2147483646] of char; compile 為什麼不會過,我不清楚,哪位前輩能解釋一下。 ========================= 語言是工具,最重要是如何解決問題。
系統時間:2024-07-01 13:45:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!