Перейти к содержанию
GPS навигатор СитиГИД

Редактор содержания файла трека *plt


Перейти к решению Решено /DiOs,

Рекомендуемые сообщения

Добрый день. Возник вопрос как из некорректного фала трека, сделать корректный. Имею файл 2012_05_30_gps.plt записанный старой доброй Nokia с СГ версии 7.2.32.

Раньше думал что это версия не пишет треки, а на днях обнаружил что у меня есть куча треков записанных ей, но как оказалось в них есть ошибка, координаты разделются не точкой и запятой и еще одно число (выделил жирным).

В общем нужно в этом файле эти три запятые заменить на точки, есть ли способ и идеz как это можно автоматизировать, то есть делать не руками, а программно? 

Пример трека:

OziExplorer Track Point File Version 2.1

WGS 84
Altitude is in Feet
Reserved 3
0,2,255,2012_05_30_gps.plt,0,0,0,255
0
59,756850,31,068454,0,0,41059,1655671,2012-05-30,07-58-25
59,756852,31,068458,0,0,41059,1655903,2012-05-30,07-58-27
59,756853,31,068459,0,0,41059,1656019,2012-05-30,07-58-28
59,756853,31,068459,0,0,41059,1656134,2012-05-30,07-58-29
59,756853,31,068458,0,0,41059,1656250,2012-05-30,07-58-30
59,756854,31,068460,0,0,41059,1656366,2012-05-30,07-58-31
59,756856,31,068462,0,0,41059,1656713,2012-05-30,07-58-34
59,756855,31,068459,0,0,41059,1656713,2012-05-30,07-58-34

 

Ссылка на сообщение
Поделиться на другие сайты

fims7, а в текстовом редакторе нельзя? Использовать функцию "найти и заменить".

Ссылка на сообщение
Поделиться на другие сайты

Не получится. В смысле тупо запятую менять не получится. Там тогда и остальные запятые поменяются (которые реально запятые, между параметрами).

Надо менять по такому шаблону:

Заменить "CR/LF 59," на "CR/LF 59." (возможно потребуется и с 60 поиграть)

А потом аналогично ",31," на ",31."

Все остальные параметры по-моему могут и вовсе отсутствовать, СНГ не обидится.

Вариант второй - с экселем. Открываем файл экселем, как "фикс. Формат" и ставим колонки где нам надо. То есть чтоб по колонкам попали например

59,245677 , 31,234567 , 0 и т.д., чтоб запятые были в отдельных ячейках. Потом в колонках где координаты заменяем запятую на точку. И обратно превращаем в текст. Этот вариант можно даже автоматизировать с vba.

Забыл - при импорте в Эксель импортировать все ячейки как "просто текст"

-----

За ашыпки прашю винить TapaTalk

Изменено пользователем IШIN
Ссылка на сообщение
Поделиться на другие сайты

Дети, вы что-нибудь слышали про регэкспы? А вот FARовский плагин слышал... А в третьем ФАРе это вообще стоковая функциональность. Я уж не говорю про порты awk'а, sed'а и прочих полезных вещей под винду.

 

Мышовое гуевозение не должно быть шорами на всю жизнь, дети!

Ссылка на сообщение
Поделиться на другие сайты

Дети, вы что-нибудь слышали про регэкспы? А вот FARовский плагин слышал... А в третьем ФАРе это вообще стоковая функциональность. Я уж не говорю про порты awk'а, sed'а и прочих полезных вещей под винду.

 

Мышовое гуевозение не должно быть шорами на всю жизнь, дети!

Где это можно почитать об этом наиболее доступно?

Ссылка на сообщение
Поделиться на другие сайты

Кажется, мы разбудили какую-то страшную Ктулху.... [emoji15]

-----

За ашыпки прашю винить TapaTalk

Ссылка на сообщение
Поделиться на другие сайты

Где это можно почитать об этом наиболее доступно?

https://ru.wikipedia.org/wiki/Sed

https://ru.wikipedia.org/wiki/AWK

https://ru.wikipedia.org/wiki/%D0%E5%E3%F3%EB%FF%F0%ED%FB%E5_%E2%FB%F0%E0%E6%E5%ED%E8%FF

 

и

 

https://ru.wikipedia.org/wiki/%CA%F2%F3%EB%F5%F3

Изменено пользователем svlad2012
Ссылка на сообщение
Поделиться на другие сайты


Где это можно почитать об этом наиболее доступно?
man regular expression :)

 

Если серьёзно -- гуглим те самые regular expressions и из этой пропрвы выбираем что-нибудь типа "для чайников". В том виде, в котором это нужно для данной задачи -- это даже "для дырочки в шишечке крышки для чайника".

 

Как применить на винде? Если есть ФАР, то уже сказал, после F7 ставим крыжик "использовать регулярные выражения". Если отдельным инструментом -- гуглим на тему портов юниховых тулзей под винду.

Ссылка на сообщение
Поделиться на другие сайты

Если к ФАРу идиосинкразия, то для этой конкретной задачи я взял бы sed.

Ссылка на сообщение
Поделиться на другие сайты

Если к ФАРу идиосинкразия, то для этой конкретной задачи я взял бы sed.

Я правильно понимаю что это нужно делать при непосредственном открытии файла?

sed это команда в far или отдельная утилита?

Ссылка на сообщение
Поделиться на другие сайты

Это отдельный текстовый редактор, но из командной строки, то есть неинтерактивный.

То есть запускается из ком. строки (ну или batником) 

Ссылка на сообщение
Поделиться на другие сайты

В ФАРе версий 1.х можно установить дополнительный плагин регулярных выражений. Начиная с ФАР2 функционал есть уже "из коробки". И в окнах search/replace появляется чекбокс для этого варианта поиска/замены.

 

 

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

 

 

В фаровском хелпе есть  и про регекспы.


sed, awk и пр. -- отдельные (изначально) юниховые тулзы. Очень мощный аппарат для обработки текста.

Ссылка на сообщение
Поделиться на другие сайты

notepad++ тоже умеет регулярные выражения.

и еще он умеет в гуёвом виде показывать неправильные разрывы  переносы строк, которые, бывало, встречались в СитиГИДовских треках, то есть вместо CRLF был просто CR

из-за чего винда читала такой файл в одну строку.

Изменено пользователем MonoRAil.kz
Ссылка на сообщение
Поделиться на другие сайты

Пробую

 получаю что выбирает не всё что нужно как мне кажется

Что то не так делаю? В англицком не силен...

Ссылка на сообщение
Поделиться на другие сайты

Дык вроде все правильно - в каждой строке по три вхождения.

В результатах поиска он же каждую строку по три раза пишет.

И указывает - в какой строке и с какой позиции - в каждой с 1, с 11 и с 28 позиции.

Ссылка на сообщение
Поделиться на другие сайты

Дык вроде все правильно - в каждой строке по три вхождения.

В результатах поиска он же каждую строку по три раза пишет.

И указывает - в какой строке и с какой позиции - в каждой с 1, с 11 и с 28 позиции.

Точно, не сообразил что он строчку три раза дублирует, спасибо!

Как теперь это всё заменить?

И ещё вопрос, можно ли это сделать с десятком файлов, чтобы не открывать каждый и править так?

Изменено пользователем fims7
Ссылка на сообщение
Поделиться на другие сайты


И ещё вопрос, можно ли это сделать с десятком файлов, чтобы не открывать каждый и править так?
sed

Или пользовательское меню на F2.

Ссылка на сообщение
Поделиться на другие сайты

Что то не так делаю? В англицком не силен...

Бросайте эти эксперименты для гиков, берите нормальный интерактивный редактор типа Notepad++ и сочиняйте регулярные выражения в нем :) Так Вам явно будет проще и быстрее. Кстати, у Notepad++ и справка, помнится, была по regexp-ам. Нормальная, читабельная в отдельном окне ;)

А можно (в нем же) через поиск/замену, с использованием рег.выражений или даже без.

Изменено пользователем curopat
Ссылка на сообщение
Поделиться на другие сайты

берите нормальный интерактивный редактор типа Notepad++ и сочиняйте регулярные выражения в нем  :) Так Вам явно будет проще и быстрее. 

Но ведь каждый трек надо будет отдельно открывать и заменять.

А SED в BATе, как я понимаю, позволит одним кликом конвертнуть например все треки в папке.  

Ссылка на сообщение
Поделиться на другие сайты


А SED в BATе, как я понимаю, позволит одним кликом конвертнуть например все треки в папке.
Если уж совсем до точки дойти, то я в ФАРе такое тоже сооружу, но это уже от чистого фанатизма. Это как я в фидошные времена на 4dos'е писал рутеры, файлэхопроцессоры... Ну да, забавно. Ну да, работали. Но,тем не менее, голимый фан.
Ссылка на сообщение
Поделиться на другие сайты

Но ведь каждый трек надо будет отдельно открывать и заменять.

 

Ну зачем же каждый в отдельности? Открываем все сразу ... а в окошке замены выбираем во всех открытых документах

Ссылка на сообщение
Поделиться на другие сайты

Ну да, забавно. Ну да, работали. Но,тем не менее, голимый фан.

Ну да. Так то вы, а кому-то и squish настроить было проблемой. Хватает инструментов, позволяющих непродвинутым людям делать разные вещи наглядно и без... фана ;)

Ссылка на сообщение
Поделиться на другие сайты

Открываем все сразу ... а в окошке замены выбираем во всех открытых документах

Если файлов не больше десятка, то проще всего так, да. Если много, то можно открыть один, удобно отладить на нем regexp(ы) для поиска-замены, а потом использовать их в командной строке SED в батнике )))
Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...

Снова вопрос по теме, в начале отвлекли по работе не смог разобраться до конца, в общем суть осталась >та же.

Но с прогрессом поставил notepad++, сделал регулярное выражение которое выбирает почти что надо, ещё подцепляет 3 группу символов, которую подцеплять рег. выражением не нужно.

И вот вопрос что можно добавить в рег. выражение чтобы не цепляло 3 группу символов, сам не могу сообразить и что нужно поставить в окно "заменить на" чтобы только запятая менялась на точку.

UPD

С первым вопрос вроде разобрался, остался второй и основной

Изменено пользователем fims7
Ссылка на сообщение
Поделиться на другие сайты
  • Решение

Я не знаю, как в нотепадовской, а в перловой нотации это выглядело бы так:

^(d{2}),(d{6}),(d{2}),(d{6})
$1.$2,$3.$4
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...