![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 12
|
![]()
Ребята, помогите, пожалуйста! Обращается далеко не профессионал к профессионалам.Необходимо составить программу по обработке данных из файла . Сам файл состоит из повторяющихся 4 строк:$GPGGA,072520.000,5553.8635,N ,03805.6086,E,1,07,1.8,141.5,M,14.1 ,M,,0000*5D
$GPGSA,A,3,18,19,21,22,26,06,03,,,, ,,3.8,1.8,3.3*33 $GPGSV,3,1,12,22,75,160,42,06,58,21 4,41,03,57,236,42,18,53,072,37*7C $GPGSV,3,2,12,19,51,289,42,26,38,11 8,44,21,28,103,38,14,17,159,28*71 $GPGSV,3,3,12,15,13,032,,24,12,099, 24,27,08,065,20,09,04,075,*7D $GPRMC,072520.000,A,5553.8635,N,038 05.6086,E,0.11,200.74,040310,,*0E Далее цикл повторяется, но уже без строк $GPGSV. Эта строка повторяется через 5 циклов, то есть в первом, шестом, одиннадцатом... Цель заключается в том , чтобы любым методом импортировать данный файл в Delphi (можно через Мемо), а затем: ввести переменные равные соответствующим элементам строк для дальнейшей работы. Примечания: 1.в обработке данных строк не принимают участия символы, стоящие после * (так что их можно удалить), 2.изначально каждое число в любой строке занимает строго отведенное для него место (так в $GPGSA,A,3,18,19,21,22,26,06,03,,,, ,,3.8,1.8,3.3*33 через запятые обозначаются элементы, которые просто на данном этапе отсутствуют, и таким образом, для обработки результатов число 3.8 идущее после кучи запятых должно иметь к примеру номер элемента не Аi11, а Ai17. Был бы очень признателен, если кто-нибудь смог мне помочь. Очень нужно. Заранее благодарен. |
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
Ишь что задумал...
Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 12
|
![]()
я прошу помочь советом, а не полнотью создавать программу.
Меня интересует следующее: 1. как удобнее будет обрабатывать: напрямую из файла, или через промежточную запись, к примеру, в МЕМО? 2. Какие предварительные изменения необходимо сделать с файлом для дальнейшей обработки ( кпримеру, заменить запятые пробелами...)? 3. нужно ли, на ваш взгляд удалять ненужные символы после * для упрощения работы? |
![]() |
![]() |
![]() |
#4 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Цитата:
Я только не очень понял что всетки нужно с этими данными делать...
I'm learning to live...
|
|||
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 12
|
![]()
хорошо, для большего понимания дела, немного предыстории. Данное сообщение - информация, поступаемая от спутников GPS. строка $GPGGA,072520.000,5553.8635,N ,03805.6086,E,1,07,1.8,141.5,M,14.1 ,M,, содержит время сообщния 072520.000, координаты 5553.8635,N ,03805.6086,E высота, 141.5, количество спутников 07 и другие прибомбасы.
$GPGSA,A,3,18,19,21,22,26,06,03,,,, ,,3.8,1.8,3.3*33 содержит номера спутников 18,19,21,22,26,06,03 и покзатели спутников (3 штуки) 3.8,1.8,3.3 Строка, состоящая из 3 подстрок $GPGSV,3,1,12,22,75,160,42,06,58,21 4,41,03,57,236,42,18,53,072,37*7C $GPGSV,3,2,12,19,51,289,42,26,38,11 8,44,21,28,103,38,14,17,159,28*71 $GPGSV,3,3,12,15,13,032,,24,12,099, 24,27,08,065,20,09,04,075,*7D Содержит количество подстрок GSV 3, номер подстроки (1,2,3). Количество видимых спутников 12, а далее идут характеристики спутников (4 подряд числа). Так (см. строку GSV 1: 22,75,160,42 (22-номер спутника, 75-высота, 160-азимут, 42-показатель сигнала*), и так для каждого из 12 спутников. строка $GPRMC,072520.000,A,5553.8635,N,038 05.6086,E,0.11,200.74,040310,,*0E содержит опять время, координаты, скорость движения, дата (040310-DDMMYY). И эти 4 сообщения характеризуют различные параметры спутников, а также координаты на одну секунду(один цикл) (время, указанное в GGA или RMC). Таким образом, мне необходимо для большоге массива циклов произвести обработку,( к примеру, средние координаты, средняя высота, построить графики движения спутников по высоте и азимуту и т.п.) |
![]() |
![]() |
![]() |
#6 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Рутины много, то технически ничего сложного нет. Нужно парсить строки и вычленять из них нужные записи. Если там как Вы говорите с периодичностью в пять строк какая-то информация появляется это тоже эллементарно делается - в теле цикла добавляете проверку if i mod N = 0 then... где N - период повторения.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я не знаю твое точное ТЗ, но банальные методы знаешь ли еще не отменили
Так что вот тее проектик. Пробуй, спрашивай. Что касается моего мнения - ябы эти данные проимпортировал в БД, на разный тип данных разные таблицы, и уже из нее делал бы нужную выборку.
I'm learning to live...
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 12
|
![]()
всем спасибо. так как изучать новое времени нет, то пытаюсь создавать обрабатывающую программу по старинке...
суть в следующем: беру файл с данными, запихиваю в Мемо, далее из мемо вывожу нужные мне параметры. вот попытался вывести из строк параметр-время и подсчитать среднее время наблюдения Код:
Из всех строк $GPGGA 072520.000 5553.8635 N 03805.6086 E 1 07 1.8 141.5 M 14.1 M 0000 5D $GPGSA A 3 18 19 21 22 26 06 03 3.8 1.8 3.3 33 $GPGSV 3 1 12 22 75 160 42 06 58 214 41 03 57 236 42 18 53 072 37 7C $GPGSV 3 2 12 19 51 289 42 26 38 118 44 21 28 103 38 14 17 159 28 71 $GPGSV 3 3 12 15 13 032 24 12 099 24 27 08 065 20 09 04 075 7D $GPRMC 072520.000 A 5553.8635 N 03805.6086 E 0.11 200.74 040310 0E $GPGGA 072521.000 5553.8635 N 03805.6086 E 1 07 1.8 141.5 M 14.1 M 0000 5C Хочу подсчитать среднее время (время дается в строке $GPGGA сразу за названием строки 072520.000 ....) Все времена загнал в МЕМО2. ошибки до компиляции программа не показывает. Когда нажимаю БАТОН , вылезает сообщение с ошибкой. У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Только... И не значком #. И не РНР-кодом. И не значком цитаты. И не собственными "ручками". Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Модератор Последний раз редактировалось fiascko; 28.03.2010 в 17:10. |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]() Код:
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 12
|
![]()
Вот так вот было
Код:
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Только... И не значком #. И не РНР-кодом. И не значком цитаты. И не собственными "ручками". Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Модератор Последний раз редактировалось fiascko; 28.03.2010 в 17:11. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка сообщений в приложении без окон. | kalexi | Win Api | 2 | 26.06.2009 20:12 |
Обработка сообщений в консольных приложениях | Mixasik | Общие вопросы Delphi | 2 | 06.06.2009 22:50 |
Перехват и обработка сообщений Mail.ru агента | NikLik | Работа с сетью в Delphi | 4 | 22.07.2008 15:39 |
Перехват сообщений от Службы сообщений (Messenger) | SJMS | Win Api | 6 | 17.07.2008 10:26 |
Обработка сообщений иконки трея | The_Darkness | Win Api | 18 | 15.07.2008 16:07 |