|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
h580920
註冊時間: 2005-02-28 文章: 35
第 1 樓
|
發表於: 星期四 十二月 11, 2014 11:59 am 文章主題: ??? 輸出含有 "漬" 的字串時會發生 [語法錯誤] 的問題 |
|
|
請教各位大大
我利用 ??? 輸出資料到 [三聯發票機] 時, 發生如含有某些字串(目前查到的是 "漬")時, 則會發生 [語法錯誤(Syntax error)] 的問題 (非 UNICODE 字串, 且大部分字串輸出是沒問題的)
例如 : ??? "漬"
三聯發票機機型是 : WP-103
印表機驅動是 FX-80 |
|
回頂端 |
|
|
h580920
註冊時間: 2005-02-28 文章: 35
第 2 樓
|
發表於: 星期四 十二月 11, 2014 1:08 pm 文章主題: |
|
|
補充 :
我是在 VFP 9.0 SP2 中執行
且在 VFP 的 [命令視窗] 中執行 ??? "漬" 就會發生錯誤了
嘗試下 ??? CHR(47739) 也會, 但是使用 ??? CHR(47740) 則不會 |
|
回頂端 |
|
|
asd89839032
註冊時間: 2012-10-15 文章: 49
第 3 樓
|
發表於: 星期四 十二月 11, 2014 2:24 pm 文章主題: |
|
|
猜測是VFP的問題,
???CHR(123) 就會跳出錯誤了
應該是???使用到 "{" 字元就會有問題
EX:???CHR(47995) (BB7B)
怎麼解決交給樓下(逃跑
note:測試後,只有 chr(123) 會有錯誤,保留字? _________________ 菜鳥路過... |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4215 來自: Taipei,Taiwan
第 4 樓
|
發表於: 星期五 十二月 12, 2014 4:12 pm 文章主題: |
|
|
那就改FRX表了. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
CCB2000
註冊時間: 2009-03-25 文章: 95
第 5 樓
|
發表於: 星期五 十二月 12, 2014 9:14 pm 文章主題: |
|
|
參攷:
PRIVATE m.q_exp2
m.q_exp2=m.q_exp
m.q_exp2=ffwrite_strtran(ffwrite_strtran(m.q_exp2,"{NULL}",CHR(0)),"{null}",CHR(0))
m.q_exp2=ffwrite_strtran(ffwrite_strtran(m.q_exp2,"{CR}",CHR(13)),"{cr}",CHR(13))
m.q_exp2=ffwrite_strtran(ffwrite_strtran(m.q_exp2,"{LF}",CHR(10)),"{lf}",CHR(10))
m.q_exp2=ffwrite_strtran(ffwrite_strtran(m.q_exp2,"{TAB}",CHR(9)),"{tab}",CHR(9))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{","{{}")
???m.q_exp2
FUNCTION ffwrite_strtran
PARAMETER m.q_vexp,m.q_str1,m.q_str2
* ffwrite_strtran =
* m.q_vexp =
* m.q_str1 =
* m.q_str2 =
PRIVATE m.q_vexp1
m.q_vexp1=STRTRAN(m.q_vexp,m.q_str1,m.q_str2)
IF AT(m.q_str1,m.q_vexp1)=0
RETU m.q_vexp1
ENDI
PRIVATE m.q_vexpb
m.q_vexpb=1
DO WHILE m.q_vexpb<=LEN(m.q_vexp)
PRIVATE m.q_vexpn
m.q_vexpn=AT(m.q_str1,SUBS(m.q_vexp,m.q_vexpb))
IF !(m.q_vexpn>0)
EXIT
ENDI
m.q_vexpb=m.q_vexpb+m.q_vexpn-1
m.q_vexp=STUFF(m.q_vexp,m.q_vexpb,LEN(m.q_str1),m.q_str2)
m.q_vexpb=m.q_vexpb-LEN(m.q_str1)+LEN(m.q_str2)
m.q_vexpb=m.q_vexpb+LEN(m.q_str1)
ENDDO
RETU m.q_vexp
* END OF FUNCTION FFWRITE_STRTRAN. _________________ VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler |
|
回頂端 |
|
|
h580920
註冊時間: 2005-02-28 文章: 35
第 6 樓
|
發表於: 星期日 十二月 14, 2014 9:52 am 文章主題: |
|
|
感謝各位指引方向
照著 CCB2000 指導, 測試後好像在有問題的字串後面加上"}" 也可以(不知是否對稱問題)
但因手邊沒有 [三聯發票] , 所以不知印出來會如何 ?
再次感謝 CCB2000 |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 7 樓
|
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 233 來自: 泰國
第 8 樓
|
發表於: 星期五 十二月 26, 2014 7:20 pm 文章主題: |
|
|
goodnight 寫到: | 好厲害的解決用的程式, 功力很差的我, 幾乎都看不懂 |
小弟我看的更是找不著頭腦 _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
kalok
註冊時間: 2010-08-26 文章: 284
第 9 樓
|
發表於: 星期一 五月 11, 2015 7:29 am 文章主題: |
|
|
h580920 寫到: | 感謝各位指引方向
照著 CCB2000 指導, 測試後好像在有問題的字串後面加上"}" 也可以(不知是否對稱問題)
但因手邊沒有 [三聯發票] , 所以不知印出來會如何 ?
再次感謝 CCB2000 |
你是經 COM port, Parallel port or USB 輸出 text 到 printer 嗎? |
|
回頂端 |
|
|
CCB2000
註冊時間: 2009-03-25 文章: 95
第 10 樓
|
發表於: 星期日 三月 13, 2022 9:56 am 文章主題: |
|
|
完整的轉義碼,可參攷:
http://baiyujia.com/vfpdocuments/f_vfp9fix206.asp
參攷代碼(最新版本):
PRIVATE m.q_exp2
m.q_exp2=m.q_exp
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-@}",CHR(0x00))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-A}",CHR(0x01))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-B}",CHR(0x02))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-C}",CHR(0x03))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-D}",CHR(0x04))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-E}",CHR(0x05))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-F}",CHR(0x06))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-G}",CHR(0x07))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-H}",CHR(0x08))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-I}",CHR(0x09))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-J}",CHR(0x0a))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-K}",CHR(0x0b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-L}",CHR(0x0c))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-M}",CHR(0x0d))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-N}",CHR(0x0e))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-O}",CHR(0x0f))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-P}",CHR(0x10))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-Q}",CHR(0x11))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-R}",CHR(0x12))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-S}",CHR(0x13))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-T}",CHR(0x14))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-U}",CHR(0x15))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-V}",CHR(0x16))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-W}",CHR(0x17))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-X}",CHR(0x18))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-Y}",CHR(0x19))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-Z}",CHR(0x1a))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-[}",CHR(0x1b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-\}",CHR(0x1c))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-]}",CHR(0x1d))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-^}",CHR(0x1e))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{CTRL-_}",CHR(0x1f))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{DEL}",CHR(0x00))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{NULL}",CHR(0x00))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{BELL}",CHR(0x07))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{BACKSPACE}",CHR(0x08))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{TAB}",CHR(0x09))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{LINEFEED}",CHR(0x0a))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{RETURN}",CHR(0x0d))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ESC}",CHR(0x1b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ESCAPE}",CHR(0x1b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{DELETE}",CHR(0x7f))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-@}",CHR(0x00))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-a}",CHR(0x01))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-b}",CHR(0x02))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-c}",CHR(0x03))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-d}",CHR(0x04))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-e}",CHR(0x05))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-f}",CHR(0x06))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-g}",CHR(0x07))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-h}",CHR(0x08))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-i}",CHR(0x09))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-j}",CHR(0x0a))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-k}",CHR(0x0b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-l}",CHR(0x0c))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-m}",CHR(0x0d))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-n}",CHR(0x0e))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-o}",CHR(0x0f))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-p}",CHR(0x10))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-q}",CHR(0x11))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-r}",CHR(0x12))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-s}",CHR(0x13))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-t}",CHR(0x14))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-u}",CHR(0x15))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-v}",CHR(0x16))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-w}",CHR(0x17))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-x}",CHR(0x18))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-y}",CHR(0x19))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-z}",CHR(0x1a))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-[}",CHR(0x1b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-\}",CHR(0x1c))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-]}",CHR(0x1d))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-^}",CHR(0x1e))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{ctrl-_}",CHR(0x1f))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{del}",CHR(0x00))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{null}",CHR(0x00))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{bell}",CHR(0x07))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{backspace}",CHR(0x08))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{tab}",CHR(0x09))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{linefeed}",CHR(0x0a))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{return}",CHR(0x0d))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{esc}",CHR(0x1b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{escape}",CHR(0x1b))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{delete}",CHR(0x7f))
m.q_exp2=ffwrite_strtran(m.q_exp2,"{","{{}")
???m.q_exp2
FUNCTION ffwrite_strtran
PARAMETER m.q_vexp,m.q_str1,m.q_str2
* ffwrite_strtran =
* m.q_vexp =
* m.q_str1 =
* m.q_str2 =
PRIVATE m.q_vexp1
m.q_vexp1=STRTRAN(m.q_vexp,m.q_str1,m.q_str2)
IF AT(m.q_str1,m.q_vexp1)=0
RETU m.q_vexp1
ENDI
PRIVATE m.q_vexpb
m.q_vexpb=1
DO WHILE m.q_vexpb<=LEN(m.q_vexp)
PRIVATE m.q_vexpn
m.q_vexpn=AT(m.q_str1,SUBS(m.q_vexp,m.q_vexpb))
IF !(m.q_vexpn>0)
EXIT
ENDI
m.q_vexpb=m.q_vexpb+m.q_vexpn-1
m.q_vexp=STUFF(m.q_vexp,m.q_vexpb,LEN(m.q_str1),m.q_str2)
m.q_vexpb=m.q_vexpb-LEN(m.q_str1)+LEN(m.q_str2)
m.q_vexpb=m.q_vexpb+LEN(m.q_str1)
ENDDO
RETU m.q_vexp
* END OF FUNCTION FFWRITE_STRTRAN. _________________ VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|