Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 19:44   #1
Atasik
 
Регистрация: 12.12.2010
Сообщений: 5
По умолчанию Организация доступа к файлам

Пишу программу добавления информации в любое место бинарного файла.
Метод, который должен открывать файл, его не открывает. Не могу понять почему? ПОдскажите, плиз.

Код:
#include <fstream>
#include <iostream.h>
#include <vector>
#include <russian.h> 

using namespace std;

//Класс, объекты которого производят запись в файлы
class FileWriter
{
	
	fstream *obj;
	char filename[80];
	int pos;
	char * info; 
public:
	FileWriter();
	FileWriter(char *filename);
	~FileWriter();
	int OpenFile();	   // открытие файла
	void Add(int pos,char *info);   // добавление записи в файл
};
	//Конструктор по умолчанию (только создает объект класса)
	FileWriter::FileWriter()
	{
		
		cout << "Работает конструктор" << endl;
		cout << "FileWriter initialized" << endl;
	}

	//Конструктор, принимающий в качестве параметра имя файла, в который будет производиться запись
	FileWriter::FileWriter(char *_filename)
	{
		cout << "Работает конструктор с параметроm" << endl;
		strncpy(filename,_filename,80);
		obj=new fstream();	
	}

	//Деструктор
	FileWriter::~FileWriter()
	{
		cout << "Работает деструктор" << endl;
		obj->close();
		delete obj;
	
	}

	int FileWriter::OpenFile()
	{
		cout << "Работает функция открытия файла" << endl;
		obj->open(filename, ios::app|ios::binary);
		if (!obj->is_open()) return -1;  //bool is_open() -определяет открыт ли файл
		return 0;
	}

	void FileWriter::Add(int _pos,char *_info)
	{
		cout << "Работает функция добавления информации в файл" << endl;
		pos=_pos;
		obj->seekp(pos,ios_base::beg);
		obj->write(_info,sizeof(_info));
		obj->flush();
	}

	
int main(void)
{
	FileWriter fw("File.bin");
	cout << fw.OpenFile() <<endl;
	   if(fw.OpenFile() == -1)  
   { cout << "Файл не открыт\n"; 
      return -1; 
   } 
	char ss[50];
	cout << "Vvod str" << endl;
	cin.getline(ss,49,'\n');
	fw.Add(3, ss);

Последний раз редактировалось ACE Valery; 12.12.2010 в 21:56.
Atasik вне форума Ответить с цитированием
Старый 12.12.2010, 21:40   #2
V0id
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 30
По умолчанию

Скопировал, проверил. Все работает)
V0id вне форума Ответить с цитированием
Старый 12.12.2010, 22:03   #3
Atasik
 
Регистрация: 12.12.2010
Сообщений: 5
По умолчанию

Работает? и инфу добавляет в файл?
Atasik вне форума Ответить с цитированием
Старый 12.12.2010, 22:40   #4
V0id
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Atasik Посмотреть сообщение
Работает? и инфу добавляет в файл?
Проблема была с открытием и я проверил только его.
Сейчас глянул дальше - нет, инфу не добавляет...
V0id вне форума Ответить с цитированием
Старый 13.12.2010, 22:02   #5
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Написал
Код:
cout << "Работает функция добавления информации в файл" << endl;
		pos=_pos;
		obj->seekg(pos,ios_base::beg);
	
		obj->write(_info,sizeof(_info));
		obj->flush();
Запись происходит.Единственное,что я не могу понять,так это почему он создает файл только при запуске .ехе файла,а когда запускаешь из среды создание не происходит...
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация доступа к вектору посредством итератора jennya Visual C++ 2 03.10.2010 15:14
Запрет доступа к файлам директории alexdrew Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 04.05.2010 19:22
Access 2003. Организация доступа к форме БД из Интернета. AnnaDM Помощь студентам 0 07.04.2010 16:29
Организация доступа к БД по локальной сети PavluxaF БД в Delphi 5 04.10.2009 13:03
Нет доступа к файлам на кирилеце. mogul82 PHP 2 11.11.2008 17:02