 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
deepsnow
註冊時間: 2004-06-09 文章: 9
第 1 樓
|
發表於: 星期三 六月 16, 2004 6:58 pm 文章主題: 請問.....在程式中可以如何取得欄位寬度 |
|
|
請問各位高手,
在程式中如何取得某欄位寬度呢??
望不吝解惑,謝謝! |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 2 樓
|
|
回頂端 |
|
 |
deepsnow
註冊時間: 2004-06-09 文章: 9
第 3 樓
|
發表於: 星期四 六月 17, 2004 12:00 pm 文章主題: |
|
|
好像不行耶!
可以附一下Sample嗎?? |
|
回頂端 |
|
 |
goto-dream
註冊時間: 2004-05-11 文章: 909
第 4 樓
|
發表於: 星期四 六月 17, 2004 12:09 pm 文章主題: |
|
|
會何不行.你有在試嗎?為何不放上你的程式碼?
讓我們來診斷!!
代碼: | CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && 打{ customer 表.
gnFieldcount = AFIELDS(gaMyArray) && ヱ堣@o。
CLEAR
FOR nCount = 1 TO gnFieldcount
? gaMyArray(nCount,1) && F示字段名。
ENDFOR |
_________________ 福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!
想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.
愛作夢 |
|
回頂端 |
|
 |
catjoke
註冊時間: 2003-06-16 文章: 175 來自: 香港
第 5 樓
|
發表於: 星期四 六月 17, 2004 5:31 pm 文章主題: |
|
|
? LEN(myField) _________________ 喵喎~ 貓當然是 "茅" 的嘛! ^0^; |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 6 樓
|
發表於: 星期五 六月 18, 2004 1:39 am 文章主題: |
|
|
deepsnow兄, 我們朱兄已經在數百個命令函數中指引你到一條明確的路了, 你要做的是1.打開你VFP說明檔,2.找到這二個命令及函數,3.看說明及範例,4.馬上用"多種條件"的測試,5.如果對你的測試有問題想不透, 將你的疑問貼上來, 讓人知道你有多努力的在找答案, 相對的我們也會認真的幫助你的, 但你有沒有想過你做到了幾項了. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
deepsnow
註冊時間: 2004-06-09 文章: 9
第 7 樓
|
發表於: 星期五 六月 18, 2004 9:14 am 文章主題: |
|
|
感謝各位的關懷!!
朱兄與goto-drem所提供之afields(),我已試過,不行的原因是我只知道欄位名稱,但不知道該欄位於資料表格之所在位置,而且,得知欄位寛度之指令應為? gaMyArray(nCount,3)非gaMyArray(nCount,1)
再來,朱兄所提之COPY STRUCTURE EXTENDED 我就真得不知如何使用了,因為我想知道的是特定欄位的寬度,不是資料表格的架構.
另catjoke兄所提供之LEN(),是我最早所用的方式,但LEN()實指欄位值的長度,非欄位的寛度,所以遇到數值型之欄位就會錯!!
另外,對於garfield的質疑,我很抱歉!!當我在回覆朱兄問題時,可能表達的不夠清楚,事實上我在請朱兄提供SAMPLE時,當然已試過,但實在仍未解決我的問題,才會請朱兄提供SAMPLE.目前公司使用VFP6.0,這是我認為不好用的一個版本,因為沒有VFP專屬的說明檔,其說明檔是在MSDN裡,我用過5.0,6.0,7.0,所以我知道6.0的說明檔不如其他版本查詢方便!! |
|
回頂端 |
|
 |
catjoke
註冊時間: 2003-06-16 文章: 175 來自: 香港
第 8 樓
|
發表於: 星期五 六月 18, 2004 10:10 am 文章主題: |
|
|
AFIELD 把 table 的 field 資料 完整地放到一個 Array 中!
如果你連用一個簡單的 FOR-LOOP 來檢查也不懂寫,
不要怪別人生氣!!
告訴我下面所寫的程式, 有那一句你不懂寫, 不明白 好了!
LOCAL nCOUNT, AFF(1)
nCOUNT = AFIELD(AFF, "MyTable")
FOR iX = 1 TO nCOUNT
IF AFF(iX, 1) = "ChkField"
? "Name:", AFF(iX, 1)
? "Type:", AFF(iX, 2)
? "Width:", AFF(iX, 3), AFF(iX, 4)
ENDIF
ENDFOR
這不是 寫不寫 sample 的問題, 你有沒有去用過腦袋! _________________ 喵喎~ 貓當然是 "茅" 的嘛! ^0^; |
|
回頂端 |
|
 |
deepsnow
註冊時間: 2004-06-09 文章: 9
第 9 樓
|
發表於: 星期五 六月 18, 2004 10:37 am 文章主題: |
|
|
我還真的有點生氣了...
廻圈我當然會寫....其實在好心人提供AFIELDS()指令時,
我就有答案了....那種間接的方式我知道n種,
只是,我想知道有沒有更好的方法而己,
而且,大家只是互相交流而已,
有必要這樣人身攻擊嗎??
我參加這個版的目的,是希望能增進自己不足的地方...
竟然被說成這樣,可能我想錯了... |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 10 樓
|
發表於: 星期五 六月 18, 2004 1:19 pm 文章主題: |
|
|
哈哈~~ deepsnow
他們只不過是要你把你測試用的程式碼給傳上來,這樣大家才好瞧瞧要如何幫你;不過就是沒看到你的程式碼罷了
我假設你是要查 MyTable 資料表格中的 MyField 欄位的寬度
IF AFIELDS(M_aFileds,"MyTable") > 0
M_cSetExact = SET("EXACT")
SET EXACT ON
? IIF(ASCAN(M_aFileds,UPPER("MyField"))>0,M_aFileds(ASCAN(M_aFileds,UPPER("MyField"))+2),0)
SET EXACT &M_cSetExact
ENDIF
剩下的就懶得寫,不過對你所説「間接的方式」就不太明白了,恐怕我這寫法也會被你納入為間接的方式吧。 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
朱育興 在 星期五 六月 18, 2004 1:41 pm 作了第 1 次修改 |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 11 樓
|
發表於: 星期五 六月 18, 2004 1:35 pm 文章主題: |
|
|
至於 6.0 的說明檔,你可從 MSDN 中將它抽出來直接用就可以了,我手邊就有其英文版、繁體版與簡體版三種,是直接從 MSDN 直接拷貝出來單獨使用。 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 12 樓
|
發表於: 星期五 六月 18, 2004 4:51 pm 文章主題: |
|
|
deepsnow, 你可以自己寫個函數來傳回欄位長度, 例
sele mydbf
? fieldlen( 'field1','mydbf')
*******
func fieldlen
lpara mfield , mdbf
* 借用 catjoke 的程式碼
LOCAL nCOUNT, AFF(1) ,ix, mret
nCOUNT = AFIELD(AFF, mdbf )
mret = 0
FOR iX = 1 TO nCOUNT
IF upper(AFF(iX, 1)) == upper(mfield)
mret = AFF(iX, 3)+ AFF(iX, 4)/10 &&--數值型態傳回 12.04 表示04是小數點位數
exit for
ENDIF
ENDFOR
return mret _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 13 樓
|
發表於: 星期五 六月 18, 2004 5:20 pm 文章主題: |
|
|
[隨便聊]裡面有一篇[學歷與經歷],可以去看一下.
如果您隱藏了您的想法,
自然會像該主角一開始一樣,
只獲得一個18000的打字員工作,
因為沒有人知道您的程度,了解您的想法,
必須要您把您的想法表現出來的時候,
別人才得以評判該怎麼回答或討論.
祝您早日成為總經理,
至於英文秘書就不用兼了吧 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
catjoke
註冊時間: 2003-06-16 文章: 175 來自: 香港
第 14 樓
|
發表於: 星期六 六月 19, 2004 12:58 pm 文章主題: |
|
|
做程式員, 會被期望為 隨時可以 舉一反三!
所以你在 3樓的回應, "好像不行" 就要求別人寫 sample.
寫了又說自己懂得寫.......
怎樣做其實沒有所謂, 重點在於你了解各 函數用法有多深.
有時候要 上司問, 我才道出我程式中要 照顧的問題,
而不是直接 樣樣說得清楚, 免得用家刻意找錯處來攻~ _________________ 喵喎~ 貓當然是 "茅" 的嘛! ^0^; |
|
回頂端 |
|
 |
Gimmy
註冊時間: 2004-07-06 文章: 2
第 15 樓
|
發表於: 星期二 七月 06, 2004 3:50 am 文章主題: |
|
|
知道欄位名稱 , 則直接使用函數 FSIZE() 即可 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|