ildar
Осваивающий
- Сообщения
- 252
- Репутация
- 29
Есть csv-файл, вот кусок содержимого:
надеялся с помощью такого кода
Разделяя строки через разделитель (запятая), но оказалось что текст содержит подобные строки
где кусок "Образ Windows 2012 для серверов VB, DC, Service" сбивает весь порядок. Думаю можно занести текст в массив с помощью регулярного выражения, но ничего в голову не приходит. Какую я вижу тут закономерность? Часть текста в которой не нужно рассматривать запятые в качестве разделителя, выделена в кавычки. В других местах файла (файл большой), кавычки не используются. на примере этой строки что должно получится:
С регулярными выражениями работал, но эта задача мне оказалась не под силу. Надеюсь на Вашу помощь.
Спасибо!
Код:
CO-DIANA,co-vm02.co.essen,"DIGITAL ANALYTICS PRO – аналитическая OLAP-система",PoweredOn,2,4,170, 172.16.10.173,,VM02_store0
CO-DIRECTUM,co-vm05.co.essen,"co-directum - тестовый",PoweredOn,4,24,190, 172.16.10.96,Гилазов Фанис,SinelogyB_02 VM-SAN4
CO-DIRECTUM01,co-vm06.co.essen,"co-directum01 - рабочий",PoweredOn,8,12,290, 172.16.10.97,Гилазов Фанис,SinelogyB_02 VM-SAN4
CO-DIRECTUM-CA,co-vm07.co.essen,"Образ Windows 2012 для серверов VB, DC, Service",PoweredOn,2,4,40, 172.16.10.102,Гилазов Фанис,Database 1 (RAID 10)
CO-DM_Storage,co-vm05.co.essen,"Голова для хранилища ДМ",PoweredOn,4,8,3824, 172.16.10.75,Нестерова Наталья,VM-SAN1 VM-SAN4 DM_Storage-2(Synology814)
CO-EDO-OPTOVIK,co-vm08.co.essen,"Этлас",PoweredOn,2,4,100, 172.16.10.131,Чернов Андрей,SinelogyB_01
Код:
$j = 0
While 1
$sLine = FileReadLine($File)
If @error = -1 Then ExitLoop
$aArrayLine = StringSplit($sLine, ',')
For $i = 1 to UBound($aArrayLine) - 1
$aArrayOUT[$j][$i - 1] = $aArrayLine[$i]
Next
$j += 1
WEnd
Код:
CO-DIRECTUM-CA,co-vm07.co.essen,"Образ Windows 2012 для серверов VB, DC, Service",PoweredOn,2,4,40, 172.16.10.102,Гилазов Фанис,Database 1 (RAID 10)
Код:
$aArrayLine = ('CO-DIRECTUM-CA', 'co-vm07.co.essen', '"Образ Windows 2012 для серверов VB, DC, Service"', 'PoweredOn', '2', '4', '40', '172.16.10.102', 'Гилазов Фанис', 'Database 1 (RAID 10)')
Спасибо!