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

Прочитать последнюю строку в CSV файле

15.06.2020, 12:43. Показов 4230. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Написал VB скрипт для чтения CSV файла в WinCC RT Pro. подскажите как сделать так чтоб скрипт читал последние значения в таблице 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
Sub Open()
 
 
Dim fs, objTextfile, Wscript
Set fs = CreateObject("Scripting.FileSystemObject")
Dim arrStr
 
Set objTextfile = fs.OpenTextFile("C:\file\MAG8000_296305H319_2020-03-14 0700.csv", 1)
 
 
Do While Not objTextfile.AtEndOfStream
arrStr = Split(objTextfile.ReadLine, ";")
SmartTags("tag_1") = arrStr(5)
SmartTags("tag_2") = arrStr(0)
 
Wscript.echo strWaarde1 & " " & strWaarde2
 
Loop
 
objTextfile.Close
Set objTextfile = Nothing
Set fs = Nothing
 
End Sub
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2020, 12:43
Ответы с готовыми решениями:

Как в файле txt прочитать последнюю строчку? Есть ли встроенные методы Java для этого?
Как в файле txt прочитать последнюю строчку? Есть ли встроенные методы Java для этого?

Перейти на последнюю строку в файле
Есть файл в котором несколько строк...как мне перейти на последнюю строку для работы именно с ней(например поиска в ней подстроки)?

Найти последнюю строку в текстовом файле
Как найти последнюю строку в текстовом файле ?

12
6969 / 2863 / 1100
Регистрация: 06.06.2017
Сообщений: 9,713
15.06.2020, 14:05
Цитата Сообщение от Раби Посмотреть сообщение
чтоб скрипт читал последние значения в таблице
Сколько, из какого столбца и в каком виде?
0
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
15.06.2020, 14:24  [ТС]
На скрине CSV файла указал красным столбцы для чтения, важно чтоб скрипт читал просто последнюю строку в файле.
0
6969 / 2863 / 1100
Регистрация: 06.06.2017
Сообщений: 9,713
15.06.2020, 17:30
Лучший ответ Сообщение было отмечено Раби как решение

Решение

Visual Basic
1
2
3
4
5
6
7
CSV = "Test.csv"
With CreateObject("ADODB.Stream")
  .Open: .CharSet = "Windows-1251": .LoadFromFile CSV
  .Position = CreateObject("Scripting.FileSystemObject").GetFile(CSV).Size - Len(.ReadText(-2))*1.5
  LastLine = Split(Split(.ReadText, vbNewLine)(1), ","): .Close
End With
MsgBox LastLine(0) & vbLf & LastLine(5)
Хотя правильней будет так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit: Dim n, LStr
Const CSV = "Test.csv"
'———————————————————————————
With CreateObject("ADODB.Stream")
  .Open: .CharSet = "Windows-1251": .LoadFromFile CSV
  .Position = CreateObject("Scripting.FileSystemObject").GetFile(CSV).Size
  Do: .Position = .Position - 2 - n
    If .ReadText(1) <> vbLf Then n = 0 Else n = 2: LStr = .ReadText(-2)
  Loop Until Len(LStr): .Close
End With
LStr = Split(LStr, ",")
'———————————————————————————
MsgBox LStr(0) & vbLf & LStr(5)
1
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
16.06.2020, 07:50  [ТС]
FlasherX, реализовал следующим образом, сработало.
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
27
28
Sub read()
Dim fso, f, field, MyZf
 
' Catch errors -- Fehler abfangen
 
 
' Create file object -- Objekt erstellen
Set fso = CreateObject("Scripting.FileSystemObject")
SmartTags("filename2") = "C:\file\MAG8000_344305H329_2020-04-09 0702.csv"
Set f = fso.OpenTextFile("C:\file\MAG8000_344305H329_2020-04-09 0702.csv", 1)
 
 
' Read values till end of file -- Werte bis zum Dateiende einlesen
Do While Not f.AtEndOfStream 
    MyZf = f.ReadLine
Loop
field = Split(MyZf, ";")
    
SmartTags("tag_1") = field(0)
SmartTags("tag_2") = field(3)
SmartTags("tag_3") = field(6)
 
' Tidy up -- Aufraeumen
fso.Close
Set f = Nothing
Set fso = Nothing
 
End Sub
0
6969 / 2863 / 1100
Регистрация: 06.06.2017
Сообщений: 9,713
16.06.2020, 08:40
Раби, вы перебираете все строки, для больших массивов это очень долго. Мои варинты гораздо быстрее...
И зачем тут Sub? Вы с vba-разделом этот, случаем, не спутали?
0
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
16.06.2020, 09:32  [ТС]
FlasherX, я пишу скрипт на WinCC RT Pro. тут Sub жестко закреплен без возможности удаления (скрин интерфейса оставлю под постом). Я бы сказал что тут неполная библиотека, поскольку некоторые примеры которые работают в Notepad++ на WinCC RT Pro. вызывают ошибку в синтаксисе. Я начал осваивать VBS неделю назад и по этому еще в процессе обучения. Следующая моя задача теперь в считывавший актуальных данных пост об этом я уже создавал в форуме ссылку оставлю здесь:Открытие csv файлов по дате и по отрывку в названий. Пытаюсь грамотно объединить ваши подсказки с моим скриптом для считывания данных.
0
6969 / 2863 / 1100
Регистрация: 06.06.2017
Сообщений: 9,713
16.06.2020, 09:41
Цитата Сообщение от Раби Посмотреть сообщение
Я бы сказал что тут неполная библиотека
Какая ещё библиотека?
Цитата Сообщение от Раби Посмотреть сообщение
поскольку некоторые примеры которые работают в Notepad++ на WinCC RT Pro.
Причины для этого могут быть совершенно разные.

Цитата Сообщение от Раби Посмотреть сообщение
Пытаюсь грамотно объединить ваши подсказки с моим скриптом для считывания данных.
Что-то пока не получается.
0
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
16.06.2020, 09:52  [ТС]
Причины для этого могут быть совершенно разные.
Исходя из этих причин я посчитал что тут неполная библиотека,
поскольку некоторые примеры которые работают в Notepad++ на WinCC RT Pro.
Думаю эти причины я выясню походу освоения VBS, а касательно
Что-то пока не получается.
По этому я и создаю запросы в форуме в поисках подсказки
0
6969 / 2863 / 1100
Регистрация: 06.06.2017
Сообщений: 9,713
16.06.2020, 09:56
Цитата Сообщение от Раби Посмотреть сообщение
я посчитал что тут неполная библиотека
Повторю вопрос:
Цитата Сообщение от FlasherX Посмотреть сообщение
Какая ещё библиотека?
Цитата Сообщение от Раби Посмотреть сообщение
По этому я и создаю запросы в форуме в поисках подсказки
Я дал вам посказки (решения запрошенного), но вы их у себя не реализовали.
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,827
17.06.2020, 18:47
Цитата Сообщение от Раби Посмотреть сообщение
VB для WinCC RT
какое-то 8-ое чувство мне подсказывает, что выбор C-интерфейса для общения будет правильным.
0
0 / 0 / 0
Регистрация: 09.06.2020
Сообщений: 22
23.06.2020, 08:23  [ТС]
FlasherX,
Цитата Сообщение от FlasherX Посмотреть сообщение
Какая ещё библиотека?
Я имел ввиду список стандартных функций, грешил на то что он не полный, но позже разобрался, ваша подсказка для открытия csv файлов по дате работают как часы я уже реализовал его на WinCC только появилась новая проблема, как бы я не пытался я не смог объединить вашу подсказку с моим скриптом для чтения файлов, я не совсем понимаю что нужно указывать в строке:
Visual Basic
1
Set F = fso.OpenTextFile(???????, 1)
и нужна ли она вообще?
Сейчас мой скрипт выглядит следующим образом.
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
27
28
29
Sub LastFileName()
 
Dim Folder, BeginN, oCol, F, fso, field, MyZf
 
Folder = "C:\Users\Rabi\Documents\MAG8000 Data"
BeginN = "MAG8000_300205H319"
'————————————————————————————
Set fso = 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 fso.Add F.DateCreated, F
Next
    CreateObject("Shell.Application").ShellExecute fso.GetByIndex(fso.Count-1)   
    Set F = fso.OpenTextFile(???????, 1) '-здесь был путь к csv файлу но я пытался их заменить переменными,  но это не дало результатов
' Read values till end of file -- Werte bis zum Dateiende einlesen
Do While Not F.AtEndOfStream 
    MyZf = F.ReadLine
Loop
field = Split(MyZf, ";")
    
SmartTags("MaterialFromFile") = field(0)
SmartTags("PressureFromFile") = field(3)
SmartTags("TemperatureFromFile") = field(6)
 
' Tidy up -- Aufraeumen
fso.Close
Set F = Nothing
Set fso = Nothing
 
End Sub
0
6969 / 2863 / 1100
Регистрация: 06.06.2017
Сообщений: 9,713
23.06.2020, 12:49
Цитата Сообщение от Раби Посмотреть сообщение
как бы я не пытался я не смог объединить вашу подсказку с моим скриптом
Я не вижу даже попыток что-то объединить с моим скриптом из этого топика. Повторяю — создайте тему со списком всех требуемых действий в результирующем скрипте, тогда будет проще понять, что вы хотите. Оффтопы разводить то там, то здесь не следует.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2020, 12:49
Помогаю со студенческими работами здесь

Как прочесть последнюю строку в текстовом файле
Слушайте ребят Это опять я помогите мне сделать такую хренатень чтоб а ладно смотритре program file; uses crt; var a:string; ...

Удалить последнюю пустую строку в текстовом файле
Здравствуйте. Искал очень долго решение, но ничего не нашел и сделать не вышло. Есть файл .txt в нем нужно удалить 2ю строку, она...

Как регулярно считывать последнюю строку в файле
Добрый день. Имеется текстовый файл. Он постоянно обновляется и в его конец дописываются строки. Необходимо считывать новую строку...

Получить самую последнюю длинную строку в файле
Ребят помогите пожалуйста, вот задачка: Дан текстовый файл получить самую последнюю длинную строку. Благодарю за внимание :)

В текстовом файле поменять местами первую и последнюю строку
В заданном текстовом файле поменять местами первую и последнюю строку. Результат вывести в другой файл


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru