|
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
|
||||||
Чтение из бинарного файла06.04.2009, 20:20. Показов 3471. Ответов 8
Метки нет (Все метки)
Создала Базу данных. запись в файл происходит, а чтение из файла не получается. исправьте, пожалуйста, или подскажите как?
0
|
||||||
| 06.04.2009, 20:20 | |
|
Ответы с готовыми решениями:
8
Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется
Чтение бинарного файла |
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||||||||||
| 07.04.2009, 02:41 | ||||||||||||||||
то есть если у тебя там 100 подструктур и в них содержатся данные, то у тебя все эти 100 подструктур скопируются, а потом только функция начнёт выполнять своё тело
0
|
||||||||||||||||
|
Заблокирован
|
|
| 07.04.2009, 13:21 | |
|
kitten у тебя ничего не выходит, т.к. в твоей структуре dataRow есть поля char *. Если хочешь в них что то записать - нужно динамически выделять память для них
dataRow.type_of_processors = (char *)malloc(sizeof(char)*n); где n число символов или же просто вбить конкретное число символов типа этого char type_of_processors[64]; //тип процессоров и сразу всё получится....
0
|
|
|
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21
|
|
| 07.04.2009, 17:52 [ТС] | |
|
Вы кажется не совсем поняли мою проблему! В файл у меня записывается, НЕ происходит чтения из файла!что мне с этим делать???
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
| 08.04.2009, 00:40 | ||||||
перед каждой строкой должна быть её длина, так как функция выделения памяти, которая есть , определяет сколько выделять по числу перед строкой
0
|
||||||
|
Заблокирован
|
|||||||||||
| 08.04.2009, 10:58 | |||||||||||
|
Я прекрасно понял проблему!!!
Говорю же если пишешь динамикой то со чтением в структуру сложновато, т.к. записи в конечном итоге имеют различную длину, вот более или мене работоспособны код, обрати внимание когда всё фиксированно то и прога не вылетает. Ошибки в твоём коде, 1. твой файл базы данных в ряде функций не закрывается, но это не сильная ошибка вдруг ты не хочешь чтоб другие проги имели к нему доступ 2. И какже ты хочешь число записей в своей базе подсчитать, а????Ели у тебя даже переменной под твои RowNumber не отведено, я решил єту проблему, тем что в моём варианте у меня записи фиксированной длины и я могу размер файла на размер структуры DataRow поделить вот и выйдет число. 3. в случае сбоя в readTable например указатель в файле застрял твоя addRow может привести к зацикливанию!!! 4. это ж в каком учебнике такое определение длины строки написано????
єто меня вообще поразило!!!5 Писать прототипы функций впереди main() - єто очень плохой стиль программирования, єто в любом учебнике написано,вот Вообщем kitten, просто учти мои слова в своей проге, а вообще если ты хочешь динамики в строках, то заведи в своём файле разделители между полями структуры DataRow, к примеру пусть єто символ @ а также между самими структурами например > и тогда можно читать весь файл как текст а в нём искать подстроки >DataRow>, а уже в єтих подстроках искать поля @поле@ и советую завести переменную для общего числа структур DataRow содержащихся в файле, так будет легче віделять память и к томуже в настоящих БД при их повреждении можно получить число повреждённых записей...
1
|
|||||||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 09.04.2009, 00:48 | ||
|
YurA_280784,
объявление в старом стиле - f(); объявление в новом стиле (89) - f(int, int); они тип void ввели из-за этого, что нужно было пустой список аргументов как-то подчеркнуть (что это не объявление в старом стиле, а именно прототип) - f(void); а стиль - конечно, такие полотна рано или поздно всё равно нужно разносить по файлам, и удобнее это делать когда есть и функции отдельно (определения) и объявления отдельно, тогда леко функции в файлы .c или .cpp, объявления в файлы .h
0
|
||
|
Заблокирован
|
|
| 09.04.2009, 09:34 | |
|
Да да да заголовок функции общибся(не прототип, молодец accept)...
заголовки майн прототипы
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 09.04.2009, 10:56 | |
|
там просто бывает ещё определение в разных стилях, от этого зависит что будет при вызове с аргументами (неявные приведения типов)
главное, что прототип - объявление в новом стиле, когда типы всех параметров функции указываются обязательно (имена можно не указывать) и когда параметров нет void ставится обязательно (от этого меняется процесс при вызове функции, если там void не поставить, объявление будет считаться в старом стиле и из-за этого аргументы в вызове будут расширяться до int и до double), а когда записано в новом стиле (все типы указаны), то аргументы будут приводиться к типам из объявления а потом эти аргументы, уже преобразованные, будут сравниваться с аргументами из определения функции (оно тоже бывает в старом и новом стиле), старый стиль - это когда типы параметров описываются после круглых скобок до фигурных
0
|
|
| 09.04.2009, 10:56 | |
|
Помогаю со студенческими работами здесь
9
Чтение бинарного файла Чтение бинарного файла Чтение из бинарного файла Чтение бинарного файла Чтение бинарного файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|