С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631

Как считать данные из файла в определенной структуре?

09.12.2011, 15:03. Показов 3646. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток...
написал для двух кнопок код одна добавляет человека тоесть " его фамилию дату время" хранит все в структуре, вторая кнопка сохраняет эту структуру в фиксированную папку с неизменным именем...
надо написать теперь код на третью кнопку, которая будет считывать структуру из файла и заносить ее в поле листбокс, а название файла будет вводится в поле едит, собственно у меня вопрос по коду такой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ifstream inf(name);
    while (!inf.eof()){
        if(on){ //если до этого список был пуст, то
            ptr=list; //записываем в него первый элемент
            on=false;
        }else{//если список не пуст, то записываем в него текущий элемент (настраиваем указатель на след. элемент)
            ptr->next=new sp;
            ptr=ptr->next;
        }
        inf>> ptr->elfile.name; //читаем конкретные данные в текущий элемент списка
        inf>> ptr->elfile.data;
        inf>> ptr->elfile.upd;
        inf.ignore();
    }
    ptr->next=NULL; //для последнего элемента списка указатель на следующий элемент не определен/пуст (установлен в NULL)
    inf.close();
    return list; //  возвращаем полученный список
}
выше был код из лабы по с++ , если ли в билдере функции чтоб можно было заменить цикл пока не будет достигнут конец файла while (!inf.eof()), потом заменить ifstream inf(name) открытие на чтение,
и собственно как заменить сам блок считывания который тут представлен в таком виде
C++
1
2
3
inf>> ptr->elfile.name; //читаем конкретные данные в текущий элемент списка
inf>> ptr->elfile.data;
inf>> ptr->elfile.upd;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2011, 15:03
Ответы с готовыми решениями:

Как считать данные из txt файла, из определенной строки,столбца?
i=0 Do Until EOF(2) Line Input #2, mytext Dannie(i)=mytext i=i+1 loop Наверняка необязательно заполнять массив...

Как считать данные из файла?
Здравствуйте! Для дальнейшего выполнения программы необходимо знать имя файла. пробовал получить его с помощью openFileDialog, но пока...

Как считать данные из файла?
Здраствуйте) Помогите, пожалуйста, справится с такой задачей. Есть файл с таким содержанием A 0.32 B 0.2 C 0.13 Каким...

3
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
09.12.2011, 17:20
Так можно, например:
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
struct stMy
{
        int Number;
        char Name[10];
        int Value;
};
 
using namespace std;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        stMy myStructObject[20];
 
        // чтение из файла в структуру
        ifstream ifs("C:\\123.txt");
        int len = 0;
        ifs.read((char*)&len, 4); // считываем размер структуры
        ifs.read((char*)&myStructObject, len); // считываем остальные данные из файла в структуру
        ifs.close();
 
        // вывод информации о структуре в Memo
        if (len)
        {
                for ( int i = 0; i < 20; i++ )
                {
                        Memo1->Lines->Add(myStructObject[i].Number);
                        Memo1->Lines->Add(myStructObject[i].Name);
                        Memo1->Lines->Add(myStructObject[i].Value);
                        Memo1->Lines->Add("");
                }
        }
 
        // Заполнение структуры
        for ( int i = 0; i < 20; i++ )
        {
                myStructObject[i].Number = i;
                strcpy(myStructObject[i].Name, String("Name" + String(i)).c_str());
                myStructObject[i].Value = random(777);
        }
 
        // Запись структуры в файл
        ofstream ofs("C:\\123.txt");
        len = sizeof(myStructObject);
        ofs.write((char*)&len, 4); // сначала запись размера структуры
        ofs.write((char*)&myStructObject, sizeof(myStructObject)); // потом сама структура
        ofs.close();
}
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
10.12.2011, 14:55  [ТС]
Цитата Сообщение от kzru_hunter Посмотреть сообщение
_fastcall TForm1::TForm1(TComponent* Owner)
* * * * : TForm(Owner)
а для чего вообще этот раздел? что в нем обычно описывается? в разделе
void __fastcall TForm1::Button1Click(TObject *Sender)
для нажатия кнопки, а то зачем?

 Комментарий модератора 
Правила
2.4. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.12.2011, 15:55
если коротко, то в эту секцию можно/нужно помещать все, что должно быть объявлено, инициализировано, выполнено до создания формы
да не обращайте внимания, пускай лежит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2011, 15:55
Помогаю со студенческими работами здесь

Как ввести данные из определённой строки текстового файла в переменную?
необходимо в переменной second указать четвертую строку q.txt @echo off setlocal enabledelayedexpansion set file=text.txt set...

Как считать определенные данные с файла
Добрый день. Задали в универе курсовую &quot;игра Змейка&quot; (в Qt 5.4 C++). В ней уже реализовано, что когда игрок проигрывает появляется...

Как считать данные с типизированного файла
Коллеги, жутко давно не писал на паскале, вот вспомнить пришлось... и какой то бред получается. Собственно описан файл типа real надо с...

Как считать данные из файла в массив
Собственно , есть файл .txt в нем записаны числа, мне нужно считать данные из файла в массив, потом отсортировать массив(это я знаю как),...

Как считать данные из файла json?
Как считать данные из файла json следующего содержания? ,&quot;dps&quot;:,,,,,,,,,,,...] Чтоб получить: data = ,,,,,,,,,,,...]


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru