vb 读取txt到text

我请求一个方法如何把txt文本文档的内容读取到vb的text框上,txt是万国码的。用vb6.0编写可以吗?如果可以能否列代码?我的基础书什麽都没有讲到。... 我请求 一个方法 如何把 txt文本文档的内容 读取到 vb的text框上,txt是万国码的。用vb6.0编写可以吗? 如果可以 能否列代码? 我的基础书什麽都没有讲到。 展开
 我来答
百度网友9bc4eae
2011-09-12 · TA获得超过1394个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:120万
展开全部
下面这个函数是读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控件只适合输出文本,但不适合输入文本。但至少这是我能想到的解决你这种问题的最简单办法。
yjf_victor
2011-09-11 · TA获得超过3527个赞
知道小有建树答主
回答量:1164
采纳率:100%
帮助的人:507万
展开全部
不可以。

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

要想读取 Unicode 编码格式的文件,至少要 VB2003 才能办到。
更多追问追答
追问
那麼 你能否 找一個辦法 用 vb.net 編寫 一個插件。用vb6.0套入使用? 因為 我那個 文檔是有,韓日繁體中文的。 我要呢個 程序可以在任何語言的xp的電腦運行到
追答
我只专业学习过 VC6.0 和 VB6.0 。在 VB.NET 方面,我也是新手。只熟悉一些简单的操作。用得非常不熟练。所以,很抱歉,没法给你写 VB.NET 的插件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xlzzc
2011-09-11 · TA获得超过7302个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1712万
展开全部
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
追问
嘿嘿 無法顯示 萬國碼
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火七暴十唯零23
2011-09-12 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.6万
采纳率:0%
帮助的人:5003万
展开全部
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月
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
richkey
2011-09-11 · 超过12用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:30.6万
展开全部
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文件用这两种方法都可以办到。
追问
嘿 你這程序有漏洞啊,你有冇嘗試過才發表的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式