→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Открытие/Запись текстового файла winforms c++ 
Автор Сообщение
Начинающий

Регистрация: 09.04.2012
Сообщения: 1

Репутация: 0 [ ? ]
Сообщение Открытие/Запись текстового файла winforms c++
есть 2 ф-ции(чтения и записи), которые срабатывают при нажатии кнопок на форме.
При записи данных в тот же файл, от куда было чтение, возникает ошибка записи(типа процесс не может получить доступ к файлу ибо файл используется другим процессом). что делать?
Вот ф-ции, в которые передается путь к файлу

//Открытие файла
//------------------------------------------------------------------------------
void OpenF(){
int counter=0;

String^ File=this->openFileDialog1->FileName;
list_box->Items->Clear();

StreamReader^ reader = gcnew StreamReader(File);


String^ className;

int itsNumber;
String^ itsSurname;
bool itsSex;
double itsWeight;
bool itsSmoke;
int itsJob;

int postIndex;
String^ street;
int homeNumber;
int flatNumber;

int aditionalField;

while(reader->Peek() != -1)
{
String^ className=reader->ReadLine();

itsNumber=System::Int32::Parse(reader->ReadLine());
itsSurname=reader->ReadLine();
itsSex=System::Boolean::Parse(reader->ReadLine());
itsWeight=System::Int32::Parse(reader->ReadLine());
itsSmoke=System::Boolean::Parse(reader->ReadLine());
itsJob=System::Int32::Parse(reader->ReadLine());

postIndex=System::Int32::Parse(reader->ReadLine());
street=reader->ReadLine();
homeNumber=System::Int32::Parse(reader->ReadLine());
flatNumber=System::Int32::Parse(reader->ReadLine());

aditionalField=System::Int32::Parse(reader->ReadLine());

list_box->Items->Add(itsSurname);

if(className == "Student")
{
Address add(postIndex,street,homeNumber,flatNumber);

array.push_back(new Student());

array[counter] -> setNumber(itsNumber);
array[counter] -> setSurname(itsSurname);
array[counter] -> setSex(itsSex);
array[counter] -> setWeight(itsWeight);
array[counter] -> setSmoke(itsSmoke);
array[counter] -> setJob((job)itsJob);
array[counter] -> setAddress(add);

(dynamic_cast<Student*>(array[counter])) -> setGroupNumber(aditionalField);
}

if(className == "Teacher"){

Address add(postIndex,street,homeNumber,flatNumber);

array.push_back(new Teacher());

array[counter] -> setNumber(itsNumber);
array[counter] -> setSurname(itsSurname);
array[counter] -> setSex(itsSex);
array[counter] -> setWeight(itsWeight);
array[counter] -> setSmoke(itsSmoke);
array[counter] -> setJob((job)itsJob);
array[counter] -> setAddress(add);

(dynamic_cast<Teacher*>(array[counter])) -> setExperience(aditionalField);
}

++counter;

}

reader->Close();
}
//Запись списка в файл
//-------------------------------------------------------------------------------
void listSave(String^ FileName){

unsigned int i;

FileInfo^ f = gcnew FileInfo(FileName);
StreamWriter^ pwriter = f->CreateText();

//StreamWriter^ pwriter = gcnew StreamWriter(FileName);
for(i=0; i < array.size(); i++)
{

pwriter->WriteLine( array[i]->getClassName());

pwriter->WriteLine( array[i]->getNumber()) ;
pwriter->WriteLine( array[i]->getSurname()) ;
pwriter->WriteLine( array[i]->getSex() ) ;
pwriter->WriteLine( array[i]->getWeight()) ;
pwriter->WriteLine( array[i]->getSmoke()) ;
pwriter->WriteLine( array[i]->getJob() ) ;

pwriter->WriteLine( array[i]->getAddress().getIndex() ) ;
pwriter->WriteLine( array[i]->getAddress().getStreet() ) ;
pwriter->WriteLine( array[i]->getAddress().getHome() ) ;
pwriter->WriteLine( array[i]->getAddress().getFlat() ) ;

if(array[i]->getClassName() == "Student"){
pwriter->WriteLine( (dynamic_cast<Student*>(array[i]))->getGroup()) ;
}
if(array[i]->getClassName() == "Teacher"){
pwriter->WriteLine( (dynamic_cast<Teacher*>(array[i]))->getExperience()) ;
}

}
pwriter->Close();

}


У вас нет необходимых прав для просмотра вложений в этом сообщении.


09.04.2012 17:18
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»