Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
83
Добавлен:
10.12.2013
Размер:
1.37 Кб
Скачать

#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