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

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

Ответить
Настройки темы
CMD/BAT - [решено] Репарсинг одного текстового формата в другой

Новый участник


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

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


Возможно кто-то подскажет что нужно делать:
Нужно этот формат:

INDEX,TAG,DATE,TIME,LATITUDE N/S,LONGITUDE E/W,HEIGHT,SPEED,HEADING,FIX MODE,VALID,PDOP,HDOP,VDOP,VOX
1,T,110519,095141,46.418703N,030.459649E,70,20,0,3D,SPS ,1.1,0.8,0.7,
2,T,110519,095142,46.418629N,030.459584E,74,12,0,3D,SPS ,1.4,1.2,0.8,

Перегнать в этот формат:
Маркер начала точки: Sta {, маркер конца точки }. Одна точка: 1,T,110519,095141,46.418703N,030.459649E,70,20,0,3D,SPS ,1.1,0.8,0.7, соотв. одному блоку Sta {...}.

читать дальше »

Sta {
ID: "1"
Rem: "POINT"
GTim: 572335.000000
Pos: 46.38339986 30.74699869 56.546
Mode: SP
Std: 2.100 2.100 2.382
Hi: 7.0000 VERT
Nsv: 10 10 0
}
Sta {
ID: "1"
Rem: "POINT"
GTim: 572335.000000
Pos: 46.38339986 30.74699869 56.546
Mode: SP
Std: 2.100 2.100 2.382
Hi: 7.0000 VERT
Nsv: 10 10 0
}
Sta {
ID: "2"
Rem: "POINT"
GTim: 572363.000000
Pos: 46.38340016 30.74700347 56.457
Mode: SP
Std: 2.110 2.110 2.410
Hi: 7.0000 VERT
Nsv: 9 9 0
}
Sta {
ID: "2"
Rem: "POINT"
GTim: 572363.000000
Pos: 46.38340016 30.74700347 56.457
Mode: SP
Std: 2.110 2.110 2.410
Hi: 7.0000 VERT
Nsv: 9 9 0
}


Вроде все очень просто, но с чего начинать нехватает знаний.
Заранее спасибо за совет. Интересует решение на cmd (bat).

Отправлено: 23:40, 05-06-2011

 

Googler


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

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


исходные данные не стыкуются с предполагаемым результатом (разные цифры),
возьмите пример в несколько строк и покажите, что и куда должно сконвертироваться

-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум


Отправлено: 10:39, 06-06-2011 | #2



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

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


Новый участник


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

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


Цитата:
исходные данные не стыкуются с предполагаемым результатом (разные цифры),
возьмите пример в несколько строк и покажите, что и куда должно сконвертироваться
Да именно, данные не совпадают: в первом случае исходные данные (дата, время) нормальные: 110519 - дата, 095142 - время.
А результирующем файле дата-время в виде GPS Seconds - GTim: 572335.000000.
Т.е. DATE,TIME в csv файле равно например: GTim: 572335.000000. Расчет параметра отдельный вопрос не касающийся репарсинга.

Переформулирую и упрощаю задачу.

Есть такой файл:

INDEX,TAG,DATE,TIME,LATITUDE N/S,LONGITUDE E/W,HEIGHT,SPEED,HEADING,FIX MODE,VALID,PDOP,HDOP,VDOP,VOX
1,T,110519,095141,46.418703N,030.459649E,70,20,0,3D,SPS ,1.1,0.8,0.7,sound1.wav
2,T,110519,095142,46.418629N,030.459584E,74,12,0,3D,SPS ,1.4,1.2,0.8,sound2.wav

Нужно получить такой файл.

Sta {
ID: "1"
Rem: "POINT"
GTim: 110519 095141
Pos: 46.418703 30.459649 70
}
Sta {
ID: "1"
Rem: "POINT"
GTim: 110519 095142
Pos: 46.418629 30.459584 74
}

Где заголовки данных: исходный файл (столбик) - результ. файл (строка) сответствуют:

Index = ID
DATE,TIME = GTim
VOX = Rem
LATITUDE N/S,LONGITUDE E/W,HEIGHT = Pos

Отправлено: 15:15, 06-06-2011 | #3


Googler


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

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


как-то так:
Код: Выделить весь код
@echo off
set FILE=file.txt

setlocal EnableDelayedExpansion
(for /f "usebackq skip=1 tokens=1,3-7 delims=," %%a in ("%FILE%") do (
  Echo Sta {
  Echo ID: "%%a"
  Echo Rem: "POINT"
  Echo GTim: %%b %%c
  Echo Pos: %%d %%e %%f
  Echo }
))>"%~n0.tmp"
copy "%~n0.tmp" "%FILE%">nul&& del "%~n0.tmp"

-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:40, 07-06-2011 | #4


Новый участник


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

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


То что нужно! Спасибо.

Отправлено: 19:07, 07-06-2011 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Преобразование одного формата файла в другой Evgesha_572 Программирование и базы данных 3 04-02-2009 14:57
C/C++ - Исходники с одного компьютера на другой S1stem Программирование и базы данных 3 30-07-2008 15:59
Медиа - [решено] Не открывает ни одного видео формата. Proxxx Microsoft Windows 2000/XP 3 14-05-2008 13:30
Если установлено несколько декодеров для одного формата... noname Incognito Видео и аудио: обработка и кодирование 3 18-09-2006 21:34
модем из одного компа в другой manya Непонятные проблемы с Железом 13 15-01-2003 13:35




 
Переход