Как добавить символ в столбцы различной длины в блокноте ++ для GPS-координат - PullRequest
1 голос
/ 08 марта 2020

У меня есть такие координаты:

28.62834,41.11797,0  // every line must be at this lenght
28.62881,41.11737,0
28.6289,41.11725,0   // must add 0 (zero) to 28.6289 , it should look like this: 28.62890
28.62898,41.11716,0
28.629,41.11688,0    // must add two 0 (zero) to 28.629 , it should look like this: 28.62900
28.62935,41.1167,0
28.62978,41.11615,0
28.62996,41.11593,0
28.630,41.115,0      // must add two 0 (zero) to 28.630 , it should look like this: 28.63000 and must add two 0 (zero) to 41.115 , it should look like this: 41.11500,

Я хочу добавить 0 (ноль) к значениям широты и долготы, чтобы каждая линия имела одинаковую длину. Широта и долгота должны иметь 5 чисел после точки. Пример: 28.XXXXX, 41.XXXXX

Что я хочу:

28.62834,41.11797,0
28.62881,41.11737,0
28.62890,41.11725,0
28.62898,41.11716,0
28.62900,41.11688,0
28.62935,41.11670,0
28.62978,41.11615,0
28.62996,41.11593,0
28.63000,41.11500,0

Есть ли простой способ сделать это в блокноте ++?

Ответы [ 2 ]

2 голосов
/ 08 марта 2020

Два шага.

Сначала добавляйте нули после каждого слишком короткого числа. Замените регулярное выражение \b(\d\d\.\d{0,4}), на ${1}00000,.

. Затем удалите лишние нули. Замените регулярное выражение \b(\d\d\.\d{5})0+, на $1,.

Объяснение:

Первое регулярное выражение находит две цифры, за которыми следуют точка, затем от нуля до четырех знаков перемещения и, наконец, запятая. Нет необходимости искать пять цифр после точки. Замена гарантирует, что каждое число имеет не менее пяти цифр.

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

Это почти то же самое, что и в этот ответ , но регулярные выражения добавляют / удаляют нули справа.

1 голос
/ 08 марта 2020

Вы можете запустить скрипт python в плагине PythonScript.

Если он еще не установлен, следуйте этому руководству

Создание скрипта (Плагины> > PythonScript >> Новый скрипт)

Скопируйте этот код и сохраните файл (например, format.py):

import re
def format(match):
    nums = match.group(1).split(',')
    return "%7.5f,%7.5f;%d" % (float(nums[0]), float(nums[1]), int(nums[2]) )
editor.rereplace('^(.+)$', format)
  • Откройте файл, который вы хотите изменить
  • Запустить скрипт (Плагины >> PythonScript >> Сценарии >> формат)
  • Готово

Предполагая, что 28.629350,41.1167,0 должно быть 28.62935,41.11670,0

Результат для данного примера:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...