|
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
|
|||||||||||
Запись в структуру из файла. База данных17.12.2013, 17:33. Показов 3101. Ответов 23
Метки нет (Все метки)
Добрый день. Помогите советом, очень нужно, т.к. собираюсь доделать за ближайшие часы.
Я пишу базу данных на основе двусвязного списка. Сделал, чтобы все записывалось в файл. Теперь пишу, чтобы можно было считать и дописать базу. Вот в чем проблема: вот моя база в txt:
Теперь я построчно считываю файл в строки, разделяю на слова и пытаюсь запихнуть все это обратно в структуры. Если кто знает более рац способ, сообщите пж. вот на чем остановился:
В общем, по словам разделяется и выводится на экран, но вылетает ошибка связанная с памятью. Подозреваю, что из-за последней строчки с =====. Как ее не трогать я хз, сверху seekg использовал, а снизу как..
0
|
|||||||||||
| 17.12.2013, 17:33 | |
|
Ответы с готовыми решениями:
23
Чтение данных из файла и запись в структуру
|
|
5500 / 4895 / 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
|
|
|
5500 / 4895 / 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
|
|||||||||||
|
5500 / 4895 / 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
|
|
|
5500 / 4895 / 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
|
|
|
5500 / 4895 / 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
|
||||||
|
5500 / 4895 / 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
|
||||||
|
5500 / 4895 / 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
|
|
|
5500 / 4895 / 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
Ввод с клавиатуры данных и запись их в структуру Запись структуры и чтение из файла в структуру ( как бы лучше ) Ввод данных в структуру из файла Чтение данных из файла в структуру Чтение данных из файла в структуру Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|