|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 16 樓
|
發表於: 星期五 八月 20, 2021 3:02 pm 文章主題: |
|
|
foxy 寫到: |
但是 我還是 不懂該 怎樣才能把0B57 轉為570B. 唯一辦法就是做個程序把從strconv(cUnicode,15)得到的字串每四字母/數字為一組把每兩個字母/數字的順序顛倒, 或者還有更直接的方法嗎?
|
google 說,
如果你只打算用vfp做,照你說的方法去作,最簡單
https://www.twblogs.net/a/5b8a5fcd2b71775d1ce6b1f2
代碼: |
lnStrLen=Len(lcUnicodeLittleStr)
lcUnicodeBigStr=''
For lnI = 1 To lnStrLen Step 2
lcUnicodeBigStr=lcUnicodeBigStr+Substr(lcUnicodeLittleStr,lnI+1,1)+Substr(lcUnicodeLittleStr,lnI,1)
Endfor
|
但有沒有這個必要,那就另一回事了 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
css
註冊時間: 2004-12-31 文章: 32
第 17 樓
|
發表於: 星期六 八月 21, 2021 9:50 am 文章主題: |
|
|
Unicode LE和BE相互轉換,小頭轉大頭,大頭轉小頭,VFP的Strconv()未提供現成參數來作轉換。
自己寫一個就是了,幾行代碼的事,無討論之必要。 |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 245 來自: 泰國
第 18 樓
|
發表於: 星期六 八月 21, 2021 9:43 pm 文章主題: |
|
|
syntech 寫到: | =SYS(987,.T.)
=SYS(3101,65001) |
大俠,謝謝您. 這個代碼管用 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 245 來自: 泰國
第 19 樓
|
發表於: 星期日 八月 22, 2021 11:29 am 文章主題: |
|
|
css 寫到: | Unicode LE和BE相互轉換,小頭轉大頭,大頭轉小頭,VFP的Strconv()未提供現成參數來作轉換。
自己寫一個就是了,幾行代碼的事,無討論之必要。 |
了解,謝謝您,大俠 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 245 來自: 泰國
第 20 樓
|
發表於: 星期日 八月 22, 2021 11:55 am 文章主題: |
|
|
syntech 寫到: |
但有沒有這個必要,那就另一回事了 |
小弟結合大俠您的指點, 把翻譯功能做出如下,不需要使中文字對照表了, 太感謝了.
Procedure googletranslate
Lparameters lctbl,lcfldname,lclangfrom,lclangto && lcfldname exclude language indicator, such as description (from descriptionen field name)
If Empty(Alltrim(_Screen.bsc6_gglapikey))
mssgstop('ggltranslnokey')
Return
Endif
If Upper(Alltrim(m.lclangfrom))='CH'
If _Screen.chinese_type=1 && Big5
m.lcGooglelangfrom= Upper('ZH-TW')
Else
m.lcGooglelangfrom= Upper('ZH-CN')
Endif
Else
m.lcGooglelangfrom=m.lclangfrom
Endif
m.lcfldfrom=m.lclangfrom
If Upper(Alltrim(m.lclangto))='CH'
If _Screen.chinese_type=1 && Big5
m.lcGooglelangto= Upper('ZH-TW')
Else
m.lcGooglelangto= Upper('ZH-CN')
Endif
Else
m.lcGooglelangto=m.lclangto
Endif
m.lcfldto=m.lclangto
m.lctbl=Alltrim(m.lctbl)
m.lcfldname=Alltrim(m.lcfldname)
m.lcfldfrom=m.lcfldname+m.lcfldfrom
m.lcfldto=m.lcfldname+m.lcfldto
m.lcvaluefrom=Alltrim(Evaluate(m.lctbl+Alltrim('.')+m.lcfldfrom))
If Empty(m.lcvaluefrom)
Return
ENDIF
m.lncodepage=codepageId(m.lclangfrom)
If Empty(m.lncodepage)
m.lcvaluefrom=Strconv(m.lcvaluefrom,9) && string to utf8 in current locale
Else
m.lcvaluefrom=Strconv(m.lcvaluefrom,9,m.lncodepage,1) && string to utf8 in codepage id
ENDIF
m.lcvaluefrom=urlencode(m.lcvaluefrom)
&&=Sys(987,.T.) && not in use here. Maps remote Unicode data retrieved through SQL pass-through or remote views to ANSI.
&& must set Sys(987,.f) to make acc.accch on thai windows display correctly
m.ln3101=Sys(3101)
=Sys(3101,65001) && retrieve UTF-8 from COM objects
Try
TEXT TO lctxt TEXTMERGE NOSHOW PRETEXT 7
key=<<ALLTRIM(_screen.bsc6_gglapikey)>>&q=<<ALLTRIM(m.lcvaluefrom)>>&source=<<m.lcGooglelangfrom>>&target=<<m.lcGooglelangto>>
ENDTEXT
mUrl = "https://www.googleapis.com/language/translate/v2"
xmlHTTP = Createobject("msxml2.xmlhttp")
xmlHTTP.Open("POST", m.mUrl, .F.)
xmlHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
xmlHTTP.Send(m.lctxt)
Do While xmlHTTP.readyState != 4
=Inkey(0.1)
Enddo
If xmlHTTP.Status <> 200
=Sys(3101,m.ln3101)
mssgfeed('ggltranlfail')
Return
Endif
m.lcres=Alltrim(xmlHTTP.responseText)
m.lcstart='"translatedText": "' && not use strextract() since there could be no the 2nd "
m.lcres=SUBSTR(m.lcres,ATC(m.lcstart,m.lcres)+LEN(m.lcstart))
m.lcres=LEFT(m.lcres,LEN(m.lcres)-21) && after should-be the 2nd ", ther are 21 characters ending
If Right(m.lcres,1)='"' && delete the ending "
m.lcres=Left(m.lcres,Len(m.lcres)-1)
ENDIF
m.lncodepage=codepageId(m.lclangto)
If Empty(m.lncodepage)
m.lcres=Strconv(m.lcres,11) && utf8 to string in current locale
Else
m.lcres=Strconv(m.lcres,11,m.lncodepage,1) && utf8 to string in codepage id
Endif
Catch To oException
mssgfeed_mssg(oException.Message)
Finally
ENDTRY
=Sys(3101,m.ln3101)
Replace (m.lcfldto) With m.lcres In (m.lctbl)
Endproc
**
Procedure codepageId
Lparameters lcLangID
m.lcLangID=Upper(m.lcLangID)
Local lnId
m.lnid=0
Do Case
Case m.lcLangID='TH'
m.lnid=874
Case m.lcLangID='CH' And _Screen.CHinese_type=1 && TRADITIONAL CHINESE
m.lnid=950
Case m.lcLangID='CH' And _Screen.CHinese_type=2 && SIMPLIFIED CHINESE
m.lnid=936
Case m.lcLangID='JA'
m.lnid=932
Endcase
Return m.lnid
Endproc
**
其中的代碼:
Do While xmlHTTP.readyState != 4
=Inkey(0.1)
Enddo
是您在另外一篇的貼文中發現的, 請問 =Inkey(0.1) 的作用是不准許用戶做任何鍵盤操作嗎?
謝謝 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 21 樓
|
發表於: 星期日 八月 22, 2021 4:20 pm 文章主題: |
|
|
foxy 寫到: |
其中的代碼:
Do While xmlHTTP.readyState != 4
=Inkey(0.1)
Enddo
是您在另外一篇的貼文中發現的, 請問 =Inkey(0.1) 的作用是不准許用戶做任何鍵盤操作嗎?
謝謝 |
因為網路延遲,
所以要等回傳狀態確認後,
再繼續後面的作業
這個很重要的 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 245 來自: 泰國
第 22 樓
|
發表於: 星期一 八月 23, 2021 4:05 pm 文章主題: |
|
|
syntech 寫到: |
因為網路延遲,
所以要等回傳狀態確認後,
再繼續後面的作業
這個很重要的 |
明白. 但是 為甚麼 要用 =Inkey(0.1), 而不是=Inkey(2) 或 =Inkey(0) 呢?
或者乾脆去掉這一行可以嗎?
謝謝 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4225 來自: Taipei,Taiwan
第 23 樓
|
發表於: 星期一 八月 23, 2021 9:44 pm 文章主題: |
|
|
foxy 寫到: |
明白. 但是 為甚麼 要用 =Inkey(0.1), 而不是=Inkey(2) 或 =Inkey(0) 呢?
或者乾脆去掉這一行可以嗎?
謝謝 |
你可以改呀,
只要原理相同就可以了
網路上可以找到好幾個版本,不一定要用inkey
重點在 xmlHTTP.readyState
我習慣用的是
代碼: |
DO WHILE xmlHTTP.ReadyState != 4
DOEVENTS
ENDDO
|
讓畫面有些反應,不會出現卡住或是畫面反白 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 245 來自: 泰國
第 24 樓
|
發表於: 星期二 八月 31, 2021 10:16 pm 文章主題: |
|
|
syntech 寫到: |
代碼: |
DO WHILE xmlHTTP.ReadyState != 4
DOEVENTS
ENDDO
|
|
是對滑鼠和鍵盤有反應吧, 謝謝大俠 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
lygcw9603
註冊時間: 2011-12-25 文章: 130
第 25 樓
|
發表於: 星期五 三月 15, 2024 10:30 am 文章主題: |
|
|
?Strconv(Strconv('國',5),15)
?Strconv(Strconv('國',9),15) |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|