Basic4PPC怎么从文本文件读取和保存中文信息?

Discussion in 'Chinese Forum' started by gzg163, Oct 19, 2009.

  1. gzg163

    gzg163 New Member

    我试了一下,出来的都是?号,不知道是怎么回事。
     
  2. jeffrey8227

    jeffrey8227 Member Licensed User

    你将要读取的文本文件“另存为”——“编码”——选择“utf-8”

    这样就可以成功读取中文的文本文件了


    读取文本文件的代码是:

    Sub Globals
    'Declare the global variables here.

    End Sub

    Sub App_Start
    Form1.Show
    FileOpen(c,"text.txt",cRead)
    TextBox1.Text = FileReadToEnd(c)
    FileClose(c)
    End Sub
     
  3. redsuntv

    redsuntv Member

    我也遇到这个问题。希望读出的中文能显示在一个文本框里, 但遇到中文都就问号(?)。
    谁知道如何解决?
     
  4. jeffrey8227

    jeffrey8227 Member Licensed User

    晕倒,我不是给了解决方法了吗?
     
  5. redsuntv

    redsuntv Member

    我只是想读出来, 显示在文本框或列表框(listbox)里。
     
  6. jeffrey8227

    jeffrey8227 Member Licensed User

    你有没有仔细看过我给的代码?

    有没有看到textbox1.text?
     
  7. luby

    luby Member

    你说的另存为,是指要先将文本文件手工处理吗?可以不处理直接读出中文吗?
     
  8. jeffrey8227

    jeffrey8227 Member Licensed User

    你在创建这个文本文件的时候,不要保存为ANSI,直接保存为UTF-8就可以了

    不单单是WM,移动设备基本上都是只认UTF-8编码,WM上少部分程序可以认ANSI,不过B4P不支持
     
  9. luby

    luby Member

    JEFFREY,你好!
    谢谢你的及时回复:)
    我算是个新手了,只是对这个感兴趣.
    你提示的创建这个文件用UTF-8模式,我暂时还灭有找到好办法,我这个文件是这段代码创建的:
    'RESPONSE ,REQUEST 为HTTP的OBJECT, READER,WRITER为BINNARY的OBJECT

    Sub DownloadFile (LocalFile,URL)
    Response.New1
    Request.New1(URL)
    Response.Value = Request.GetResponse
    Msgbox("Download size: " & Response.ContentLength)
    Reader.New1(Response.GetStream,True)
    FileOpen(c1,LocalFile,cRandom)
    Writer.New1(c1,False)
    Dim buffer(4096) As byte
    count = Reader.ReadBytes(buffer(),4096)
    Do While count > 0
    Writer.WriteBytes2(buffer(),0,count)
    count = Reader.ReadBytes(buffer(),4096)
    Loop
    FileClose(c1)
    Response.Close
    Msgbox("File saved.")
    End Sub
    ============
    我暂时无法知道怎么用UTF-8的格式来写这个LOCALFILE

    不过我今天早晨起来不甘心,寻找了一个笨办法来解决这个读乱码的问题:


    Bitwise.New2(00936) '将BITWISE初始化为中文简体字符集的CodePage Encoding
    FileOpen(c1,"Newtxt.txt",cRandom) '打开文件
    reader.New1(c1,True) '读文件
    length = reader.ReadBytes(buffer(), 4096) '读出的文件长度
    string=bitwise.BytesToString(buffer(),0,length) '将读出的文件BYTES按照BITWISE的初始化代码转换字符集
    Msgbox(string)
    FileClose(c1)
    ===========
    需要引入一个BITWISE的OBJECT,由它来将读出来的文件的BYTES转换为00936也就是简体中文的字符集,运行结果总算通过.但是显得很别扭和笨拙:)
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice