Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Как объединить много текстовых файлов в один Добавлено: 27.04.11 12:46  

Автор вопроса:  Pitkin
Всем доброго времени суток.

Товарищи я в скриптах не силен, уже перелопатил все мануалы по vbscript, но ничего не нашел
Как объединить несколько файлов, тут как раз все понятно. Но понадобилось объеденить около 200 маленьких текстовых файлов в один, а писать в скрипте имя каждого файла как то не сподручно. Подскажите, пожалуйста, кто может, как объединить все файлы в один. Буду очень признателен.

Вот код для объединения 2 файлов, что надо ковырять, чтобы много файлов объединить
Call OB_txt "C:\tmp\1.txt", "C:\tmp\2.txt", "C:\tmp\3.txt") 'запуск функции


Function OB_txt(in_fail1, in_fail2, out_file)
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim fso

Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile(in_fail1)
Set File2 = FSO.GetFile(in_fail2)

Set TextStream = File.OpenAsTextStream(1)
Set TextStream2 = File2.OpenAsTextStream(1)

Set out_file = FSO.OpenTextFile(out_file, ForAppending, True) ' создали обьединеный файл
str_f1 = TextStream.ReadAll() ' считали в переменную первый файл
str_f2 = TextStream2.ReadAll()' считали в переменную второй файл

out_file.WriteLine ("Это первый файл")
out_file.WriteLine (str_f1) ' записали в новый файл первый
out_file.WriteLine ("Это Второй файл")
out_file.WriteLine (str_f2) ' записали в новый файл второй

TextStream.Close
TextStream2.Close

out_file.Close

Set FSO = Nothing


End Function

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #1 Добавлено: 27.04.11 14:15
  1.  
  2. Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
  3.  
  4. JoinTXT "C:\temp"
  5.  
  6. Sub JoinTXT(strFolderPath)
  7. Dim objFolder, objFile, strTempText, strAllText
  8.  
  9. If objFSO.FolderExists(strFolderPath) Then
  10.     Set objFolder = objFSO.GetFolder(strFolderPath)
  11.     For Each objFile In objFolder.Files
  12.         strExt = LCase(objFSO.GetExtensionName(objFile.Path))
  13.         If (strExt = "txt") Or (strExt = "log") Then
  14.             strTempText = ReadFile(objFile.Path)
  15.             If strTempText <> "" Then
  16.                 strAllText = strAllText & strTempText & vbCrLf & "===== " & objFile.Name & " =====" & vbCrLf
  17.             End If
  18.             'objFile.Delete True   ' удалить файл
  19.         End If
  20.     Next
  21. End If
  22.  
  23. Set objFile = objFSO.CreateTextFile(strFolderPath & "\AllTextFiles.txt")
  24. objFile.Write strAllText
  25. objFile.Close
  26. End Sub
  27.  
  28. MsgBox "выход"
  29. Set objFSO = Nothing
  30. Wscript.quit
  31.  
  32.  
  33. Function ReadFile(strTempFilePath)
  34. On Error Resume Next
  35. Dim objTempFile, strText
  36.     Set objTempFile = objFSO.OpenTextFile(strTempFilePath, 1, False)
  37.     strText = objTempFile.Readall
  38.     objTempFile.Close
  39. ReadFile = strText
  40. End Function

Ответить

Номер ответа: 2
Автор ответа:
 Pitkin



Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 27.04.11 14:36
Урра! спасибо Вам огромное, не хочу показаться назойливым, вообще из полученного текстового файла возможно с помощью vbscript получить xls файл, чтобы строки были впоследствии были представлены в виде столбцов.
Ну то есть полученный файл выглядит примерно так:
142460066
387
180
20110426

142460100
395
207
20110426

Строки это будущие столбцы, как думаете получится это сделать?

Ответить

Номер ответа: 3
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #3 Добавлено: 27.04.11 15:03
с excel'ем не работал
а вообще, возможно все, было бы желание

Ответить

Номер ответа: 4
Автор ответа:
 Pitkin



Вопросов: 1
Ответов: 3
 Профиль | | #4 Добавлено: 27.04.11 15:06
Спасибо, огромное, буду пробовать :)

Ответить

Номер ответа: 5
Автор ответа:
 smgog



Вопросов: 0
Ответов: 2
 Web-сайт: http://true-style.ru/
 Профиль | | #5
Добавлено: 01.05.11 22:17
Спасибо и мне помогло

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам