
08.03.2009, 23:52
|
|
Познающий
Регистрация: 23.09.2007
Сообщений: 75
С нами:
9806336
Репутация:
86
|
|
Сообщение от CHIP:))
Вобщем у меня небольшая проблемка, надо разобрать большой файл, обьемом около 500к строк с данными ГПС. В файле строки
$GPRMC,153255,A,6734.2373,N,03323.8671,E,000.0,354 .3,090209,013.2,E*7A
Мне надо вытаскивать в 2 массива значения широты и долготы 6734.2373, 03323.8671. Потом с ними еще надо будет проводить кое какие математические операции, но это уже не важно, у меня проблема в разборе самой строки, вобщем никак не получается вытащить значения широт и долгот, хелпните кто может)
держи
PHP код:
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
int main() {
char fname[] = "abc.txt";
const char delim[] = ",";
char buff[100];
fstream in;
in.open(fname, fstream::in);
if (!in.is_open()) {
cerr << "Unable to open file " << fname << endl;
return 0;
}
char * tmp;
char * val;
double a, n;
while(in.getline(buff, sizeof(buff))) {
tmp = strtok(buff, delim);
while (tmp != NULL) {
tmp = strtok(NULL, delim);
if (!tmp) break;
if (strcmp(tmp, "A") == 0) {
val = strtok(NULL, delim);
if (val) a = atof(val);
} else if (strcmp(tmp, "N") == 0) {
val = strtok(NULL, delim);
if (val) n = atof(val);
tmp = NULL;
}
}
printf("A: %.4f, N: %.4f\n", a, n);
}
in.close();
return 0;
}
текущие значения ширины и долготы хранятся в переменных a и n. Добавление в массив уже прикрутишь сам, там ничего сложного 
|
|
|