|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|||||||||||
Запись в структуру из файла. База данных17.12.2013, 17:33. Показов 3052. Ответов 23
Метки нет (Все метки)
Добрый день. Помогите советом, очень нужно, т.к. собираюсь доделать за ближайшие часы.
Я пишу базу данных на основе двусвязного списка. Сделал, чтобы все записывалось в файл. Теперь пишу, чтобы можно было считать и дописать базу. Вот в чем проблема: вот моя база в txt:
Теперь я построчно считываю файл в строки, разделяю на слова и пытаюсь запихнуть все это обратно в структуры. Если кто знает более рац способ, сообщите пж. вот на чем остановился:
В общем, по словам разделяется и выводится на экран, но вылетает ошибка связанная с памятью. Подозреваю, что из-за последней строчки с =====. Как ее не трогать я хз, сверху seekg использовал, а снизу как..
0
|
|||||||||||
| 17.12.2013, 17:33 | |
|
Ответы с готовыми решениями:
23
Чтение данных из файла и запись в структуру
|
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 17.12.2013, 18:47 | |
|
Обчно, в файл всякую красоту не записывают, это только мешает обработке файла (в файл нужно только поля структур писать). Красоту можно и при выводе делать. Пропустить ненужную строку можно без seekg(), просто сделать чтение в какую-либо временную строку. Зачем читать строки и на слова разделять? Можно читать словами (infile >>) в поля структуры, или выводить (не знаю, что там нужно).
1
|
|
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|
| 17.12.2013, 19:34 [ТС] | |
|
alsav22, а записи структур разделять пробелом?
0
|
|
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 17.12.2013, 19:46 | ||
|
Добавлено через 2 минуты Если неизвестно сколько структур в файле, можно сначала посчитать (строки), чтобы нужный размер памяти выделить, или записывать, в начало файла (первой строкой), количество структур. Добавлено через 6 минут Если поля int и массивы char, то можно в бинарном режиме записывать\читать (хотя тут есть ньюансы, связанные с выравниваем структур в памяти).
0
|
||
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|||||||||||
| 17.12.2013, 21:06 [ТС] | |||||||||||
|
объясните еще, почему у меня вот такой вывод пашет:
0
|
|||||||||||
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 17.12.2013, 21:26 | |
|
Что значит "пашет", "не пашет"?
0
|
|
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|
| 17.12.2013, 21:55 [ТС] | |
|
работает\не работает
0
|
|
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 17.12.2013, 21:57 | |
|
0
|
|
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|
| 17.12.2013, 21:59 [ТС] | |
|
в обоих случаях компилятор не ругается. Только в "работающем" выводится все, что мне нужно. А в неработающем - первые несколько символов из имени. Тут явно какая-то заморочка с памятью - во-первых с переводом из собственного типа данных struct Data в char, а во-вторых результат менялся если менять выделяемую память - второй аргумент функции. Я его даже вручную задавал с запасом в 8 байт.
Я все варианты поперебрал, не робит и всё( хотя такое уже много раз встречал в кодах, вот например: главное тут пост#8
0
|
|
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 18.12.2013, 00:34 | |
|
Структуру покажите. Сколько там полей? В первом посте три, в пятом уже две... Надеюсь, там не string? Среда какая?
0
|
|
|
18 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 59
|
|
| 18.12.2013, 02:58 | |
|
...
0
|
|
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
||||||
| 18.12.2013, 05:48 [ТС] | ||||||
|
VS 2010, структура:
const char и int
0
|
||||||
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
| 18.12.2013, 06:18 | |||||||||||
|
Такая - должна без особых проблем записываться в бинарном режиме. Если упростить:
0
|
|||||||||||
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
||||||
| 18.12.2013, 06:36 [ТС] | ||||||
|
использовал ваше чтение.
мой текст файл выглядит так:
там где ввод не обращайте внимание, не весь код закомментил.
0
|
||||||
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 18.12.2013, 17:26 | ||
|
0
|
||
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|
| 18.12.2013, 19:48 [ТС] | |
|
Оно подходит и для текстового, но только не всегда знаем точный объем памяти, который нужно выделить под рид.
Добавлено через 3 минуты То что было нужно - сделал, спасибо Вам большое за помощь!
0
|
|
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 18.12.2013, 19:49 | |
|
0
|
|
|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|
| 18.12.2013, 20:03 [ТС] | |
|
Это получено чисто экспериментально=)
Добавлено через 1 минуту работает и запись и чтение, но там вечные промахи в памяти
0
|
|
| 18.12.2013, 20:08 | |
|
0
|
|
|
5 / 5 / 2
Регистрация: 23.10.2013
Сообщений: 18
|
|
| 18.12.2013, 20:14 | |
|
outfile.write((char*)&x[i],sizeof(x[i])); outfile.write((char*)&x[i],sizeof(надо имя структуры а не отдельный элемент ));
0
|
|
| 18.12.2013, 20:14 | |
|
Помогаю со студенческими работами здесь
20
Ввод с клавиатуры данных и запись их в структуру Запись структуры и чтение из файла в структуру ( как бы лучше ) Ввод данных в структуру из файла Чтение данных из файла в структуру Чтение данных из файла в структуру Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 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 считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|