|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.03.2010, 13:52 | #1 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
Работа с файлами
Доброго времени суток!
У меня есть лабораторная по прямому доступу к файлу(создаем аналог бд). Я вот только не могу себе представить как, это можна сделать. К примеру у меня одна запись в БД имеет стандартный размер 100 байт, как мне можна сразу перейти к записи по номеру 10? Ну и как все это сохранять. Ведь к примеру если я использую тип int то значит поле занимает 4 байта, но в файле записаное число может занимать от 1 до 10 байт. |
14.03.2010, 14:21 | #2 |
Пользователь
Регистрация: 11.03.2010
Сообщений: 24
|
Народ!!! Подскажите какой командой можно считать инфу из файла, чтобы вывести на экран? (Borland 3.1)
|
14.03.2010, 14:54 | #3 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Если ты будешь записывать структуру в файл в двоичном режиме, то ничего подбного не будет с различием длин и тд...
Пусть имя структуры - myDB myDB dat; fstream file("data.bin",ios::binary|ios:u t); file.write(reinterpret_cast<char*>( &dat), sizeof(myDB)); А читай с помощью read, аналогичным образом...по файлу жвигайся с помощью seekg,... ну как бы все
Если я помог вам - порадуйте меня, нажмите на весы слева
|
14.03.2010, 15:13 | #4 |
Пользователь
Регистрация: 11.03.2010
Сообщений: 24
|
я тут туго что разбираю (
Первое что хочу спросить, видел на форумах пишут дбэшка и т.п. - что это значит не могли бы сказать. Второе что за двоичный режим. третье что делает вот эта строчка кода --> ios::binary|ios:u t); |
14.03.2010, 18:16 | #5 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
balalay12
Вообще-то это было ТС'у, а не вам. Как бы одна тема - один автор.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
14.03.2010, 18:36 | #6 |
Пользователь
Регистрация: 11.03.2010
Сообщений: 24
|
аа... блин, извиняюсь ((
|
15.03.2010, 01:04 | #7 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
спасибо кажеться работает.
только вот возникла проблема с концом файла. Как можна проверит находимся ли мы на конце файла? Попробовал написать такое: Код:
|
15.03.2010, 09:03 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А ты получай размер файла, и если он равен нулю то не выполняй цикл.
Впрочим я удивлен что он выполняется при пустом файле.
I'm learning to live...
|
15.03.2010, 11:25 | #9 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
http://www.cplusplus.com/reference/iostream/ios/eof/
насколько я понял eof работает только если предидущая процедура считывания дошла до конца файла. А посколько перед этим я процедур не использовал - значит флаг не установлен. А как с помощью этого класа (fstream) узнать размер файла. И как лучше всего удалять и переименовівать файлі? |
15.03.2010, 22:03 | #10 |
Пользователь
Регистрация: 29.04.2009
Сообщений: 33
|
все кажеться нашел как узнать размер файла:
Код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с файлами | [MI_nor] | Общие вопросы C/C++ | 4 | 08.03.2009 17:50 |
Работа с файлами | snake-as | Общие вопросы Delphi | 1 | 19.10.2008 13:38 |
Работа с файлами | Acros | Помощь студентам | 5 | 14.02.2007 18:40 |