1 (изменено: mers, 2020-10-24 21:44:41)

Тема: VBS: Сравнить две строки в csv

Приветствую всех,

поиском ничего не нашёл, решил так спросить.

Делаю первые шаги в VBS.
Нужно в csv файле снизу начать сравнивать строки.

Примет csv.

data;utc;set;mod;tz;sz,
20201013;08:00:00;2;4;48,5;125,
20201013;08:01:00;2;4;53,6;125,
20201013;08:02:00;2;4;37,3;128,
20201013;08:03:00;2;4;53,1;127,
20201013;08:04:00;2;4;53,4;127,
20201013;08:05:00;2;4;53,8;123

Если конечное число совпадает, то удалить полностью строчку.
Фокус на конечные числа в строке.
Например должно потом выглядеть так:

20201013;08:00:00;2;4;48,5;125,
20201013;08:02:00;2;4;37,3;128,
20201013;08:01:00;2;4;53,6;127,
20201013;08:01:00;2;4;53,6;123

Результат можно переписать в другой файл.
Пробовал сам, но что то не выходит.
Может кто помочь?
Буду очень признателен.

Dim FSO, infile, outfile, fqdn , mArray, mArray1, d1, utc1, st1, md1, tz1, sz1, d2, utc2, st2, md2, tz2, sz2
Const ForReading = 1
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set infile  = fso.OpenTextFile("I:\source\repos\vbs\input.csv", ForReading)
Set outfile = fso.OpenTextFile("I:\source\repos\vbs\output.txt", ForWriting, true)

Do Until infile.AtEndOfStream

  mArray = Split(infile.ReadLine, ";") 
  d1= mArray(0)
  utc1 = mArray(1)
  st1 = mArray(2)
  md1 = mArray(3)
  tz1 = mArray(4)
  st1 = mArray(5)
  
  fqdn = Split(infile.ReadLine, ",")(0)
  mArray1 = Split(fqdn.ReadLine, ";")
   d1= mArray1(0)
  utc1 = mArray1(1)
  st1 = mArray1(2)
  md1 = mArray1(3)
  tz1 = mArray1(4)
  st1 = mArray1(5)
  
   'WScript.Echo  sz1 & sz2
   'If LCase(sz1) = LCase(sz2) Then 
  ' else
  ' outfile.WriteLine d1 & ";" & utc1 & ";" & st1 & ";" & md1 & ";" & tz1 & ";" & sz1
 ' end if  
  If sz1 = sz2 Then 
  else
  outfile.WriteLine d1 & ";" & utc1 & ";" & st1 & ";" & md1 & ";" & tz1 & ";" & sz1 
  end if
Loop

infile.Close
outfile.Close True

2 (изменено: alexii, 2020-10-24 22:01:39)

Re: VBS: Сравнить две строки в csv

Но, Холмс, как?!!

20201013;08:05:00;2;4;53,8;123
20201013;08:01:00;2;4;53,6;123

Как из 08:05:00 получается 08:01:00?! Как из 53,8 получается 53,6?! И так далее…

И почему в последней строке нет запятой?

3

Re: VBS: Сравнить две строки в csv

alexii пишет:

Но, Холмс, как?!!

20201013;08:05:00;2;4;53,8;123
20201013;08:01:00;2;4;53,6;123

Как из 08:05:00 получается 08:01:00?! Как из 53,8 получается 53,6?! И так далее…

И почему в последней строке нет запятой?

Это просто пример, главное последние числа, 123, 127 и.т.д
Если последние числа одинаковы, нужно полностью убрать всю строку.
На предыдущие числа, значения не надо обращать внимание.
Запятую забыл поставить.