Добавил:
bagiwow
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование / си++ / 2Semestr / Lab_7 / File_work
.h
#include<string.h>
#include<stdio.h>
CString Oem(char* );
char* tempname="..\\temp";
char* filename="..\\f.txt";
int find(ifstream& f,char* s)
{
int Size;
BIBL a;
f.seekg(0,ios::end);
Size=f.tellg();
f.seekg(0,ios::beg);
for(int i=0;i<(Size/64);i++)
{
f>>a;
if(strcmp(a.GetName(),s)==0)return i*64;
}
return -1;
}
void del(ifstream& f,char* name)
{
int Pos=find(f,name);
int Size;
BIBL b;
if(Pos==-1)
{
cout<<Oem("\n Нет такого элемента \n");
return;
}
f.seekg(0,ios::end);
Size=f.tellg();
f.seekg(0,ios::beg);
fstream NewFile(tempname,ios::out | ios::binary);
for(int i=0;i<Pos/64;i++)
{
f>>b;
NewFile<<b;
}
f>>b;
for(i=0;i<((Size-Pos)/64-1);i++)
{
f>>b;
NewFile<<b;
}
NewFile.close();
f.close();
remove(filename);
rename(tempname,filename);
}
void repl(ifstream& f,char* name)
{
int Pos=find(f,name);
int Size;
BIBL b;
if(Pos==-1)
{
cout<<Oem("\n Нет такого элемента \n");
return;
}
f.seekg(0,ios::end);
Size=f.tellg();
f.seekg(0,ios::beg);
fstream NewFile(tempname,ios::out | ios::binary);
for(int i=0;i<Pos/64;i++)
{
f>>b;
NewFile<<b;
}
f>>b;
b.Input();
for(i=0;i<((Size-Pos)/64-1);i++)
{
f>>b;
NewFile<<b;
}
NewFile.close();
f.close();
remove(filename);
rename(tempname,filename);
}
Соседние файлы в папке Lab_7