Прочете ли какво съм написал? За сега разговора прилича повече на монолог.
Най-напред искам да благодаря за съвета. Всъщност имам следните идеи за изтриване на елемент във файл:
1. Като се запълни елемента за изтриване с празно съдържание (Магдалина Тодорова)
2. Като се запише последния елемент на мястото на елемента за изтриване и се изчисти файла до края.
3. Като се прехвърлят всички следващи елементи напред, заемайки мястото на елемента за изтриване.
4. Като се маркират елементите за изтриване и след това файлът се презапише в нов файл, като се прескочат изтритите.
Както вече написах, кода който имам работи коректно във вижуъл С, но не и в Dev. Ето го:
void Delete(fstream &iofile)
{
iofile.open("Ukazatel.txt", ios::in|ios::out);
string name;
cout<<"Enter name:";
getline(cin, name); cin.get();
string line;
int pos_write, pos_delete;
while (getline(iofile, line))
if (line.find(name)!=string::npos)
{cout<<line<<endl;
cout<<"Are you sure:(Y/N)";
char otg = cin.get(); cin.get();
if (toupper (otg)=='Y')
{iofile.seekg(-32, ios::cur);
pos_write = iofile.tellg();
iofile.seekg (-32, ios::end);
pos_delete = iofile.tellg();
getline (iofile,line);
iofile.seekp (pos_write);
iofile<<line<<endl;
int fd = _open ("Ukazatel.txt", _O_RDWR );
_chsize(fd, pos_delete);
iofile.seekg(pos_write);
}
}
iofile.clear();
iofile.close();
}
Ако някой може да ми помогне да го адаптирам за Dev C ще му бъда много благодарна.