热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打开文件如何把里面的数据读出来已用串口发送出去?

现在串口通信已经没什么问题了,现在就是打开文件,把数据读出来的问题,我把数据存在一个.txt文件中,文件很大,大概有1M那样吧,每一行是一包数据,每包数据都是以回车换行结尾的,我现在想每次从文件中读出
现在串口通信已经没什么问题了,现在就是打开文件,把数据读出来的问题,我把数据存在一个.txt文件中,文件很大,大概有1M那样吧,每一行是一包数据,每包数据都是以回车换行结尾的,我现在想每次从文件中读出一包数据然后利用串口发送出去,不知道哪位大哥做过这方面的内容,还望给予解答,小妹在此谢过了!!

Dim data() As Byte
Private Sub Command7_Click()
Open "d:\su\ning.txt" For Input As 1    
data() = StrConv(InputB$(LOF(1), 1), vbUnicode)'64k的限制
Close 1
End Sub

这是我试图想做的,但是没有成功,我想利用一个数组把数据读出来,但是我这样做好像文件的限制是64k,很大的文件是不行的,而且这样也不能保证我一次读出来的是一包数据,而且我运行了一下,data()中也没有读出数据来,希望大家帮帮忙,我头已经大了

14 个解决方案

#1


没有人帮忙阿,大家帮忙看看吧

#2


分割文件,自定义大小,每组数据后面要加1个自定义的结束符

对方收到后,组合成1个文件

#3


文件不分割不行吗,能不能有参考的代码阿,我利用数组顺序得读下去,事先知道一共有多少包数据,弄一个循环,每次读一行不行吗
我每一行的数据格式都是固定的
像这样:$DATA123456NXCVNBNNNNNNNNNNN\r\n
        $DATAIIIII0000000SJJJJJJJJJJ\r\n
        ……
        $DATA000000007777777AAAAAAAA\r\n

存在一个文本文件里,高手帮忙了,弄好后加倍给分了

#4


数组没有限制,所谓限制,是你用了 TEXT 吧?你可以改用 richtext

#5


Dim data() As Byte
Private Sub Command7_Click()
Open "d:\su\ning.txt" For Input As 1    
Do While Not EOF(infile)
   Line Input #infile, one_line
   p=len(one_line)
   '得到一行数据,然后串口发送处理
   DoEvents
loop
Close 1
End Sub

#6


学习

#7


大汗天子:
非常感谢你
你的那个p定义的是个什么类型阿,另外想你这么写的话,我需不需要知道我文件里一共有多少包数据呢?Dim data() As Byte 这句不要也可以吧,直接把p发送出去,像下面这样:

Private Sub Command7_Click()
Open "d:\su\ning.txt" For Input As 1    
Do While Not EOF(infile)
   Line Input #infile, one_line
   p=len(one_line)
   mscomm1.output=p  '估计这样编译不能通过
   DoEvents           ‘这句话不理解,你是让我写串口发送事件的吗?
loop
Close 1
End Sub

这样的话好像也不能循环读出我文件中的数据呢,只能读出第一行吧
求正解,谢谢

#8


dim p as long

这就是循环按行读取你的文本文件阿,
one_line里面的内容就是你文本中的一行数据

得到了这行数据,你该怎么处理,按什么方法用串口发送就自己处理了洛

p是一行文本的长度,这里没什么用处,具体发送得你自己处理

Private Sub Command7_Click()
dim one_line as string
Open "d:\su\ning.txt" For Input As 1    
Do While Not EOF(1)
   Line Input #1, one_line
   '得到一行数据存于one_line中,然后在这里处理串口发送

   DoEvents  '其实这里用sleep比较好,等待一会在取下一行数据
loop
Close 1
End Sub

写快了,没把infile替换成1

#9


Private Sub Command7_Click()
dim one_line as string
dim i as Long
Dim data() As String 
i=-1
Open "d:\su\ning.txt" For Input As #1    
Do While Not EOF(1)
  i=i+1 
  ReDim Preserve data(1 To i)
  Line Input #1, data(i)

   DoEvents 
loop
Close #1
End Sub

这个不知道行不行,DATA()中应该有数据了。

#10


6742^_^
我按你的方法调试,出现:错误9   下标越界     是这一行ReDim Preserve data(1 To i)

不知道怎么回事

#11


另外你那个i=-1是什么意思?谢谢

#12


我利用zq927的方法试了一下,可以了。非常感谢感谢楼上所有回复的热心人,另外我现在有个问题,我的下位机一次只能接收8包数据,然后下位机会给上位机发送一个暂停数据发送的命令stop,等下位机处理完这8包数据会发送一请求发送命令start命令,你说像这种情况该怎么处理,是不是应该在上面的程序中加上一些限制条件,我想的是这样的
d(0)是我在mscomm接收事件中,把接收来的数据放在d(0)中

d(0)="$stop\r\n" 不知道可不可以这样子写?

if d(0)="$stop\r\n"  then 
  等待还是关闭串口发送??       '这个地方是不是应该弄一个延时,但延时多久该怎么确定呢,因为不知道下位机 什么时候处理完???   另外这条语句应该放在mscomm接收事件中吧?
end if

if d(0)="$start\r\n" then 
  发送数据       ‘这句应该加在上面读文件中嘛,加在上面那程序运行是首先等下位机发送了请求发送数据命令之后才能发送数据,我现在想第一次点发送数据命令时先发出8包,以后有请求了再发,不知道这样可不可以实现???   
end if 

上面的问题有好多疑问不是很确定,请高手给与解答,谢谢

#13


学习中,等待答案!!

#14


先给一点分吧,很谢谢大家,希望大家能继续帮我解决上面的问题,虽然我分不多,但还是会讲信用的

推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
author-avatar
慕容春
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有