VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問.....在程式中可以如何取得欄位寬度
前往頁面 1, 2  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
deepsnow



註冊時間: 2004-06-09
文章: 9


第 1 樓

發表發表於: 星期三 六月 16, 2004 6:58 pm    文章主題: 請問.....在程式中可以如何取得欄位寬度 引言回覆

請問各位高手,

在程式中如何取得某欄位寬度呢??

望不吝解惑,謝謝!
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 2 樓

發表發表於: 星期三 六月 16, 2004 9:51 pm    文章主題: 引言回覆

AFIELDS 函數
COPY STRUCTURE EXTENDED 命令

怎麼用就自己查資料吧

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
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 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 11 樓

發表發表於: 星期五 六月 18, 2004 1:35 pm    文章主題: 引言回覆

至於 6.0 的說明檔,你可從 MSDN 中將它抽出來直接用就可以了,我手邊就有其英文版、繁體版與簡體版三種,是直接從 MSDN 直接拷貝出來單獨使用。
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
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. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
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() 即可
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2  下一頁
1頁(共2頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作