Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
~Nataly~
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
#1

Выбрать и упорядочить данные из текстового файла - C++

12.08.2009, 12:27. Просмотров 565. Ответов 8
Метки нет (Все метки)

В языке С не сильна, и программа вызвала некое недоумение)
Есть тестовый файл со следующими данными:

0.299 -0.410 960.20 4551.85 1.120 346.85 275.46 20.508 19.854 99.999 20.085 19.431 99.999 99.999 99.999 0.388 1.146 99.999 99.999 99.999 99.999 99.999 99.999 99.999 0.003 0.003 0.029 0.039 0.041 0.056 30 30 99.999 99.999 99 21.295545351 15.896836368 9 1 22.21 2008 7 31 2454678.87595153 130 g.MP9401 /Users/nataly/cfht/1013384p_23.fits 2006 SX368 2112 4644

Необходимо получить файл, где по колонкам будут выведены следующие переменные из предыдущего файла, вот укажу наименования из вышеперечисленного:
x - 21.295545351 (координаты)
y - 15.896836368 (координаты)
дата - 9 1 22.21 2008 (тут имеется в виду число, месяц, часы, минуты, год)
юлианская дата - 2454678.87595153
имя объекта - 2006 SX368

Собственно результат должен быть в колонку в виде:
x y дата юлианская дата имя объекта

Для меня эта задача непосильный труд, помогите или подскажите кто чем сможет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2009, 12:27     Выбрать и упорядочить данные из текстового файла
Посмотрите здесь:
C++ Из текстового файла с данными выбрать отдельные столбцы для записи в массив
C++ Не выводятся данные из текстового файла
C++ Считать данные текстового файла в массив
C++ Вывод на экран данные из текстового файла
C++ Выбрать из текстового файла все симметричные слова отличные от последнего и записать их в новый файл
Данные из текстового файла записать в бинарный файл C++
Прочитать из текстового файла данные в массив структур C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
schdub
2940 / 1284 / 238
Регистрация: 19.01.2009
Сообщений: 3,360
Завершенные тесты: 1
12.08.2009, 12:35     Выбрать и упорядочить данные из текстового файла #2
В исходном файле данные как-либо разделены или все сплошником через пробел?

Как классифицировать данные, не подходящие по формату. Например,
Код
0.299 -0.410 960.20 4551.85
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
12.08.2009, 12:37     Выбрать и упорядочить данные из текстового файла #3
Создать структуру где обьект етой структуры будет файл который вам нужен.
И занести в нее все что вам надо.
Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Struct str
{
float x;
float y;
Date d;
Date another_date;
}
int main()
{
FILE *f;
f=fopen("/Users/nataly/cfht/1013384p_23.fits 2006 SX368 2112 4644)","rw");
str f;
f.do_what_you_want();
return 0;
}
~Nataly~
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
12.08.2009, 12:52  [ТС]     Выбрать и упорядочить данные из текстового файла #4
Цитата Сообщение от polivets Посмотреть сообщение
В исходном файле данные как-либо разделены или все сплошником через пробел?

Как классифицировать данные, не подходящие по формату. Например,
Код
0.299 -0.410 960.20 4551.85
Данные идут сплошь, просто через пробел
Те данные которые не подходят по формату это велечины, которые нужно опустить в ходе программы, мы их не учитываем.
schdub
2940 / 1284 / 238
Регистрация: 19.01.2009
Сообщений: 3,360
Завершенные тесты: 1
12.08.2009, 13:19     Выбрать и упорядочить данные из текстового файла #5
x - 21.295545351 (координаты)
y - 15.896836368 (координаты)
дата - 9 1 22.21 2008 (тут имеется в виду число, месяц, часы, минуты, год)
юлианская дата - 2454678.87595153
имя объекта - 2006 SX368
В файле всего две координаты, и они всегда идут в одинаковом порядке?
Вообще, сколько раз могут встретиться каждый из этих объектов (данных)?
~Nataly~
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
12.08.2009, 13:23  [ТС]     Выбрать и упорядочить данные из текстового файла #6
Цитата Сообщение от polivets Посмотреть сообщение
В файле всего две координаты, и они всегда идут в одинаковом порядке?
Вообще, сколько раз могут встретиться каждый из этих объектов (данных)?
Да, координаты всего 2, а объекты встречаются только в единичном случае
schdub
2940 / 1284 / 238
Регистрация: 19.01.2009
Сообщений: 3,360
Завершенные тесты: 1
12.08.2009, 14:23     Выбрать и упорядочить данные из текстового файла #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAX 1024
 
char *p, *ptr;
char buff1[MAX], buff2[MAX];
 
// подправъте значения вот здесь
char file_to_open[] = "D:\\1.txt"; // который нужно открыть
char file_to_save[] = "D:\\2.txt"; // имя, под которым нужно сохранить
 
 
void get_next(char *name, int prop1, int prop2)
{
    int i;
 
    //p = ptr+1;
    for (i=0; i<prop1; i++)
        ptr = strchr(++ptr, ' ');
 
    p = ptr+1;
    for (i=0; i<prop2; i++)
        ptr = strchr(++ptr, ' ');
    strcat(buff2, name);
    strncat(buff2, p, (int)(ptr-p));
    strcat(buff2, "\n\0");
}
 
int main(int argc, char *argv[])
{
    buff2[0] = '\0';
 
    // читаем из файла в буфер
    FILE *fp = fopen(file_to_open, "r");
    fread(buff1, sizeof(buff1), 1, fp);
    fclose(fp);
 
    // формируем вывод
    ptr = buff1;
    get_next("x - ", 35, 1);
    get_next("y - ", 0, 1);
    get_next("дата - ", 0, 4);
    get_next("юлианская дата - ", 2, 1);
    get_next("имя объекта - ", 3, 2);
    
    // вывод в файл из формурованног буфера
    fp = fopen(file_to_save, "w");
    fwrite(buff2, strlen(buff2), 1, fp);
    fclose(fp);
    
    return 0;
}
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
12.08.2009, 22:48     Выбрать и упорядочить данные из текстового файла #8
Не совсем по теме, но проще всего это делается на perl
Perl 6
1
2
3
4
5
6
7
#!/usr/bin/perl
 
while (<>) {
    chomp;
    @list= split( / +/, $_, -1 );
    print join( " ", @list[35,36,37,38,39,40,43,47,48] ), "\n";
}
Данные лежат в файле file.dat
Скрипт лежит в файле get.pl
Запуск: perl get.pl file.dat
Вывод:
Код
21.295545351 15.896836368 9 1 22.21 2008 2454678.87595153 2006 SX368
Perl можно скачать тут - http://www.activestate.com/downloads/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2009, 10:00     Выбрать и упорядочить данные из текстового файла
Еще ссылки по теме:
Ввести из текстового файла данные в двунаправленный список C++
C++ Считать данные из текстового файла и записать их в массив float-ов
C++ Отфильтровать данные из текстового файла, оставляя только символы цифр
Нужно написать программу которая считывает данные из текстового файла C++
Считать данные из текстового файла, переписать в бинарный, и вывести в виде выровненной таблицы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
~Nataly~
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
13.08.2009, 10:00  [ТС]     Выбрать и упорядочить данные из текстового файла #9
Большое спасибо ребят, очень помогли))
Yandex
Объявления
13.08.2009, 10:00     Выбрать и упорядочить данные из текстового файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru