|
9 / 9 / 8
Регистрация: 10.04.2013
Сообщений: 58
|
|
Парсинг файла для получения точек траектории28.04.2014, 21:08. Показов 734. Ответов 3
Метки нет (Все метки)
Доброго всем вечера =)
Ребята, подскажите как попроще решить следующую задачу (я только прочитал книжку и это моя первая задача, решаемая средствами C# ): Во входном файле есть вот такой набор строк: Кликните здесь для просмотра всего текста
Cut1_Pnt1={x 10, y 10} Cut1_Pnt2={x 11, y 10} Cut1_Pnt3={x 12, y 10} Cut1_Pnt4={x 13, y 10} Cut2_Pnt1={x 14, y 10} Cut2_Pnt2={x 15, y 10} Cut2_Pnt3={x 16, y 10} Cut2_Pnt4={x 17, y 10} Cut2_Pnt5={x 18, y 10} Cut3_Pnt1={x 19, y 10} Cut3_Pnt2={x 20, y 10} Cut3_Pnt3={x 21, y 10} Cut3_Pnt4={x 22, y 10} Cut3_Pnt5={x 23, y 10} Cut3_Pnt6={x 24, y 10} То есть Cut - участок траектории, Pnt - точки траектории, числа - индексы, означающие номер участка и номер точки, соответственно. Количества участков и точек на каждом участке - переменные, но обязательно должны представлять собой натуральный ряд чисел и начинаться с 1. На выходе необходимо получить файл, содержащий: Кликните здесь для просмотра всего текста
Pnt[1,1]={x 10, y 10} Pnt[1,2]={x 11, y 10} Pnt[1,3]={x 12, y 10} Pnt[1,4]={x 13, y 10} Pnt[2,1]={x 14, y 10} Pnt[2,2]={x 15, y 10} Pnt[2,3]={x 16, y 10} Pnt[2,4]={x 17, y 10} Pnt[2,5]={x 18, y 10} Pnt[3,1]={x 19, y 10} Pnt[3,2]={x 20, y 10} Pnt[3,3]={x 21, y 10} Pnt[3,4]={x 22, y 10} Pnt[3,5]={x 23, y 10} Pnt[3,6]={x 24, y 10} Как я решил задачу (вот чувствую что наговнокодил): Кликните здесь для просмотра всего текста
1. Создал класс координат Coords и статичный метод ParseXY. 2. Создал словарь Dictionaray<string, Coords> Cut_pnt, где в ключ засунул имена точек (CutN_PntM). 3. Создал List<int> чтобы наложить туда индексы при Cut. Пробежался по словарю форичем и с помощью регекса наполнил List, потом его отсортировал по возрастанию, проверил нет ли нарушения последовательности и начинается ли он с единички, максимальный член запомнил в переменной int Cut_count. 4. Вот тут начались чудеса =) Создал массив Листов, List<int>[Cut_count], поступил с элементами массива как и с Cut'ом, отрегексил, сортирнул, проверил, нашел максимумы int maxs[Cut_count]. 5. Создал ступенчатый массив, первым индексом которого служит [Cut_count], а вторым int maxs[Cut_count] 6. Еще раз форичами и регексами пробежал по словарю Cut_pnt и рассовал элементы в ступенчатый массив согласно индексам. 7. Вывел массив в текст.
0
|
|
| 28.04.2014, 21:08 | |
|
Ответы с готовыми решениями:
3
Парсинг строки для получения значений в кавычках |
|
|
||||||
| 28.04.2014, 21:27 | ||||||
|
Не читал всё, что Вы делали, но тут 1 регекса хватит...
Принцип, думаю, поймёте:
1
|
||||||
|
9 / 9 / 8
Регистрация: 10.04.2013
Сообщений: 58
|
|
| 28.04.2014, 21:41 [ТС] | |
|
Spawn, спасибо.
Но, тем не менее, полученные новые строки нужно будет проверять на "Количества участков и точек на каждом участке - переменные, но обязательно должны представлять собой натуральный ряд чисел и начинаться с 1."
0
|
|
|
|
|
| 28.04.2014, 22:03 | |
|
Это уже логика
0
|
|
| 28.04.2014, 22:03 | |
|
Помогаю со студенческими работами здесь
4
HtmlAgilityPack парсинг таблицы для получения текста, даты и описания статуса Получения файла *.com из файла *.тхт в кодировке ASCII для корректного рисования через псевдографику Парсинг XML значений для получения значений Double Подгрузка файла для получения списка слов для замены Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|