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

??? 輸出含有 "漬" 的字串時會發生 [語法錯誤] 的問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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
文章: 4211
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期五 十二月 12, 2014 4:12 pm    文章主題: 引言回覆

那就改FRX表了.
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
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 樓

發表發表於: 星期一 十二月 15, 2014 11:53 am    文章主題: 引言回覆

好厲害的解決用的程式, 功力很差的我, 幾乎都看不懂
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
foxy



註冊時間: 2007-08-16
文章: 229
來自: 泰國

第 8 樓

發表發表於: 星期五 十二月 26, 2014 7:20 pm    文章主題: 引言回覆

goodnight 寫到:
好厲害的解決用的程式, 功力很差的我, 幾乎都看不懂

小弟我看的更是找不著頭腦

_________________
進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
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
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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