vb 读取txt到text

我请求 一个方法 如何把 txt文本文档的内容 读取到 vb的text框上,txt是万国码的。用vb6.0编写可以吗? 如果可以 能否列代码? 我的基础书什麽都没有讲到。

下面这个函数是读UniCode编码文件的,如果它读不出来的话,那么说明你的文件很可能是UTF-8编码。UTF-8的纯解码程序写起来比较麻烦,我一时也无法给你写出来。
Private Sub Command3_Click()
Text1.Text = UniCodeFileText("1.txt")
End Sub
(这个函数可不是抄来的,我给你现写的喔。许多人不成功的原因是因为他们不知道UniCode文件前面多了2个坑爹的识别字节。这两个文件标识符是为了告诉应用程序:这个文件是UniCode编码的。所以,函数里默认lngFileStart=3)
Function UniCodeFileText(ByVal strFileName As String, Optional lngFileStart As Long = 3) As String
Dim intFileNumber As Integer
Dim lngFileSize As Long
Dim lngBytesLength As Long
Dim bytBytes() As Byte
intFileNumber = FreeFile
Open strFileName For Binary As intFileNumber
lngFileSize = LOF(intFileNumber)
lngBytesLength = lngFileSize - lngFileStart
ReDim bytBytes(lngBytesLength)
Get intFileNumber, lngFileStart, bytBytes()
Close intFileNumber
UniCodeFileText = bytBytes()
End Function

如果你想把文本按行分割成字符串数组可以这样:
Dim strLines() As String
strLines() = Split(UniCodeFileText("1.txt"), vbCrLf)

最后告诉你几件事:
1、如果你想显示UniCode中某些国家的字符,需要对应字库支持才可以。这根本不关读文件的事。
2、我从来都是用二进制方式读文本文件,这种方式比顺序文件方便、快速。
3、VB6下面用二进制方式读UniCode文件,比读ANSI文件还要快、还要容易。因为VB6内部字符串编码就是UniCode编码,连编码转换都省了。
4、如果你说的文件是UTF-8编码,你只能借助API函数或者插件实现。纯代码写UTF-8编码很麻烦的。追问

如何 插入字庫啊,VB 可以顯示到了,但 只是 英文而已和部份繁體漢字。如何導入新德字庫?
韓文都不能顯示。VB6.0字體 沒有韓文字庫,字庫低。能否 加載WIN7的字庫或者XP的字庫
字庫 我同樣選擇TAHOMA 居然韓文 是????

追答

类似显示韩文这种问题是许多人头疼的问题。
好在本人不仅擅用VB、也擅长HTML。我给你的办法是用WebBrowser控件解决的。至少在我这里可以同时显示中文、韩文和日文了。

1、首先你要在“控制面板”——“语言和区域设置”——“高级”下“代码转换页”里选中了韩文。
2、你要在“部件”内加载:Microsoft HTML Object Library和Microsoft Internet Controls
3、需要一个WebBrowser1控件代替TextBox作为显示页面。
4、代码如下:
Private Sub Form_Load()
WebBrowser1.Navigate "about:blank"
End Sub

Private Sub Command3_Click()
Dim objDocument As HTMLDocument
Set objDocument = WebBrowser1.Document
objDocument.body.innerText = UniCodeFileText("1.txt")
End Sub

测试文件内容:
朝鲜日报(조선일보)是大韩民国的三大报纸之一朝鮮日報の主要記事をはじめ

WebBrowser1.Navigate 之后需要一定响应时间才能取document对象,否则会告诉你找不到对象。对于WebBrowser控件,需要事件驱动。比如DocumentComplete事件。具体如何使用WebBrowser控件,你需要学习相关的资料了。
使用WebBrowser控件只适合输出文本,但不适合输入文本。但至少这是我能想到的解决你这种问题的最简单办法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-11
不可以。

VB6.0 用的是 ANSI 编码格式,不支持 Unicode 编码格式。
楼上的两位的读取文件的做法是读取 ANSI 编码格式的文件的做法。

要想读取 Unicode 编码格式的文件,至少要 VB2003 才能办到。追问

那麼 你能否 找一個辦法 用 vb.net 編寫 一個插件。用vb6.0套入使用? 因為 我那個 文檔是有,韓日繁體中文的。 我要呢個 程序可以在任何語言的xp的電腦運行到

追答

我只专业学习过 VC6.0 和 VB6.0 。在 VB.NET 方面,我也是新手。只熟悉一些简单的操作。用得非常不熟练。所以,很抱歉,没法给你写 VB.NET 的插件。

追问

再幫忙 想想辦法吧,不能的話 就只有死板的用 image方法了,因為我是要把文檔經過text做線,轉移到label上做標題的.其实 vb6.0 根本就不能读取 unicode 的? 或者以 unicode方式储存

第2个回答  2011-09-11
Private Sub Command1_Click()
Dim a '变量未定义类型的则是变体型
Open "c:\1.txt" For Input As #1  '1是文件号
Input #1, a '将返回的值赋给变量a
Close #1
text1.text=a
End Sub
...........................
Private Sub Command1_Click() '读文件
Open "d:a.txt" For Input As #1
Dim Lines As String
Dim NextLine As String
Dim i As Integer

Do While Not EOF(1)
On Error Resume Next
Line Input #1, NextLine
Lines = Lines & NextLine & Chr(13) & Chr(10)
Loop

Close #1
Text1.Text = Lines
End Sub追问

嘿嘿 無法顯示 萬國碼

第3个回答  2011-09-12
API:

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Private Sub Command1_Click()
Dim l as string
DownloadFile "","C:\tmp.txt" '下载文件
Open "C:\tmp.txt" For Input As #1 '读取文件
Do Until Eof(1)
Line Input #1, l '一行一行读取
Text1.Text = Text1.Text & vbcrlf & l '写入到text1里面
Loop
Close #1
Kill "C:\tmp.txt" '删除临时文件
End Sub
9月
第4个回答  2011-09-11
Dim strs As String
strs = App.Path & "\001.TXT"
Open (strs) For Input As #1
Do While Not EOF(1)
Line Input #1, intext(1)
Option1(intext(0)).Value = True
Check1 = intext(1)‘读第一行
Check2 = intext(2)’读第二行
Loop
Close #1
那实际上编码转换问题,读取TXT文件用这两种方法都可以办到。追问

嘿 你這程序有漏洞啊,你有冇嘗試過才發表的

相似回答