CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

怎样从一个文本文件读取指定数据写入到另一个文本文件,谢谢!

楼主higaer()2003-12-04 09:49:39 在 VB / 基础类 提问

设有文件a.txt,其中存放了两行数据,数据用逗号分隔,现在要读取第一行的奇数位置的数据写入到另一个文本文件(b.txt)的第一行,类似地,把第二行的奇数位置的数据写入到第二行。  
  比如:  
  文件a.txt如下:  
  1,2,3,4,5  
  6,7,8,9,10  
  操作完成后,文件b.txt应为  
  1,3,5  
  6,8,10  
  因为我没有用过vb,希望各位能给出完整一点的代码,谢谢! 问题点数:100、回复次数:7Top

1 楼higaer()回复于 2003-12-04 09:55:53 得分 0

因为比较急,自己顶一把,请勿见怪!Top

2 楼feilong215(小飛)回复于 2003-12-04 10:16:33 得分 10

幫你up一下Top

3 楼of123()回复于 2003-12-04 10:27:41 得分 40

dim   str1,   str2   as   string  
  dim   arrTmp()   as   string  
  dim   i   as   integer  
   
  open   "a.txt"   for   input   as   #1  
  line   input   #1,   str1  
  line   input   #1,   str2  
  close   #1  
   
  arrTmp   =   split(str1,   ",")  
  str1=""  
  for   i   =0   to   Ubound(arrTmp)   step   2  
      str1   =   str1   &   srrTmp(i)   &   ","  
  Next   i  
  str1   =   left(str1,   len(str1)-1)  
   
  arrTmp   =   split(str2,   ",")  
  str2=""  
  for   i   =0   to   Ubound(arrTmp)   step   2  
      str2   =   str2   &   srrTmp(i)   &   ","  
  Next   i  
  str2   =   left(str2,   len(str2)-1)  
   
  open   "b.txt"   for   output   as   #1  
  print   #1,   str1  
  print   #1,   str2  
  close   #1Top

4 楼SoHo_Andy(冰)回复于 2003-12-04 10:31:50 得分 50

呵呵,终于搞定了,好久没做啦  
  调试通过,注意","为英文输入  
   
  Sub   提取奇数位数据(strSourceFile   As   String,   strTargetFile   As   String)  
          Dim   filenum                   As   Integer  
          Dim   fileContents         As   String  
          Dim   fileInfo()             As   String  
          Dim   i                               As   Integer  
          Dim   j                               As   Integer  
           
          Dim   tmpDemData   As   String  
          filenum   =   FreeFile  
          Open   strSourceFile   For   Binary   As   #filenum  
                  fileContents   =   Space(LOF(filenum))  
                  Get   #filenum,   ,   fileContents  
          Close   filenum  
          fileInfo   =   Split(fileContents,   vbCrLf)  
          '取出源文件行数,按照回车换行来分隔成数组  
           
          filenum   =   FreeFile  
          tmpDemData   =   ""  
          If   Dir(strTargetFile,   vbNormal)   <>   ""   Then  
                  Kill   strTargetFile  
          End   If  
          Dim   Filestr()   As   String  
   
          Open   strTargetFile   For   Append   As   #filenum  
                  '循环每一行  
                  For   i   =   0   To   UBound(fileInfo)   -   1  
                          Filestr   =   Split(Trim(fileInfo(i)),   ",")     '按照逗号分隔每一行的数据  
                          tmpDemData   =   ""  
                          For   j   =   0   To   UBound(Filestr)  
                                  '判断是否为奇数位  
                                  If   (j   Mod   2)   =   0   Then  
                                          tmpDemData   =   tmpDemData   &   Filestr(j)  
                                  ElseIf   j   <>   0   And   j   <>   UBound(Filestr)   Then  
                                          tmpDemData   =   tmpDemData   &   ","  
                                  End   If  
                          Next  
                          '保存一行如目标文件  
                          Print   #filenum,   tmpDemData  
                  Next  
          Close   #filenum  
          MsgBox   "完毕"  
  End   Sub  
   
  Private   Sub   Command1_Click()  
          提取奇数位数据   "d:\aa.txt",   "d:\bb.txt"  
  End   Sub  
   
  结贴吧  
  Top

5 楼higaer()回复于 2003-12-04 10:34:12 得分 0

好,谢谢了!Top

6 楼szyhy810518()()回复于 2003-12-04 10:36:16 得分 0

 
          Dim   strData   As   String  
          Dim   arrStr()   As   String  
          Dim   iIndex   As   Integer  
           
           
          Open   "a.txt"   For   Input   As   #1  
          Open   "b.txt"   For   Binary   As   #2  
           
          Do   While   Not   EOF(1)  
                  Line   Input   #1,   strData  
                  arrStr   =   Split(strData,   ",")  
                  For   iIndex   =   0   To   UBound(arrStr)   Step   2  
                          Put   #2,   ,   arrStr(iIndex)  
                          If   iIndex   +   2   <=   UBound(arrStr)   Then  
                                  Put   #2,   ,   ","  
                          End   If  
                  Next  
                  Put   #2,   ,   vbCrLf  
          Loop  
          Close   #2  
          Close   #1  
  Top

7 楼higaer()回复于 2003-12-04 10:37:46 得分 0

还有人跟进啊,我想加分,怎么加不了  
  最大只能给100么,真是奇怪的限制~Top

相关问题

  • 读取文本文件写入ACCESS数据库的问题
  • 怎么读取和写入文本文件的内容???
  • 文本文件读取写入的问题(急)
  • 文本文件,如何读取、删除、写入某一行
  • 如何指定读取文本文件的某一行
  • 只读取文本文件的指定行
  • 有没有办法读取文本文件中指定行
  • 如何读取文本文件中指定的数据
  • 怎么读取文本文件的指定行数内容呢?
  • 如何读取文本文件指定行?

关键词

  • 数据
  • 文件
  • 文本文件
  • tmpdemdata
  • filenum
  • 奇数
  • 写入
  • filestr
  • arrtmp
  • arrstr

得分解答快速导航

  • 帖主:higaer
  • feilong215
  • of123
  • SoHo_Andy

相关链接

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

广告也精彩

反馈

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