Показать сообщение отдельно

  #3036  
Старый 01.06.2009, 01:43
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами: 10386906

Репутация: 599


По умолчанию

Цитата:
Сообщение от Mozy  
Помогите с этим постом
ну зависит от деталей реадизации. если нада быстрый поиск, то все строки предварительно считываются, и составляется массив ключей вида struct Record {string name; unsigned long offset; unsigned int length;};
в массиве есесно отсортировано по смещению строки. дальше в массиве находишь нужное имя, берешь смещение и длину. вычисляешь размер части файла, которая лежит за этим куском кодом типа tail_length = file_size - (record.offset + record.length);
ну и переписываешь этот хвостик по смещению, на котором находилась старая запись. в конце устанавливаешь размер файла как file_size - record.length;
усе. если массив таких структур нельзя заводить, то соотв всю инфу нужно каждый раз получать из файла. т.е. считывать строки, искать нужный ключ, итп. лень кодить, ибо стока раз уже эту фигню делал студентам, что тошнит от нее
 
Ответить с цитированием