Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152

Как считать содержимое файла в структуру (MFC)?

30.01.2012, 13:55. Показов 2459. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет всем ! как можно считать такие данные с файла и сохранить в структуру с 5 полями (date, time ... ) (MFC C++)
input.txt
Code
1
2
3
4
2005-09-07    04:21:11      2   330 CreateService for wuauserv succeeded
2005-09-07    04:27:55      856 58c Service Main starts
2005-09-07    04:27:56      856 58c Using BatchFlushAge = 31316.
2005-09-07    04:27:56          856 58c Using SamplingValue = 403.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2012, 13:55
Ответы с готовыми решениями:

Не удается корректно прочитать содержимое текстового файла (MFC)
Нужно присвоить переменной типа CString содержимое текстового файла, учитывая \r\n \0. Проблема в том, что теряются символы перевода строки...

MFC как считать с буфера несколько байтов?
Привет. Помогите пожалуйста. Вот считываю один байт с буфера. Как считать например 4 байта следующих друг за другом (0,1,2,3 байты)? ...

Как открыть txt документ и считать в переменную string содержимое, используя CFile?
Добрый день! Подскажите пожалуйста! Как открыть txt документ и считать в переменную string содержимое, используя CFile?

9
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
30.01.2012, 14:03
Сделай структуру
C
1
2
3
4
5
6
7
8
9
10
11
12
struct
{
    int year;
    int mont;
    int day;
    int hour;
    int minute;
    int second;
    int QL;     
    int PL;
    char CL[256];
};
и парси её поля fscanf-ом
C
1
fscanf(f,"%d-%d-%d %d:%d:%d %d %d %s\n",&year,&month,....,CL);
на мой взгляд так проще всего будет считывать структурированный txt-ник
1
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
30.01.2012, 14:58  [ТС]
в MFC файл считавают вроде так CStdioFile input(L"D:\\input.txt",CFile::modeRead);
чет не получается
C++
1
2
3
4
5
FILE *conf_file;
    conf_file = fopen("D:\\input.txt","r");
    int i=0;
    while(!feof(conf_file),i++)
    fscanf(conf_file,"%d-%d-%d %d:%d:%d %d %d %s\n",&st[i].year,&st[i].month,&st[i].day,&st[i].hour,&st[i].minute,&st[i].second,&st[i].QL,&st[i].PL,st[i].CL);
Добавлено через 9 минут
может считать с файла строку и разбить сттроки по табуляции, только как можно разбить
C++
1
2
3
4
CString string;
    CStdioFile input(L"D:\\input.txt",CFile::modeRead);
    while(input.ReadString(string))
        m_list.AddString(string);
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
30.01.2012, 15:42
videolord, у вас всё смешалось. В CListCtrl добавляется совсем не AddString а через InsertItem и SetItem. На счёт этого
Цитата Сообщение от videolord Посмотреть сообщение
CStdioFile
скажу что есть ещё CFile и плюсовый потоковый ввод через ifstream. Я выложил наиболее простой и эффективный для данной задачи код. Вообще в файл лучше писать и читать сразу структурой(правда циферок не будет тогда видно). Делается это с помощью Read Write...
Я уже писал вам в посте о диспетчере что в MFC таблицу проще всего делать через CListCtrl вы пробовали что нибудь в этом направлении???
Пока поищу вам ссылку на готовый проект...

Добавлено через 2 минуты
videolord, вот Вам ссылка на готовый проект в MFC
Как загрузить в ListView системные иконки?
0
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
30.01.2012, 16:14  [ТС]
чет у меня не получается fscanf 'ом считывать, што я сделал не так?
C++
1
2
3
4
      FILE  * conf_file = fopen("D:\\input.txt","r");
        int i=0;
        while(!feof(conf_file),i++)
        fscanf(conf_file,"%d-%d-%d %d:%d:%d %d %d %s\n",&st[i].year,&st[i].month,&st[i].day,&st[i].hour,&st[i].minute,&st[i].second,&st[i].QL,&st[i].PL,st[i].CL);
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
30.01.2012, 18:03
videolord, понятное дело что не работает, условие окончания некорректно
!feof(f),i++ - будет всегда проверка i++, а не feof(f), єто же операнды через запятую
Вот так попробуй
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
FILE  * conf_file = fopen("D:\\input.txt","r");
        int i=0;
        while(!feof(conf_file))
        if(
        fscanf
        (
        conf_file,
        "%d-%d-%d %d:%d:%d %d %d %s\n",
        &st[i].year,
        &st[i].month,
        &st[i].day,
        &st[i].hour,
        &st[i].minute,
        &st[i].second,
        &st[i].QL,
        &st[i].PL,
        st[i].CL//st[i].CL - не по ссылке - это строка!
        )
    )
    {//Я специально поставил скобки, можно и без них
        i = i + 1;
    }
1
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
30.01.2012, 18:26  [ТС]
завис, не получается
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
30.01.2012, 18:58
Цитата Сообщение от videolord Посмотреть сообщение
завис, не получается
- ну вы же память под массив структур не выделили, ну что ж вы детские ошибки делаете
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <stdlib.h>
 
struct FILEDATA
{
    int year;
    int month;
    int day;
    int hour;
    int minute;
    int second;
    int QL;     
    int PL;
    char CL[256];
};
 
int main()
{
    int i=0,n = 0;
    FILEDATA buf, *st;
    FILE  * f = fopen("input.txt","r");
    if(!f)
        printf("Error open input.txt\n");
    else
    {
        //Ñíà÷àëî íàäî ïîñ÷èòàòü ÷èñëî ñòðóêòóð â ôàéëå
        while(!feof(f))
        {
            if(
                    fscanf
                    (
                    f,
                    "%d-%d-%d %d:%d:%d %d %d %[^\n]\n",
                    &buf.year,
                    &buf.month,
                    &buf.day,
                    &buf.hour,
                    &buf.minute,
                    &buf.second,
                    &buf.QL,
                    &buf.PL,
                    buf.CL
                    )
            )
            {
                    n = n + 1;
            }
        }
        st = (FILEDATA *)malloc(n*sizeof(FILEDATA));
        fseek(f,0,SEEK_SET);//À âîò òåïåðü ñ÷èò³âàåì èõ â ìàññèâ
        while(!feof(f))
        if(
                fscanf
                (
                f,
                "%d-%d-%d %d:%d:%d %d %d %[^\n]",
                &st[i].year,
                &st[i].month,
                &st[i].day,
                &st[i].hour,
                &st[i].minute,
                &st[i].second,
                &st[i].QL,
                &st[i].PL,
                st[i].CL
                )
        )
        {
            printf("%d-%d-%d %d:%d:%d %d %d %s\n",
                st[i].year,
                st[i].month,
                st[i].day,
                st[i].hour,
                st[i].minute,
                st[i].second,
                st[i].QL,
                st[i].PL,
                st[i].CL);
                i = i + 1;
        }
        fclose(f);
    }
    system("pause");
    return 0;
}
Миниатюры
Как считать содержимое файла в структуру (MFC)?  
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
30.01.2012, 20:11
В MFC для работы с файлами потоки же есть насколько я знаю (хотя по MFC я лишь теоретик).
0
 Аватар для videolord
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
30.01.2012, 20:39  [ТС]
-=ЮрА=-, классно! спасибо огромнейшее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2012, 20:39
Помогаю со студенческими работами здесь

Подскажите, как считать из файла структуру
Только начали работу с файлами на С. Поэтому пока что не совсем разобралась, что и куда. Struct notebook { char...

Как считать структуру из файла и вывести ее?
Как считать структуру из файла и вывести ее?? Вот файл: Почему-то не работает #include &lt;iostream&gt; #include...

Как правильно считать (записать) структуру из файла?
не хочет правильно читать, вроде пишет, вроде правильно, не уверен. Заранее благодарен за помощь void __fastcall...

Как считать из файла структуру через разделитель?
student *study=new student; for (i=0;i&lt;counter;i++) { fin &gt;&gt; study.name; fin &gt;&gt; study.group; fin &gt;&gt;...

Как правильно считать структуру с разделителем из файла?
Вечер добрый. Имеется файл, с содержанием вида: Имеется структура, массив структур и единичный элемент структуры: struct...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru