文件中的一行数据,格式如下:
#RAWEPHEMA,COM2_4,0,74.5,SATTIME,1329,543990.000,00800008,97b7,1810;1,1329,547200,8b04c4b115264c520246872bc07da9e92d94166ff952859800001235f1c5,8b04c4b115ab52f28f26f77c5daebcf46302fc77d511dda10d32a785987c,8b04c4b113acfff3581f666d0004281af02e1c67bb33dd9affae1d52ff50*3310026d
用什么方法从文件中读取数据再用串口发送出去,要求每次发送一行的数据,文件中每一行的数据长度不一样,开头都以#号开始。最好能给一个代码的取例,我是新手,这个问题比较急,先谢谢了。。

解决方案 »

  1.   

    MSCOMM32控件
    读取文件内容分析出每一行,可以用TStringlist用'#'分割,发送的时候前面自己加一个 '#',这样比较简单,也可以pos自己找。
    将要发送的内容给控件的Output属性就行了,记得先打开串口。具体流程还要看你的协议怎么定义。
      

  2.   

    我用的SPCOMM,创建了一个tstringlist来读取文件,然后每次发送出去一行的数据,现在也可以,用tstringlist来读取大文件的话,这样操作是不是会比较慢啊。。
    还有就是,我发现SPCOMM好像有点不太稳定,我用串口监视工具发现有时我设的速率会设不上,它每次都发两次速率的配置,如我设的是57600,但第2次它发送配置时会发一个不是我设的速率,以下是我用串口监视工具记的内容,这是什么原因,
       Baud Rate: 57600
        Baud Rate: 2400
       StopBits: 1, Parity: No, DataBits: 8
        Port Closed
    有时是正常的,但都是发两次。用其它的程序,如WINDOWS自带的超级终端来打开串口时就不会出现这种情况,速率配置那项只发一次,且速率是正确的。
      

  3.   

    我自己没用过这个控件,公司以前用这个控件后出现一些问题旧同事搞不定就改用mscomm32了,我进公司后都用这个控件。
      

  4.   

    我一直用spcomm,没有觉得不稳定。这么多人都在用,应该没有大问题,一般的要求基本都能满足。