标题:请问如何对这个TXT文件进行分割?
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
已结贴  问题点数:5 回复次数:3 
请问如何对这个TXT文件进行分割?
现有一个数据txt文件,截取部分内容格式如下(详见附件文件):
001B84060000
001C84060000
……….
002484060000
002584060000
001684050000
001784050000
……….
002884050000
002984050000
001484040000
001584040000
……………
002A84040000
002B84040000
001284030000
001384030000
………
002C84030000
002D84030000
001084020000
001184020000
……
002E84020000
002F84020000
000F84010000
001084010000
………
002F84010000
003084010000
000D80000000
000E80000000
……….
003080000000
003180000000
000C80010000
000D80010000
……
003280010000
003380010000
000B80020000
000C80020000
……..
003380020000
003480020000
000A80030000
000B80030000
……….
401B40030001
401C40030001
………..
现在想将第七第八个字符相同的归纳到同一个txt文件,并且按照TXT文件生成的顺序从000.txt开始命名。(注意:第七第八个字符间隔N行后有可能重复,这种重复的不能和前面放到同一个文件中,例如上面的事例中03、02、01会有重复。)最后形成的格式如下所示:
001B84060000
001C84060000
……….
002484060000
002584060000
--------------------------------------------第七第八个字符都为06,以上部分写入000.txt
001684050000
001784050000
……….
002884050000
002984050000
--------------------------------------------第七第八个字符都为05,以上部分写入001.txt
001484040000
001584040000
……………
002A84040000
002B84040000
--------------------------------------------第七第八个字符都为04,以上部分写入002.txt
001284030000
001384030000
………
002C84030000
002D84030000
--------------------------------------------第七第八个字符都为03,以上部分写入003.txt
001084020000
001184020000
……
002E84020000
002F84020000
--------------------------------------------第七第八个字符都为02,以上部分写入004.txt
000F84010000
001084010000
………
002F84010000
003084010000
--------------------------------------------第七第八个字符都为01,以上部分写入005.txt
000D80000000
000E80000000
……….
003080000000
003180000000
--------------------------------------------第七第八个字符都为00,以上部分写入006.txt
000C80010000
000D80010000
……
003280010000
003380010000
--------------------------------------------第七第八个字符都为01,以上部分写入007.txt
000B80020000
000C80020000
……..
003380020000
003480020000
--------------------------------------------第七第八个字符都为02,以上部分写入008.txt
000A80030000
000B80030000
……….
401B40030001
401C40030001
--------------------------------------------第七第八个字符都为03,以上部分写入009.txt
………..

不知我是否说明白了,请教这个文本文件如何进行分割和命名?请不吝赐教!
temp1.rar (7.7 KB)


搜索更多相关主题的帖子: TXT 文件 分割 字符 写入 
2018-10-18 16:12
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:3 
拆分了192个文件,为了便于控制文件号,文件号从100开始
Private Sub Command1_Click()
  Dim TXT1, s, cur_bz
  Dim i, j
  Dim num1
  '读入文件到内存数组txt1
  Open App.Path & "\temp1.txt" For Input As #1
  s = StrConv(InputB(FileLen(App.Path & "\temp1.txt"), 1), vbUnicode)
  TXT1 = Split(s, vbCrLf)
  If TXT1(UBound(TXT1)) = "" Then ReDim Preserve TXT1(UBound(TXT1) - 1)
  Close #1
  '写入文件到100.txt,101.txt,...
  cur_bz = Mid(TXT1(i), 7, 2)
  num1 = 100
  Open App.Path & "\" & Trim(Str(num1)) & ".txt" For Output As #1'第一个文件
  For i = 0 To UBound(TXT1)
    If Mid(TXT1(i), 7, 2) = cur_bz Then '标志相同,写入当前文件
      Print #1, TXT1(i)
    Else'标志不同,关闭上一文件,打开下一文件
      Close #1
      num1 = num1 + 1
      Open App.Path & "\" & Trim(Str(num1)) & ".txt" For Output As #1
      cur_bz = Mid(TXT1(i), 7, 2)
      Print #1, TXT1(i)
    End If
  Next
  Close #1
  MsgBox ("完成拆分")
End Sub
2018-10-19 06:01
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:2 
  If TXT1(UBound(TXT1)) = "" Then ReDim Preserve TXT1(UBound(TXT1) - 1)
我不喜欢这样的写法
如果中间有空行呢?如果最后的空行不止一个呢?

我习惯在循环体内判断一下。
for ..
  if len(TXT1(i))>7 then  '如果当前行字符数达到8个以上,才去处理,否则忽略掉本行
    .....
  end if
next .
-------------------
生成带前导0 的三个数字长度的数字。
可以使用 Format 函数,如
Format(1, "000") ,得到 "001"

授人于鱼,不如授人于渔
早已停用QQ了
2018-10-19 10:31
xiaoshi112
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-2-10
得分:0 
学习了,谢谢版主。
2018-10-26 14:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490487-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.674984 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved