回 帖 发 新 帖 刷新版面

主题:[讨论]如何提取提取特定字符

如何将附件里面的4个文件中的特定字段如: “N101 T1 M6 ( 3" FACEMILL - 45 DEG - SHEAR INSERTS ),N102 T2 M6 ( 2.0 SANDVIK STACKMILL X 11 MM INSERTS )”全部提出来,按文件里面的顺序排列保存到excel里面,

附件里的4个文件是text格式
请大侠帮忙。本人万分感谢

回复列表 (共6个回复)

沙发

1.打开一个 txt 文件,并读入一个字符串变量
2.把你所说的特定字作为关键字,使用 instr 函数查找,取得特定字的起始位置
3.使用 Mid 函数获取这个特定字符串,排列保存到excel里面
4.重复第2第3步,把文件中的所有特定字提取出来
5.关闭这个 txt 文件
6.重复第1-第5步,把4个 txt 文件中的特定字全部提取出来

板凳

能否给出代码,谢谢,

本人是个菜鸟,有些函数不会,谢谢

3 楼

Option Explicit

Dim FindSt As String '欲提取的字符串

Private Sub Form_Load()
FindSt = "N101 T1 M6"
End Sub

Private Sub Command1_Click()
On Error GoTo inerr
Dim PName() As String, Ppath As String, z As String, st As String
Dim FindPos As Long, k As Long, i As Integer

With CommonDialog1
  .DialogTitle = "批量打开文件"
  .MaxFileSize = 32700      '加大文件名缓冲区
  .Flags = &H1204
  .Filter = "*.txt|*.txt"
  .ShowOpen                 '可使用Shift或Ctrl键多选
  st = .FileName
End With

Ppath = CurDir & "\"        '获取路径
st = Right$(st, Len(st) - Len(Ppath) - 1) & Chr(32) '获取去除路径后的所有文件名
st = Replace(st, " ", "`")
PName = Split(st, "`", -1)  '获取文件名

For i = 0 To UBound(PName)
  st = ""
  Open Ppath & PName(i) For Input As #1 '读文件
    Do Until EOF(1)
      Line Input #1, z
      st = st & z & vbCrLf
    Loop
  Close #1
  FindPos = InStr(1, st, FindSt)         '获取欲提取字符串的位置
  Do While FindPos
    z = Mid$(st, FindPos, Len(FindSt))   '提取字符串
    Debug.Print z                        '在这里处理提取的字符串,顺序排列保存到excel里面,你自己写一下代码
    FindPos = FindPos + 1
    FindPos = InStr(FindPos, st, FindSt)
  Loop
Next

Exit Sub
inerr:
Close
End Sub

4 楼


老师,在下是个菜鸟,中间那段代码我还是部会写,老师可否完成中间的过程,谢谢,
在下正在学习编程,钢起步,就希望有些完整的代码实例,学习和参考,希望老师们能够多多包涵,让你们费心了,花时间了,
在下非常感谢老师们的帮助

5 楼


老师,在下是个菜鸟,中间那段代码我还是部会写,老师可否完成中间的过程,谢谢,
在下正在学习编程,钢起步,就希望有些完整的代码实例,学习和参考,希望老师们能够多多包涵,让你们费心了,花时间了,
在下非常感谢老师们的帮助

6 楼

[[[[[[[[[[[[*****[b][color=FF0000][size=2]代做毕业设计[/size][/color][/b]*****]]]]]]]]]]]]
主营:
[color=FF0000][size=1]VB Delphi VC Access SqlServer[/size][/color]等
QQ: [size=1]383147818[/size]

我来回复

您尚未登录,请登录后再回复。点此登录或注册