fims7 Опубликовано 23 октября, 2014 Поделиться Опубликовано 23 октября, 2014 Добрый день. Возник вопрос как из некорректного фала трека, сделать корректный. Имею файл 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 Цитата Ссылка на сообщение Поделиться на другие сайты
klif22 Опубликовано 23 октября, 2014 Поделиться Опубликовано 23 октября, 2014 fims7, а в текстовом редакторе нельзя? Использовать функцию "найти и заменить". Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 23 октября, 2014 Поделиться Опубликовано 23 октября, 2014 (изменено) Не получится. В смысле тупо запятую менять не получится. Там тогда и остальные запятые поменяются (которые реально запятые, между параметрами). Надо менять по такому шаблону: Заменить "CR/LF 59," на "CR/LF 59." (возможно потребуется и с 60 поиграть) А потом аналогично ",31," на ",31." Все остальные параметры по-моему могут и вовсе отсутствовать, СНГ не обидится. Вариант второй - с экселем. Открываем файл экселем, как "фикс. Формат" и ставим колонки где нам надо. То есть чтоб по колонкам попали например 59,245677 , 31,234567 , 0 и т.д., чтоб запятые были в отдельных ячейках. Потом в колонках где координаты заменяем запятую на точку. И обратно превращаем в текст. Этот вариант можно даже автоматизировать с vba. Забыл - при импорте в Эксель импортировать все ячейки как "просто текст" ----- За ашыпки прашю винить TapaTalk Изменено 23 октября, 2014 пользователем IШIN 1 Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 23 октября, 2014 Поделиться Опубликовано 23 октября, 2014 Дети, вы что-нибудь слышали про регэкспы? А вот FARовский плагин слышал... А в третьем ФАРе это вообще стоковая функциональность. Я уж не говорю про порты awk'а, sed'а и прочих полезных вещей под винду. Мышовое гуевозение не должно быть шорами на всю жизнь, дети! 1 Цитата Ссылка на сообщение Поделиться на другие сайты
fims7 Опубликовано 24 октября, 2014 Автор Поделиться Опубликовано 24 октября, 2014 Дети, вы что-нибудь слышали про регэкспы? А вот FARовский плагин слышал... А в третьем ФАРе это вообще стоковая функциональность. Я уж не говорю про порты awk'а, sed'а и прочих полезных вещей под винду. Мышовое гуевозение не должно быть шорами на всю жизнь, дети! Где это можно почитать об этом наиболее доступно? Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 Кажется, мы разбудили какую-то страшную Ктулху.... [emoji15] ----- За ашыпки прашю винить TapaTalk 1 Цитата Ссылка на сообщение Поделиться на другие сайты
svlad2012 Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 (изменено) Где это можно почитать об этом наиболее доступно? 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 Изменено 24 октября, 2014 пользователем svlad2012 Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 Где это можно почитать об этом наиболее доступно? man regular expression Если серьёзно -- гуглим те самые regular expressions и из этой пропрвы выбираем что-нибудь типа "для чайников". В том виде, в котором это нужно для данной задачи -- это даже "для дырочки в шишечке крышки для чайника". Как применить на винде? Если есть ФАР, то уже сказал, после F7 ставим крыжик "использовать регулярные выражения". Если отдельным инструментом -- гуглим на тему портов юниховых тулзей под винду. Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 Если к ФАРу идиосинкразия, то для этой конкретной задачи я взял бы sed. Цитата Ссылка на сообщение Поделиться на другие сайты
fims7 Опубликовано 24 октября, 2014 Автор Поделиться Опубликовано 24 октября, 2014 Если к ФАРу идиосинкразия, то для этой конкретной задачи я взял бы sed. Я правильно понимаю что это нужно делать при непосредственном открытии файла? sed это команда в far или отдельная утилита? Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 Это отдельный текстовый редактор, но из командной строки, то есть неинтерактивный. То есть запускается из ком. строки (ну или batником) Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 В ФАРе версий 1.х можно установить дополнительный плагин регулярных выражений. Начиная с ФАР2 функционал есть уже "из коробки". И в окнах search/replace появляется чекбокс для этого варианта поиска/замены. Если крыжик поставить, поиск будет осуществляться по правилам разбора регулярных выражений: В фаровском хелпе есть и про регекспы. sed, awk и пр. -- отдельные (изначально) юниховые тулзы. Очень мощный аппарат для обработки текста. Цитата Ссылка на сообщение Поделиться на другие сайты
MonoRAil.kz Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 (изменено) notepad++ тоже умеет регулярные выражения. и еще он умеет в гуёвом виде показывать неправильные разрывы переносы строк, которые, бывало, встречались в СитиГИДовских треках, то есть вместо CRLF был просто CR из-за чего винда читала такой файл в одну строку. Изменено 24 октября, 2014 пользователем MonoRAil.kz Цитата Ссылка на сообщение Поделиться на другие сайты
fims7 Опубликовано 24 октября, 2014 Автор Поделиться Опубликовано 24 октября, 2014 Пробую получаю что выбирает не всё что нужно как мне кажется Что то не так делаю? В англицком не силен... Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 Дык вроде все правильно - в каждой строке по три вхождения. В результатах поиска он же каждую строку по три раза пишет. И указывает - в какой строке и с какой позиции - в каждой с 1, с 11 и с 28 позиции. Цитата Ссылка на сообщение Поделиться на другие сайты
fims7 Опубликовано 24 октября, 2014 Автор Поделиться Опубликовано 24 октября, 2014 (изменено) Дык вроде все правильно - в каждой строке по три вхождения. В результатах поиска он же каждую строку по три раза пишет. И указывает - в какой строке и с какой позиции - в каждой с 1, с 11 и с 28 позиции. Точно, не сообразил что он строчку три раза дублирует, спасибо! Как теперь это всё заменить? И ещё вопрос, можно ли это сделать с десятком файлов, чтобы не открывать каждый и править так? Изменено 24 октября, 2014 пользователем fims7 Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 24 октября, 2014 Поделиться Опубликовано 24 октября, 2014 И ещё вопрос, можно ли это сделать с десятком файлов, чтобы не открывать каждый и править так? sed Или пользовательское меню на F2. Цитата Ссылка на сообщение Поделиться на другие сайты
curopat Опубликовано 28 октября, 2014 Поделиться Опубликовано 28 октября, 2014 (изменено) Что то не так делаю? В англицком не силен...Бросайте эти эксперименты для гиков, берите нормальный интерактивный редактор типа Notepad++ и сочиняйте регулярные выражения в нем Так Вам явно будет проще и быстрее. Кстати, у Notepad++ и справка, помнится, была по regexp-ам. Нормальная, читабельная в отдельном окне А можно (в нем же) через поиск/замену, с использованием рег.выражений или даже без. Изменено 29 октября, 2014 пользователем curopat Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 29 октября, 2014 Поделиться Опубликовано 29 октября, 2014 берите нормальный интерактивный редактор типа Notepad++ и сочиняйте регулярные выражения в нем Так Вам явно будет проще и быстрее. Но ведь каждый трек надо будет отдельно открывать и заменять. А SED в BATе, как я понимаю, позволит одним кликом конвертнуть например все треки в папке. Цитата Ссылка на сообщение Поделиться на другие сайты
/DiOs Опубликовано 29 октября, 2014 Поделиться Опубликовано 29 октября, 2014 А SED в BATе, как я понимаю, позволит одним кликом конвертнуть например все треки в папке. Если уж совсем до точки дойти, то я в ФАРе такое тоже сооружу, но это уже от чистого фанатизма. Это как я в фидошные времена на 4dos'е писал рутеры, файлэхопроцессоры... Ну да, забавно. Ну да, работали. Но,тем не менее, голимый фан. Цитата Ссылка на сообщение Поделиться на другие сайты
kzvs Опубликовано 29 октября, 2014 Поделиться Опубликовано 29 октября, 2014 Но ведь каждый трек надо будет отдельно открывать и заменять. Ну зачем же каждый в отдельности? Открываем все сразу ... а в окошке замены выбираем во всех открытых документах Цитата Ссылка на сообщение Поделиться на другие сайты
curopat Опубликовано 29 октября, 2014 Поделиться Опубликовано 29 октября, 2014 Ну да, забавно. Ну да, работали. Но,тем не менее, голимый фан. Ну да. Так то вы, а кому-то и squish настроить было проблемой. Хватает инструментов, позволяющих непродвинутым людям делать разные вещи наглядно и без... фана Цитата Ссылка на сообщение Поделиться на другие сайты
curopat Опубликовано 29 октября, 2014 Поделиться Опубликовано 29 октября, 2014 Открываем все сразу ... а в окошке замены выбираем во всех открытых документах Если файлов не больше десятка, то проще всего так, да. Если много, то можно открыть один, удобно отладить на нем regexp(ы) для поиска-замены, а потом использовать их в командной строке SED в батнике ))) Цитата Ссылка на сообщение Поделиться на другие сайты
fims7 Опубликовано 17 февраля, 2015 Автор Поделиться Опубликовано 17 февраля, 2015 (изменено) Снова вопрос по теме, в начале отвлекли по работе не смог разобраться до конца, в общем суть осталась >та же. Но с прогрессом поставил notepad++, сделал регулярное выражение которое выбирает почти что надо, ещё подцепляет 3 группу символов, которую подцеплять рег. выражением не нужно. И вот вопрос что можно добавить в рег. выражение чтобы не цепляло 3 группу символов, сам не могу сообразить и что нужно поставить в окно "заменить на" чтобы только запятая менялась на точку. UPD С первым вопрос вроде разобрался, остался второй и основной Изменено 17 февраля, 2015 пользователем fims7 Цитата Ссылка на сообщение Поделиться на другие сайты
Решение /DiOs Опубликовано 17 февраля, 2015 Решение Поделиться Опубликовано 17 февраля, 2015 Я не знаю, как в нотепадовской, а в перловой нотации это выглядело бы так: ^(d{2}),(d{6}),(d{2}),(d{6}) $1.$2,$3.$4 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.