Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
VBS

VBS для объединения CSV файлов

24.06.2020, 14:17. Показов 5400. Ответов 22
Метки csv, vbs (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Столкнулся со следующей проблемой, у нас есть 108 расходомерных устройств которые регулярно отправляют отчет в виде "CSV" файлов с датами на хвосте (MAG8000_296305H319_2020-02-08 0403, MAG8000_296305H319_2020-02-26 0701). Скрипт для чтения файла с последней датой сохранения подсказали в этом форуме (прикреплю ниже). Теперь появилась новая задача: можно ли новые считанные CSV файлы объединять в один архивный CSV файл например: MAG8000_296305H319.csv где собраны записи за весь период. При этом чтоб скрипт делал запись нового файла в архивный файл однократно, во избежания дублированных записей при каждом вызове скрипта.

Скрипт для чтения CSV файла с актуальной датой:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Explicit
Dim Folder, oCol, F, CSV, n, Field
Const BeginN = "MAG8000_296305H319"
Folder = CreateObject("WScript.Shell").SpecialFolders(16) & "\MAG8000 Data"
'———————————————————————————————————————————————————————
Set oCol = CreateObject("System.Collections.SortedList")
For Each F In CreateObject("Scripting.FileSystemObject").GetFolder(Folder).Files
  If StrComp(Right(F, 4), ".csv", 1) = 0 And InStr(F.Name,_
  BeginN) = 1 Then oCol.Add F.DateCreated, F.Size & "|" & F
Next
CSV = Split(oCol.GetByIndex(oCol.Count - 1), "|")
Set oCol = Nothing
 
With CreateObject("ADODB.Stream")
  .Open: .CharSet = "Windows-1251"
  .LoadFromFile CSV(1): .Position = CSV(0)
  Do: .Position = .Position - 2 - n
    If .ReadText(1) <> vbLf Then n = 0 Else n = 2: Field = .ReadText(-2)
  Loop Until Len(Field): .Close
End With
Field = Split(Field, ";")
'———————————————————————————————————————————————————————
SmartTags("filename2")           = CSV(1)
SmartTags("MaterialFromFile")    = Field(0)
SmartTags("PressureFromFile")    = Field(3)
SmartTags("TemperatureFromFile") = Field(6)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2020, 14:17
Ответы с готовыми решениями:

Нужен код для объединения файлов txt в один с переносом по строке
Вообщем задача такая: в папке есть много много файлов txt с email в каждом, нужен код чтобы объединить их все в один с переносом по строке,...

Макрос для объединения 2 файлов в сводную таблицу
Друзья, не получается макросом создать сводные таблицы. Во вложении есть файл инвойс и файл упаковочный. На их основе нужно сделать файл...

Разбиение CSV файла на много csv файлов по разделителю
Здравствуйте, есть файл в который нужно разделить, но не ровно по 30 строк например, а по 25, 23, 27. Как это можно сделать?

22
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
01.07.2020, 06:38  [ТС]
Студворк — интернет-сервис помощи студентам
FlasherX, спасибо заработало. И последний вопрос на засыпку)). Как правильно прописать адрес папки чтоб объединенные файлы сохранялись в другой папке? Прописал 12 и 15 строку следующим образом, но как всегда не работает.
Visual Basic
1
2
3
4
LogFile = Folder & "\MAG_8000\Join_" & BeginN & "_CSV.log"
  oItems.Filter 8256, BeginN & S & "_*.csv": n = 0: c = 0: Last = ""
  If oItems.Count Then
    Set JoinCSV = oFSO.OpenTextFile(Folder & "MAG_8000\Join_" & BeginN & S & ".csv", 8, True)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
01.07.2020, 09:26
Раби, папка MAG_8000 должна существовать внутри MAG_8000 Archive, а бэкслэш перед её именем должен быть в обеих строках.
0
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
01.07.2020, 12:58  [ТС]
FlasherX, сделал, заработало, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.07.2020, 12:58

Функции для создания CSV файлов
Мне нужно создать CSV файл. Есть ли какие нибудь специальные функции в php для этих целей и если нет, то может кто знает где взять готовую...

Написать функцию для объединения содержимого двух двоичных файлов одного и того же типа в новом файле
Здравствуйте!Помогите,пожалуйста,написать код 2)Написать функцию concat_file(filenameA,filenameB,filenameAB),позволяющую объединить...

Доработать программу для экспорта файлов .csv в .xls
Есть шедевр говнокода на делфи, исходники которого мне увы недоступны, который генерирует (немного криво) отчетность в .csv. Мне нужно их...

Восстановление файлов после их объединения
Недавно создавал тему про программу, объединяющую несколько файлов в один, но предусматривающую возможность восстановления файлов. С...

Ошибки js после объединения файлов в один
Всем привет. Есть сайт на joomla, на котором работает куча модулей и подключена куча js файлов. Решил я заняться объединением и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru