Обрезать регуляркой координаты до 5 знака

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
Можно ли в таком тексте обрезать регуляркой координаты до 5 знака после запятой?

{"lng":41.962715009968754,"lat":45.02827756436143},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2428158986","type":"rash","itemsCount":1,"coords":{"lng":41.93570348767511,"lat":45.07427461615454},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2215720100","type":"rash","itemsCount":1,"coords":{"lng":41.917519526131045,"lat":45.01098741697778},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"1560355685","type":"rash","itemsCount":1,"coords":{"lng":41.92003309197829,"lat":45.014606791369616},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2418445352","type":"rash","itemsCount":1,"coords":{"lng":41.90236708428101,"lat":45.01117190938781},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2235239465","type":"rash","itemsCount":1,"coords":{"lng":41.91299717025408,"lat":44.99945205768841},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2235719475","type":"rash","itemsCount":1,"coords":{"lng":41.91230962089992,"lat":45.00427063274546},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2411067191","type":"rash","itemsCount":1,"coords":{"lng":41.92033103003175,"lat":45.007156048201736},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2415931682","type":"rash","itemsCount":1,"coords":{"lng":41.91513430282991,"lat":45.01806172687426},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2335022792","type":"rash","itemsCount":1,"coords":
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
Текст большой, несколько тысяч, координаты брал в таблицу, округлял.
В ПМ получилось несколько минут.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 327
Благодарностей
9 083
Баллы
113
Можно ли в таком тексте обрезать регуляркой координаты до 5 знака после запятой?
Делал пример шаблона.
Пока делал вы уже отписались, что есть шаблон, ну да ладно.
Попробуйте включить Отложенную отрисовку в ПМ, задержка на анимации выполнения.
В ЗП будет быстрее тоже.

91547
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Текст большой, несколько тысяч, координаты брал в таблицу, округлял.
В ПМ получилось несколько минут.
Выглядит что это json.
Если это так - то предоставьте сюда в текстовом файле исходник, попробую помочь.
 
Последнее редактирование:
  • Спасибо
Реакции: Yuriy Zymlex

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Если предположить, что json такой, как я указал ниже, то обработка будет выглядеть, как код ниже:
JSON:
[{"id":"2428158986","type":"rash","itemsCount":1,"coords":{"lng":41.93570348767511,"lat":45.07427461615454},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2215720100","type":"rash","itemsCount":1,"coords":{"lng":41.917519526131045,"lat":45.01098741697778},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"1560355685","type":"rash","itemsCount":1,"coords":{"lng":41.92003309197829,"lat":45.014606791369616},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2418445352","type":"rash","itemsCount":1,"coords":{"lng":41.90236708428101,"lat":45.01117190938781},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2235239465","type":"rash","itemsCount":1,"coords":{"lng":41.91299717025408,"lat":44.99945205768841},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2235719475","type":"rash","itemsCount":1,"coords":{"lng":41.91230962089992,"lat":45.00427063274546},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2411067191","type":"rash","itemsCount":1,"coords":{"lng":41.92033103003175,"lat":45.007156048201736},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false}]
Собственно, округляет как надо, возвращает такой же json, как был на вход.
C#:
string json = project.Variables["json"].Value;
List<dynamic> data = Global.ZennoLab.Json.JsonConvert.DeserializeObject<List<dynamic>>(json);
foreach(dynamic ob in data) {
    ob.coords.lng = Math.Round((double)ob.coords.lng,5);
    ob.coords.lat = Math.Round((double)ob.coords.lat,5);
}
return Global.ZennoLab.Json.JsonConvert.SerializeObject(data);
JSON:
[{"id":"2428158986","type":"rash","itemsCount":1,"coords":{"lng":41.9357,"lat":45.07427},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2215720100","type":"rash","itemsCount":1,"coords":{"lng":41.91752,"lat":45.01099},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"1560355685","type":"rash","itemsCount":1,"coords":{"lng":41.92003,"lat":45.01461},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2418445352","type":"rash","itemsCount":1,"coords":{"lng":41.90237,"lat":45.01117},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2235239465","type":"rash","itemsCount":1,"coords":{"lng":41.913,"lat":44.99945},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2235719475","type":"rash","itemsCount":1,"coords":{"lng":41.91231,"lat":45.00427},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false},{"id":"2411067191","type":"rash","itemsCount":1,"coords":{"lng":41.92033,"lat":45.00716},"radius":5,"isFavorite":false,"favoritesIds":"","highlight":"regular","form":"regular","isVas":false}]
 
  • Спасибо
Реакции: bizzon и Sergodjan
Регистрация
05.06.2019
Сообщения
570
Благодарностей
454
Баллы
63
string.Format("{0:0.#####}", 45.007156048201736);

Пример
 
  • Спасибо
Реакции: Sergodjan и bizzon

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
замена по регулярке
(\d+\.\d{5})\d+
на $1
 
  • Спасибо
Реакции: bizzon и Sergodjan

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)