如題,下面是程式
li_FileNum = FileOpen(ddlb_1.Text,streamMode!)
FileSeek(li_FileNum, 2)
IF flen > 32765 THEN
IF Mod(flen, 32765) = 0 THEN
loops = flen/32765
ELSE
loops = (flen/32765) + 1
END IF
ELSE
loops = 1
END IF
new_pos = 1
FOR i = 1 to loops
bytes_read = FileRead(li_FileNum, b)
tot_b = tot_b + b
NEXT
//ls_text = Space(8192)
ls_text = FromUnicode(tot_b)
//ls_text = string(tot_b)
messagebox(string(len(tot_b)),ls_text)///這個提示的結果是1687,內容就只有前五個字符
mle_1.text = ls_text
FileClose(li_FileNum)
uj5u.com熱心網友回復:
關注,UPuj5u.com熱心網友回復:
首先確認一下這個檔案是不是UNICODE的,如果不是這樣操作就會有問題。其次看看有沒有特殊字符干擾了顯示。
我測了一下,UNICODE-2554長度正常。
uj5u.com熱心網友回復:
FileSeek(li_FileNum, 2)這句為什么?
檔案寫字板/ultraedit打開正常否?
感覺程式雖然很蹩腳但是問題不大,
把檔案上傳了看看。
uj5u.com熱心網友回復:
Pb幫助里說讀取unicode的檔案時要跳過頭兩個字符,不然讀出來的就只有一個?檔案在記事本里顯示正常呀
在ultraedit打開如下:
FF FE 31 00 09 00 31 00 09 00 00 00 09 00 00 00; ? ...1.........
09 00 00 00 09 00 00 00 09 00 31 00 31 00 31 00; ..........1.1.1.
往下我就不打了,看得眼花,復制出來粘貼的就只有一個?號,只能手打.
uj5u.com熱心網友回復:
跳過頭兩個字符據說是FileSeek(li_FileNum, 3)啊……uj5u.com熱心網友回復:
剛試驗了FileSeek(li_FileNum, 3),結果比FileSeek(li_FileNum, 2)還要糟糕,一樣只能讀出來前幾個字符,并且不能正確顯示,都顯示"?"uj5u.com熱心網友回復:
31 00 09 00 31 00 09 00這些都沒問題,00 00 就有問題了,你這檔案怎么生成的?
uj5u.com熱心網友回復:
檔案應該沒有問題,Windows的記事本都可以正確顯示其中的內容檔案是機器的串口發送的一個字串,沒有回車的
記事本顯示如下
1 20 081104 A S.FLE F HUMAN 0 0 2008-11-07 11:20:31 AMIKAC > 32 NOINTP AMPICI > 16 RESIST AZTREO > 16 NOINTP CEFAZO > 16 NOINTP CEFEPI > 16 NOINTP CEFOPE > 32 NOINTP CEFOXI > 16 NOINTP CEFTAZ > 16 NOINTP CEFTRI > 32 NOINTP CHLORA > 16 NOINTP GENTAM > 8 NOINTP IMIPEN > 8 NOINTP LEVOFL > 4 RESIST NITRO > 64 NOINTP NORFLO > 8 NOINTP PIPERA > 64 NOINTP PIRLIM > 20 SUSC TETRA > 8 NOINTP TICARC > 64 NOINTP TICCLA > 64 NOINTP TOBRAM > 8 NOINTP TRISUL > 2 RESIST
uj5u.com熱心網友回復:
那是因為記事本做了些特殊處理,最簡單的驗證方法是你用記事本打開什么都不動立即另存為unicode的,你會發現原來的和另存的不一樣(用ultraedit看)
uj5u.com熱心網友回復:
確認檔案是不是UNICODE很重要,發檔案以附件的形式傳到CSDN下載頻道里,然后把地址貼過來,大家測一下就知道怎么回事了。uj5u.com熱心網友回復:
按照AFIC的方法驗證,什么都不動立即另存為unicode的,果然發現原來的和另存的不一樣(用ultraedit看)我上傳了資源,說我上傳成功,然后怎么也找不到,顯示我的資源為空
uj5u.com熱心網友回復:
把檔案發上來.uj5u.com熱心網友回復:
檔案讀出tot_b后,用下面的代碼應該ls_result 最終使你想要的東西(如果你沒有連續的00和中文的話)long ll_lastpos = 1
blob{2} lbob_dummy
string ls_result
long i ,ll_length
ll_length = len(tot_b)
for i = 1 to ll_length
if blobmid(tot_b,i,2) = lbob_dummy then
ls_result += FromUnicode(blobmid(tot_b,ll_lastpos,i - ll_lastpos + 1))
i+=2
end if
next
uj5u.com熱心網友回復:
http://download.csdn.net/source/1076555這是我上傳的檔案,大家快來幫忙看看
uj5u.com熱心網友回復:
上邊少寫了一行,你用這個即可integer li_FileNum
blob tot_b
li_FileNum = FileOpen("1.txt",StreamMode!)
fileread(li_FileNum,tot_b)
fileclose(li_FileNum)
long ll_lastpos = 1
blob{2} lbob_dummy
string ls_result
long i ,ll_length
ll_length = len(tot_b)
for i = 1 to ll_length
if blobmid(tot_b,i,2) = lbob_dummy then
ls_result += FromUnicode(blobmid(tot_b,ll_lastpos,i - ll_lastpos + 1))
i+=2
ll_lastpos = i + 1
end if
next
messagebox('',ls_result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/99387.html
標籤:腳本語言
上一篇:常見SQL撰寫和優化
下一篇:資料庫入門
