导航
  • 全部
...

高手请进!文本文件中ASCII特殊字符的读取问题!急,在线等待!

qren25 2005-09-15 11:16:43
一个文本文件由各种ASC代码组成,由于其中的某些特殊字符虽然在文件中存在,但属于控制字符,没有具体的字符可以显示(例如 Asc码中 0 对应的就是NULL)导致读出来赋给String 后长度就可能变短。如何能正确地读出该文件中所有的字符,包括ASC(0)这种特殊的控制字符?
我的代码 如下
Dim oTextStream As TextStream
Set oTextStream = fso.OpenTextFile("C:\1.txt", ForReading, False, TristateFalse)
Do While oTextStream.AtEndOfLine <> True
strFileData = strFileData+oTextStream.readline
Loop
oTextStream.Close
Set oTextStream = Nothing
文件比较小时,上述代码可行,但文件长时就发生读出数据不正确的现象。
方便的话给一段确实可行的代码,马上给分!谢谢
...全文
给本帖投票
388 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qren25 2005-09-16
  • 打赏
  • 举报
回复
northwolves(狼行天下) 的方法很好,完全可以得到所有特殊字符。 ReDim b(LOF(1)) 这一句我没有使用,就可以了。
谢谢,结贴!
fishzone 2005-09-15
  • 打赏
  • 举报
回复
Do While oTextStream.AtEndOfLine <> True
strFileData = strFileData+oTextStream.readline
Loop

改成:

strFileData = oTextStream.ReadAll
wwh999 2005-09-15
  • 打赏
  • 举报
回复
MSDN上有介绍的.
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vbcn7/html/vatskchoosingamongfileiooptionsinvisualbasicnet.asp
Arx01 2005-09-15
  • 打赏
  • 举报
回复
顶,关注!
northwolves 2005-09-15
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim b() As Byte, x As String
Open "c:\123.txt" For Binary As #1
ReDim b(LOF(1))
Get #1, , b
Close #1
x = StrConv(b, vbUnicode)
MsgBox x
End Sub
qren25 2005-09-15
  • 打赏
  • 举报
回复
自己顶一下
qren25 2005-09-15
  • 打赏
  • 举报
回复
Open strFullPath For Binary As #1 在读二进制文件时遇到Asc(0)仍然出现问题,我用的代码如下
Open strFullPath For Binary As #1
Do While Not EOF(nFileIn)
Line Input #1, strExistSelfData
Loop
这种二进制文件怎么做才能完全读出文件中的所有内容,包括Asc(0)、空格等等 特殊字符
tlbbpcg 2005-09-15
  • 打赏
  • 举报
回复
倒不是结构不合理,他的文件中带有asc(0),那就是二进制文件,如果我没记错的话,fso模型是读不了二进制文件的。只能用open方法
seraph2 2005-09-15
  • 打赏
  • 举报
回复
不明白你们说什么,不过要是出现过多的错误的话我会采用字符串数组进行记录,也就是每一行是一个数组元素;
根据你说的问题,大家也只能给一个建议给你,类似于这种东西一般都是数据错误或者是结构不合理造成的!
northwolves 2005-09-15
  • 打赏
  • 举报
回复
直接用二进制方式读取

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部