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

Форум программистов: 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 сообщение ] 


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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