Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
1

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

12.08.2009, 12:27. Просмотров 822. Ответов 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 дата юлианская дата имя объекта

Для меня эта задача непосильный труд, помогите или подскажите кто чем сможет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2009, 12:27
Ответы с готовыми решениями:

Получить и упорядочить данные из текстового файла
Здравствуйте! Имеется текстовый файл следующего содержания: // id|value1|value2|value3 #TEXT1...

Выбрать данные о проводниках и упорядочить их по убыванию удельного веса
Создать файл f. содержащий сведения о веществах: название вещества, его удельный вес, проводимость...

Выбрать данные о проводниках и упорядочить их по убыванию удельных весов
Дан файл f, содержащий сведения о веществах: указывается название вещества, его удельный вес и...

Упорядочить лексикографические строки текстового файла
Здравствуйте. помогите пожалуйста решить.28 числа экзамен.из 25 задач не могу решить только эти. я...

8
Эксперт С++
3056 / 1398 / 421
Регистрация: 19.01.2009
Сообщений: 3,760
12.08.2009, 12:35 2
В исходном файле данные как-либо разделены или все сплошником через пробел?

Как классифицировать данные, не подходящие по формату. Например,
Код
0.299 -0.410 960.20 4551.85
0
158 / 157 / 47
Регистрация: 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;
}
0
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
12.08.2009, 12:52  [ТС] 4
Цитата Сообщение от polivets Посмотреть сообщение
В исходном файле данные как-либо разделены или все сплошником через пробел?

Как классифицировать данные, не подходящие по формату. Например,
Код
0.299 -0.410 960.20 4551.85
Данные идут сплошь, просто через пробел
Те данные которые не подходят по формату это велечины, которые нужно опустить в ходе программы, мы их не учитываем.
0
Эксперт С++
3056 / 1398 / 421
Регистрация: 19.01.2009
Сообщений: 3,760
12.08.2009, 13:19 5
x - 21.295545351 (координаты)
y - 15.896836368 (координаты)
дата - 9 1 22.21 2008 (тут имеется в виду число, месяц, часы, минуты, год)
юлианская дата - 2454678.87595153
имя объекта - 2006 SX368
В файле всего две координаты, и они всегда идут в одинаковом порядке?
Вообще, сколько раз могут встретиться каждый из этих объектов (данных)?
0
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
12.08.2009, 13:23  [ТС] 6
Цитата Сообщение от polivets Посмотреть сообщение
В файле всего две координаты, и они всегда идут в одинаковом порядке?
Вообще, сколько раз могут встретиться каждый из этих объектов (данных)?
Да, координаты всего 2, а объекты встречаются только в единичном случае
0
Эксперт С++
3056 / 1398 / 421
Регистрация: 19.01.2009
Сообщений: 3,760
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;
}
1
Эксперт С++
7171 / 3229 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
12.08.2009, 22:48 8
Не совсем по теме, но проще всего это делается на perl
Perl
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/
2
0 / 0 / 0
Регистрация: 12.08.2009
Сообщений: 16
13.08.2009, 10:00  [ТС] 9
Большое спасибо ребят, очень помогли))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2009, 10:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Описать структуру с полями, считать данные из текстового файла, вывести данные, подсчитать количество
Доброе утро. С C# я знаком весьма посредственно, однако появилась необходимость выполнить на нем...

Типизированные файлы. Выбрать данные о проводниках и упорядочить их по убыванию удельных весов
Дан файл F, содержащий сведения о веществах указывается название вещества, его удельный вес и...

Из текстового файла с данными выбрать отдельные столбцы для записи в массив
работа с двумерными массивами и файлами Здравствуйте я начинающий программист и у меня возник...

Выбрать из текстового файла строки, содержащие даты за определённый период времени
Добрый день. Есть куча TXT файлов я с помощью bat файла выбираю только строки со словом Отключение...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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