Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Текст по столбцам. Excel. VBS

Ответить
Настройки темы
VBS/WSH/JS - [решено] Текст по столбцам. Excel. VBS

В Поисках Истины


Сообщения: 802
Благодарности: 135


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: LilLoco
Дата: 30-10-2012
Добрый день, Уважаемые.

Столкнулся с проблемой. Vbs пока что только осваиваю, поэтому прошу сильно не пинать.
В общем имеется текстовый файл с такой структурой:
PHP код: Выделить весь код

25/10/2012;08:57:49;37.4639600;55.8085733;15 
25
/10/2012;08:57:50;37.4639600;55.8085733;15 
25
/10/2012;08:57:51;37.4639600;55.8085733;18
................................................................................ 

где первая и вторая колонка - дата и время соответственно.
Файл довольно большой, порядка 100000 строк и более.
Средствами VBS этот файл открывается в Excel (2010), и при помощи
Код: Выделить весь код
Dim app
Set app = CreateObject("Excel.Application")
...........
app.Selection.TextToColumns app.ActiveSheet.Range("A1"), 1, 1, 0, 0, 0, 0, 0, 1, ";"'нашел где то в просторах интернета
разбивается на столбцы.
При этом первый столбец не меняет формат на "Дата". Да и при любом формате, уже вручную, остается без изменений.
Если же все сделать ручками в экселе, то при разбивке строк на колонке все хорошо работает.
Думаю причиной всему являются параметры процедуры TextToColumns, но пока не могу определить конкретику.
Поэтому прошу Вас помочь мне.
Заранее благодарен.

ай, ай, ай. Не в той ветке создал( перенесите пожалуйста!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 12:16, 30-10-2012

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Iska:
Я просто глазами всё искал именно упомянутую мнемоническую константу. »
Простите, ввел Вас в заблуждение =(

Цитата Iska:
Можете выложить часть файла »
Да, конечно.
PHP код: Выделить весь код

04/10/2012 15:24:23;[GSM Init SMGSMRead signal 31 strenght.
04/10/2012 15:24:25;[GSM Init SMGSMRead signal 31 strenght.
04/10/2012 15:24:27;[GSM Init SMGSMRead signal 31 strenght.
................................. 

Вот так вот выглядит файл.

Цитата Iska:
в принципе, сам формат дата/время поддерживается »
Угу, если делать, опять же, вручную - все работает.

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 08:05, 01-11-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата LilLoco:
если делать, опять же, вручную - все работает. »
читать дальше »
Код: Выделить весь код
Option Explicit

Const xlDelimited = 1
Const xlDoubleQuote = 1
Const xlNormal = &HFFFFEFD1


Dim strFileNameLog
Dim strFileNameSave

Dim objWorkbook


strFileNameLog  = "E:\Песочница\0196\0002.txt"
strFileNameSave = "E:\Песочница\0196\0002.xls"

With WScript.CreateObject("Excel.Application")
	.Workbooks.OpenText strFileNameLog, 1251, 1, xlDelimited, xlDoubleQuote, _
		False, False, True, False, False, False, False, _
		Array(Array(1, 4), Array(2, 1))
		
	For Each objWorkbook In .Workbooks
		If objWorkbook.FullName = strFileNameLog Then
			With objWorkbook
				.SaveAs strFileNameSave, xlNormal
				.Close
			End With
			
			Exit For
		End If
	Next
	
	.Quit
End With

WScript.Quit 0

— более ничего не менял. Есть один момент: в первом файле даты были в непонятном формате: символ «/» обычно используется в формате даты «MM/DD/YY», а там явно было «DD/MM/YY». Тем не менее, Excel верно их распознал без дополнительных указаний. А в каком формате даты в новом файле?

Отправлено: 09:20, 01-11-2012 | #12


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Iska:
А в каком формате даты в новом файле? »
Формат даты тот же, что и у первого файла «DD/MM/YY».

Цитата Iska:
более ничего не менял »
Да, с приведенными данными работает. Но как только даты достигают значений, например, 25/03/2010 даты перестают обрабатываться, к сожалению

Возможен ли выход из этой ситуации, или же будет необходимо сначала привести дату к виду «MM/DD/YY»?

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 09:59, 01-11-2012 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата LilLoco:
Возможен ли выход из этой ситуации, или же будет необходимо сначала привести дату к виду «MM/DD/YY»? »
LilLoco, я разобрался:
Код: Выделить весь код
	.Workbooks.OpenText strFileNameLog, 1251, 1, xlDelimited, xlDoubleQuote, _
		False, False, True, False, False, False, False, _
		Array(Array(1, 4), Array(2, 1)), , , , , True
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:39, 01-11-2012 | #14


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Iska:
я разобрался »
А вот мне бы ума не хватило

Iska, Спасибо Вам огромное)

Цитата LilLoco:
Буду искать, изучать. Так было бы конечно же лучше. »
За это время изучил и приспособил и этот вариант.

Спасибо

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 15:59, 01-11-2012 | #15


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Нужна помощь!
Имеется файл 1.xls типа
Код: Выделить весь код
11.6308010-10	Амортизатор газовый задней двери "Соболь-Баргузин" Гродно ГАЗ	579
необходимо значение каждой строки первого столба взять в переменную, если переменная найдена в файле 2.xls типа
Код: Выделить весь код
Код   13400030   Арт.   3163-10-1101009-00	УАЗ  бак топливн.левый Патриот	5807,50 руб.
сформировать из 2.xls файл 3.xls
файлы http://rghost.ru/53730995

Отправлено: 10:39, 03-04-2014 | #16


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


sov44, ткните пальцем, где она найдена?

Отправлено: 13:13, 03-04-2014 | #17


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Iska, в посте выше я показал только структуру файлов. Сами файлы в архиве по ссылке снизу. Пока удалось найти повторы
Код: Выделить весь код
451-50-1701022
406.1006260-02
469-1701048
451-50-1701050-10
469-1108030
Перевёл excel в txt и парсю батником второй час. Но батник не вариант, нужен вывод в excel

Отправлено: 13:31, 03-04-2014 | #18


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


sov44, непосредственно в Excel или из-под WSH будет ненамного быстрее. Вы ведь ищете 1) по подстроке; 2) всё во всех, т.е. 10894*2496=27191424 сравнений.

Отправлено: 14:54, 03-04-2014 | #19


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Iska, решил задачу батником и ручками.

Отправлено: 16:29, 03-04-2014 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Текст по столбцам. Excel. VBS

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - Помогите написать макрос в Excel, экспорт данных из Excel в Word. E.v.g Программирование и базы данных 7 03-05-2018 22:18
2010 - При отправке любого офисного (Word, PP, Excel) файла из писем исчезает текст Terrapevt Microsoft Office (Word, Excel, Outlook и т.д.) 1 12-05-2012 20:32
2007 - Текст в Excel 2007 jazzanova Microsoft Office (Word, Excel, Outlook и т.д.) 5 12-04-2011 22:25
CMD/BAT - С помощью bat-ника найти и заменить текст в файле на текст из другого файла Nun-Nun Скриптовые языки администрирования Windows 1 08-03-2011 15:25
[решено] Сортировка данных ListView по столбцам malev AutoIt 3 16-10-2009 17:53




 
Переход