CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

关于vb中的文件操作编程问题?必加分!急!

楼主herrylong()2006-05-03 14:07:30 在 VB / 基础类 提问

$$*                     Pro/CLfile     Version   Wildfire   2.0   -   M080  
  $$->   MFGNO   /   MFG0002  
  PARTNO   /   MFG0002  
  $$->   FEATNO   /   25  
  MACHIN   /   UNCX01,   1  
  $$->   CUTCOM_GEOMETRY_TYPE   /   OUTPUT_ON_CENTER  
  UNITS   /   INCHES  
  LOADTL   /   1  
  $$->   CUTTER   /   2.000000  
  $$->   CSYS   /   1.0000000000,   0.0000000000,   0.0000000000,   0.0000000000,     $  
                          0.0000000000,   1.0000000000,   0.0000000000,   0.0000000000,     $  
                          0.0000000000,   0.0000000000,   1.0000000000,   0.0000000000  
  SPINDL   /   RPM,   1.000000,     CLW  
  RAPID    
  GOTO   /   17.0000000000,   18.0000000000,   10.0000000000  
  CYCLE   /   DRILL,   DEPTH,   1.200861,   IPM,   1.000000,   CLEAR,   0.100000  
  GOTO   /   17.0000000000,   18.0000000000,   0.0000000000  
  GOTO   /   23.0000000000,   13.0000000000,   0.0000000000  
  GOTO   /   17.0000000000,   27.0000000000,   0.0000000000  
  GOTO   /   17.0000000000,   42.0000000000,   0.0000000000  
  GOTO   /   17.0000000000,   48.0000000000,   0.0000000000  
  GOTO   /   23.0000000000,   45.0000000000,   0.0000000000  
  GOTO   /   23.0000000000,   51.0000000000,   0.0000000000  
  GOTO   /   23.0000000000,   59.0000000000,   0.0000000000  
  GOTO   /   23.0000000000,   65.0000000000,   0.0000000000  
  GOTO   /   34.0000000000,   65.0000000000,   0.0000000000  
  GOTO   /   34.0000000000,   58.0000000000,   0.0000000000  
  GOTO   /   34.0000000000,   53.0000000000,   0.0000000000  
  GOTO   /   34.0000000000,   47.0000000000,   0.0000000000  
  GOTO   /   42.0000000000,   47.0000000000,   0.0000000000  
  GOTO   /   42.0000000000,   53.0000000000,   0.0000000000  
  GOTO   /   42.0000000000,   58.0000000000,   0.0000000000  
  GOTO   /   42.0000000000,   65.0000000000,   0.0000000000  
  GOTO   /   42.0000000000,   75.0000000000,   0.0000000000  
  GOTO   /   54.0000000000,   75.0000000000,   0.0000000000  
  GOTO   /   63.0000000000,   81.0000000000,   0.0000000000  
  GOTO   /   68.0000000000,   81.0000000000,   0.0000000000  
  GOTO   /   73.0000000000,   81.0000000000,   0.0000000000  
  GOTO   /   78.0000000000,   81.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   81.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   73.0000000000,   0.0000000000  
  GOTO   /   78.0000000000,   73.0000000000,   0.0000000000  
  GOTO   /   73.0000000000,   73.0000000000,   0.0000000000  
  GOTO   /   68.0000000000,   73.0000000000,   0.0000000000  
  GOTO   /   63.0000000000,   73.0000000000,   0.0000000000  
  GOTO   /   63.0000000000,   62.0000000000,   0.0000000000  
  GOTO   /   63.0000000000,   53.0000000000,   0.0000000000  
  GOTO   /   54.0000000000,   44.0000000000,   0.0000000000  
  GOTO   /   54.0000000000,   32.0000000000,   0.0000000000  
  GOTO   /   34.0000000000,   24.0000000000,   0.0000000000  
  GOTO   /   42.0000000000,   24.0000000000,   0.0000000000  
  GOTO   /   63.0000000000,   24.0000000000,   0.0000000000  
  GOTO   /   63.0000000000,   32.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   44.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   40.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   36.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   32.0000000000,   0.0000000000  
  GOTO   /   83.0000000000,   23.0000000000,   0.0000000000  
  以上为我要处理的文件,我用  
  dim   str   as   variant  
  Open   "。。。。。"   For   Input   As   #1  
  Line   Input   #1,   str  
  得到的str内容就已经包括全文,可以判定全文的格式是内容全都在一行没有换行。而且它的数值不是single型,而全部是字符型(这个很麻烦)。我现在要把GOTO后面的坐标数值放入到数组中,经过运算后重新排序,生成与原文同样的格式文件。我的问题是:  
  如何准确地把这些字符数值放到数组如x()y()z()中,并且完成重排后把新的顺序覆盖掉原来的。  
  那个高手能帮助我,必加分!!  
  急,谢谢好心人! 问题点数:95、回复次数:5Top

1 楼of123()回复于 2006-05-03 14:39:25 得分 0

Dim   strData   As   String  
  Dim   strLine()   As   String,   strField()   As   String  
  Open   "。。。。。"   For   Input   As   #1  
  Line   Input   #1,   strData  
  Close   #1  
   
  strData   =   Mid(strData,   Instr(strData,   "GOTO/"))  
  strLine   =   Split(strData,   "GOTO/"))  
  n   =   0  
  For   i   =   0   To   Ubound(strLine)  
      If   strLine   >   ""   Then  
          strField   =   Split(strLine,   ",")  
          If   Ubound(strField)   >=   2   Then  
                  Redim   Preserve   x(n)  
                  Redim   Preserve   y(n)  
                  Redim   Preserve   z(n)  
                  x(n)   =   Val(strField(0))  
                  y(n)   =   Val(strField(1))  
                  z(n)   =   Val(strField(2))  
                  n   =   n   +   1  
          End   If  
      End   If  
  Next   i  
  ......Top

2 楼herrylong()回复于 2006-05-03 16:07:16 得分 0

另一半呢?我在楼上的版本上作了很多修改,总算能够提取数据了,但是后一半呢,如何把我运算出来的改变了顺序的x()y()z()数据原版原样的替换它。这位高手能不能劳神帮帮!如果顺利解决必献上分数。Top

3 楼of123()回复于 2006-05-03 16:41:19 得分 0

先把文件的前半部分读取并保存。  
   
  dim   strFirstHalf   as   string,   strSecondHalf   as   string  
   
  for   i   =   0   to   ubound(x)  
  strSecondHalf   =   strSecondHalf   &   "GOTO/"   &   Format(x(i),"#0.0000000000")   &   ","   &   _  
                                  Format(y(i),"#0.0000000000")   &   ","   &   Format(z(i),"#0.0000000000")  
  next   i  
  open   "...."   for   output   as   #1  
  print   #1,   strFirstHalf   &   strSecondHalf  
  close   #1Top

4 楼herrylong()回复于 2006-05-04 11:51:21 得分 0

不是怎么简单的,文件中goto不是全部在一起的,中间有可能夹杂另一些字符。如:  
  GOTO   /   17.0000000000,   18.0000000000,   10.0000000000  
  CYCLE   /   DRILL,   DEPTH,   1.200861,   IPM,   1.000000,   CLEAR,   0.100000  
  GOTO   /   17.0000000000,   18.0000000000,   0.0000000000  
  这个好像有点烦。Top

5 楼vbfunner(超级糖醋五花大瘦肉)回复于 2006-05-04 23:54:30 得分 0

你的研究的格式是  
  goto/   ,,这个就通过先读取所有再分析;  
  while(eof){  
                    if   mid(str,i,4)=="goto"  
                              i=i+4;  
                    你的后面的数据长度好象是12位的嘛,然后根据数据长度再写一下截取数据的函数.  
                  }  
  这样就可以了啊.  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:herrylong

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo