Как читать все текстовые файлы в папке, ищущей ключевое слово? [dубликат]

У меня есть код для выполнения процесса в одном файле, может ли кто-нибудь изменить этот скрипт, чтобы он перебирал все файлы в каталоге «H: \ Letter Display \ Letters» с типом файла «.LTR» и сохранял все они:

 Const ForReading = 1
 Const ForWriting = 2

 Set objFSO = CreateObject("Scripting.FileSystemObject")
 Set objFile = objFSO.OpenTextFile("H:\Letter Display\Letters\LTRPRT__00000008720000000001NI-K-RMND.LTR",    ForReading)


 str1000 = "1000"
 str1100 = "1100"
 str1200 = "1200"
 str9990 = "9990"

 arrCommas1 = Array(14,31,41,59,70,81,101,111,124,138)
 arrCommas2 = Array(14,31,41,55,79,144,209,274,409,563,589,608,623)
 arrCommas3 = ArraY  (14,32,41,73,83,97,106,156,167,184,188,195,207,260,273,332,368,431,461,472,593,617,666,772,810,834,848,894,898)
 arrCommas4 = Array(14,31,41)

 Do Until objFile.AtEndOfStream
   strLine = objFile.ReadLine

   If Left(strLine, 4) = str1000 then
     intLength = Len(strLine)
     For Each strComma in arrCommas1
       strLine = Left(strLine, strComma - 1) + "," _
         + Mid(strLine, strComma, intLength)
     Next
   End If

   If Left(strLine, 4) = str1100 then
     intLength = Len(strLine)
     For Each strComma in arrCommas2
       strLine = Left(strLine, strComma - 1) + "," _
         + Mid(strLine, strComma, intLength)
     Next
   End If

  If Left(strLine, 4) = str1200 then
     intLength = Len(strLine)
     For Each strComma in arrCommas3
       strLine = Left(strLine, strComma - 1) + "," _
         + Mid(strLine, strComma, intLength)
     Next
   End If

  If Left(strLine, 4) = str9990 then
     intLength = Len(strLine)
     For Each strComma in arrCommas4
       strLine = Left(strLine, strComma - 1) + "," _
         + Mid(strLine, strComma, intLength)
     Next
   End If

   strText = strText & strLine & vbCrLf
 Loop


 objFile.Close

 Set objFile = objFSO.OpenTextFile("H:\Letter Display\Letters\LTRPRT__00000008720000000001NI-K-RMND.LTR",  ForWriting)
 objFile.Write strText
 objFile.Close

Любая помощь была бы высоко оценена!

Спасибо

7
задан 21 May 2013 в 13:48

2 ответа

Ваш текущий скрипт в основном делает следующее:

Set objFile = objFSO.OpenTextFile("...", ForReading)
Do Until objFile.AtEndOfStream
  strLine = objFile.ReadLine
  'do stuff with strLine and append to strText
Loop
objFile.Close

Set objFile = objFSO.OpenTextFile("...", ForWriting)
objFile.Write strText
objFile.Close

Для обработки всех файлов в данной папке вам просто нужно добавить внешний контур вокруг этого и соответствующим образом скорректировать некоторые инструкции:

[F2]
2
ответ дан 15 August 2018 в 15:58

Что еще лучше - сделать рекурсивную функцию, чтобы войти во все папки, которые находятся ниже вашей основной папки, и искать их тоже. Просто и идея:)

0
ответ дан 15 August 2018 в 15:58

Другие вопросы по тегам:

Похожие вопросы: