在一文件夹下,有许多TXT文本文件,但是由于需要,想仅仅将文件名前三位为“ABC”的TXT文件进行处理,
文本内容为,比如 文件ABC01:st d ddd jj 12 22 gg
                          sF d dWW jj 52 22 QG
                          WW OO H7 23 RU 88 SF 
                        ......................
处理的要求如下:如果文件名前三位为“ABC”的TXT文件文本第六列为22则将相应的行数据保存为一个新的数据,剩下的其他数据生成另外一个文本。
上述文本原内容中的空格实际为TAB键,谢谢高手指教,用VB进行编程处理,谢谢!

解决方案 »

  1.   

        Dim i
        Dim strFileName
        Dim strData
        Dim strLines()
        Dim strFields()
        Dim strYourFolder
        Dim f1
        Dim f2    strYourFolder = "c:"
        strFileName = Dir(strYourFolder & "\abc*.txt")
        Do While Len(strFileName) > 0
            strFileName = strYourFolder & "\" & strFileName
            Open strFileName For Binary As #1
            strData = Input(LOF(1), 1)
            Close #1
            strLines = Split(strData, vbCrLf)
            strFields = Split(strLines(0), vbTab)
            If UBound(strFields) >= 5 Then
                If strFields(5) = 22 Then
                    '保存该行数据到指定文件
                    Open f1 For Binary As #1
                    Put #1, , strLines(0)
                    Close #1
                    
                    '保存剩下的数据到另外的文件
                    Open f2 For Binary As #1
                    For i = 1 To UBound(strLines)
                    Put #1, , strLines(i)
                    Next
                    Close #1
                End If
            End If
            strFileName = Dir()
        Loop
      

  2.   

    他是要把文件名为 ABC***.TXT里的 一个字段的值为指定值的记录过滤出来,另存到另一个文本,剩下的保存成原文本。我给他的想法是:
    1.把指定文件本导入到DATAGRID1(如果文本多的话,能不能遍历,把文件名ABC打头的文件导入)
    2.把有指定值的记录复制到另一个DATAGRID2,datagrid1中删除。
    3.如果要提交到数据库的,就直接提交,如果要保存到文本,两个datagrid都saveas一下。