急急急!VB:我把一个文本分成了五包,每包六百字节,最后一包不满怎么办?

来自:    更新日期:早些时候
VB中怎样把字节写入txt文本里~

你好!就如你那样写就可以完成啦!不过我发现你代码里少了关闭文件“Close #1”这样写吧:
Private Sub Command1_Click()
Dim aa As Byte
FileNum=FreeFile'使用FreeFile函数生成系统没有使用的文件号
aa = "&H9 & &H18 & &H10 & &H14 & &H3B & &H3B & &H11D & &H1C & &H1"
Open "c:\w.txt" For Output As #FileNum
Print #FileNum, aa
Close #FileNum
End Sub

Private Sub Command1_Click()
Dim b() As Byte
b = byt(77)
For i = 1 To 8
Text1.Text = b(i) & Text1.Text
Next i
End Sub
Private Function byt(asc As Integer) As Byte()
'这个函数的参数是要转换的字符的ascii码
'传出保存二进制各个位的数组
Dim b(8) As Byte
'循环由低位到高位得到二进制数,保存到数组
For i = 1 To 8
b(i) = asc Mod 2
asc = asc \ 2
Next i
byt = b
End Function

dim data as byte
do while not eof(#文件号)
get #1,,data
loop
data读入的就是8位数值

实际上你缺少一个数据结束的标志,这个标志太短自然不行,太长也浪费,一般设置成32位或者16位?呵呵,自己实验吧。
如果数据用于传输,我想这个判断标志应该是要有的,否则后患无穷!
因为你的大小限制就是600字节,所以有可能出现结束标志位置不够的情况。解决的办法就是,为结束标志多留出一些空间。
在数据显示的时候,我们要判断一下是否遇到结束标志,也就是相当于文件的Eof,遇到之后后面的数据就不要了。

在每一个包的开始设置一个包长部分,如果包大小为600个字节,你用开始的两个字节表示包中内容的实际长度就可以了,包格式类似于:

内容长度(两个字节)+内容(最大不超过600字节)

这样包的总长度最大为602字节。


急急急!VB:我把一个文本分成了五包,每包六百字节,最后一包不满怎么办?视频

相关评论:
  • 15794302201VB程序问题,急急急,求助!
    鬱清琬1、提供界面让用户输入,只要一对文本框输入坐标,采用多次输入的方式(每次输入一个点)。在两个文本框输入坐标(x,y)后点击“添加”按钮,保存该坐标,如此循环录入即可。最好用一个标签提示当前已经输入的坐标。可以用二维数组保存所有已经输入的坐标(当然因为个数不确定,用集合Collection更好)。至于...

  • 15794302201<VB急>如何得到某个文件夹中所有的文本名称,包括隐藏的
    鬱清琬Dim S As String, tS As String tS = Dir(Text1.Text & "\\*.txt", vbHidden Or vbNormal Or vbReadOnly)Do While tS <> ""S = S & tS & vbCrLf tS = Dir Loop MsgBox S

  • 15794302201VB读写TXT文本,急急急 数据间有多个空格
    鬱清琬Private Sub Form_Load()Dim StrTemp As String Open "C:\\1.TXT" For Input As #1 Open "C:\\2.TXT" For Output As #2 While Not EOF(1)Line Input #1, StrTemp Print #2, Left$(StrTemp, 4)Print #2, Mid$(StrTemp, 6, 4)Print #2, Mid$(StrTemp, 11, 4)Print #2, Right$...

  • 15794302201怎么用vb把txt记事本里面的n组成绩进行从大到小的排序,并且取前三组...
    鬱清琬用Binary或Input取得文本内容 用Split取行 用Right获取每行内容右边两个字符存入组 冒泡比较获得的数进行排列 获取三个最大数 你急我懒。对不起,无代码

  • 15794302201vb急急急!
    鬱清琬Abs(b + c) + a * Int(Rnd + 3) + Asc(Chr(65 + a))= Abs(2 - 3) + 3 * Int(Rnd + 3) + Asc(Chr(65 + 3))= Abs(-1) + 3 * Int(3.xxxx) + Asc(Chr(68))= 1 + 3 * 3 + 68 = 1 + 9 + 68 = 78 ...

  • 15794302201求一个用VB做的简单文本编辑器
    鬱清琬frmAbout.Show 1 End Sub Private Sub mnuBackColorItem_Click(Index As Integer)Select Case Index Case 0 ' Set BackColor to Red txtEdit.BackColor = RGB(255, 0, 0)Case 1 ' Set BackColor to Green txtEdit.BackColor = RGB(0, 255, 0)Case 2 ' Set BackColor to Blue...

  • 15794302201VB中文本框换行---急!!!
    鬱清琬我本来是第一个回答的,为了把第二,三个问题也解决,修改答案后就成最下边一个了 1.--- 把Text4的MultiLine属性设置成True 复制下边的代码:Private Sub Form_Load()Text4.Text = ""End Sub Private Sub Command1_Click()Text4.Text = Text4.Text + Text1.Text + Text2.Text + Text3....

  • 15794302201水杨酸护肤\/毛孔堵塞(痘痘,急!!!o(∩_∩)o!!!)
    鬱清琬至于哪些坑,我劝你别费劲了,什么都没用,别看电视上的广告,都是夸大的,没用,我一个朋友就上过当了,现在照我说的,脸上以经没哪么严重了~~~最后,你问的那些产品中,我推荐你用贝佳斯的绿泥每周来做个周护清洁,虽然贵些但确实好用,再说了那一大罐500ML,一周用一次的话,可以用好久.而且...

  • 15794302201VB的TEXT控件怎么换行?
    鬱清琬1,先在窗体添加 Text1控件;2,设置 Text1.MultiLine = True 3,在Text1控件显示中,添加换行信息,如:Text1 = "VB的TEXT" & vbCrLf & "换行显示。"显示效果:

  • 15794302201紧急求助!VB作业!
    鬱清琬Dim Lx(3) As Single Dim X As Single Dim Hj As Single Private Sub Command1_Click()Dim i As Integer X = Val(Text1.Text)For i = 0 To 3 If Option1(i).Value = True Then If i = 3 Then Hj = (1 + (i + 2) * Lx(i) \/ 100) * X Else Hj = (1 + (i + 1...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网