关于put写文件的问题,焦急等待

kujiaku 2003-11-11 08:25:11
以下代码在写半角文字入文件时正常,但是在写全角文字时候不正常,会报告纪录长度不一致这样的错误,不知道什么原因,能否帮我更正。

Dim strS As String * 10
strS = "wo"

Dim filename As String
Dim filenum As Integer
filename = "C:\test.txt"
filenum = FreeFile
Open filename For Random As filenum Len = 10
Dim j As Integer
For j = 1 To 3
Mid(strS, 9, 2) = (Chr(13) & Chr(10))
Put #filenum, j, strS
Next j
Close #filenum
如果将strS的值改成“我”,就会出错
很着急修改,分不够可以再加,只要解决问题
我估计是因为全角文字和半角文字的原因,但是不知道怎么解决才好
...全文
110 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
purple.taro 2003-11-11
  • 打赏
  • 举报
回复
Mid(strS, 9, 2) = (Chr(13) & Chr(10))你可以把mid函数换成midb试试
kujiaku 2003-11-11
  • 打赏
  • 举报
回复
在满足每行记录的字节数为8的前提下写入记录,不是要改变记录的字节数来凑活记录,而是如何使双方都满足,即保证记录的字节数固定,又使每行记录的格式一致
purple.taro 2003-11-11
  • 打赏
  • 举报
回复
你的这个程序中记录长度是10而“我”字在算字符时是算一个,而作为字节算是两个如果你改一下这句就没有什么错误了(我做的是一个我了实验)

Open filename For Random As filenum Len = 11
试试看能不能达到这个效果


kujiaku 2003-11-11
  • 打赏
  • 举报
回复
答zxlyx(心诚)
Mid(strS, 9, 2) = (Chr(13) & Chr(10))
是使行末增加回车换行
kujiaku 2003-11-11
  • 打赏
  • 举报
回复
每行的数据格式好像用随机写文件很难做
而且又要每255行循环一次,从头开始将旧数据记录覆盖,因此用Print方法好像不行的
put #1, i , strS
strS是满足格式的字符串(字节数为8,最末是回车换行字符)
i为记录的行号
purple.taro 2003-11-11
  • 打赏
  • 举报
回复
Mid(strS, 9, 2) = (Chr(13) & Chr(10))
你的这句话起什么作用的?
射天狼 2003-11-11
  • 打赏
  • 举报
回复
Dim strS As String
strS = "我"

Dim filename As String
Dim filenum As Integer
filename = "C:\test.txt"
filenum = FreeFile
Open filename For Output As filenum
Dim j As Integer
For j = 1 To 3
Print #1, strS
Next j
Close #filenum
kujiaku 2003-11-11
  • 打赏
  • 举报
回复
我的msn是kujiaku1985@yahoo.co.jp
kujiaku 2003-11-11
  • 打赏
  • 举报
回复
我要的结果是这样的格式



每行的数据长度为8个字节,每行最末加上回车换行
能不能做到?
而且每行的内容也不是固定都是全角,也有可能是全是半角,也有可能是半角全角混合字符串
射天狼 2003-11-11
  • 打赏
  • 举报
回复
Dim strS As String
strS = "我"

Dim filename As String
Dim filenum As Integer
filename = "C:\test.txt"
filenum = FreeFile
Open filename For Random As filenum Len = 10
Dim j As Integer
For j = 1 To 3
Put #filenum, j, strS
Next j
Close #filenum
kujiaku 2003-11-11
  • 打赏
  • 举报
回复
这里先结贴
kujiaku 2003-11-11
  • 打赏
  • 举报
回复
改用filesystemobject去做同样的效果,速度好像比原来慢许多

7,771

社区成员

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

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