Удаление записи из типизированного файла

Доброго времени суток! Ребят, пишу программу-тестер которая записывает вопросы с ответами в тип.файл, хочу добавить возможность удалять вопросы из теста, Вопрос - как это сделать?? Подскажите пожалуйста...перешарил весь гугл вдоль и поперек уже, ничего дельного найти не могу, вот мой кодтак я организовываю вопросы, ответы в тесте:
.....................constNQ=100;//максимальное число вопросовNA=3;//максимальное число ответов type t_Test=record QW:array[1..NQ] of String[200]; //массив вопроса An:array[1..NQ,1..NA] of String[100];//ответы двумерный массив Ra:array[1..NQ] of integer;//правильный ответ Bb:array[1..NQ]of integer;// балл за правильный ответ zapis_K:byte; //запись общего кол-ва вопросов zapis_B_vsego:byte;//запись общего кол-ва  баллов Res:array [1..NQ] of integer;//результат end;var Test:t_Test;   FTest:File of  t_Test; //файл для создания теста   n:byte;    //текущий вопрос   k:byte;     //количество вопросов   ball:integer;     //баллы   FileName:String;...............................   //пытался удалять при помощи временного файла   tempTest:t_test;   //файл для удаления записи   f,fa:integer;
собственно процедуры записи-чтения
 procedure WriteTest; begin     //создание файла  при записиAssignFile(FTest,FileName+'.dat');// связь файловой переменной с файлом на дискеRewrite(FTest);//Создание файлаWrite(FTest,Test);//записываем тест в файлCloseFile(FTest); end;procedure ReadTest;  beginAssignFile(FTest, FileName);// связь файловой переменной с файлом на дискеReset(FTest);Read(FTest,Test);//читаем тест из файлаCloseFile(FTest); end;
С этим проблем у меня нету.Пробовал сам 2 варинта удаления:1 Вариант - при помощи временного файла temрTest
procedure DelZap;  //удаление записиbeginfa:=1; FillChar(tempTest, SizeOf(t_Test),0);for f:=1 to NQ dobeginif f <> n{вопрос который надо удалить} thenbegin tempTest.QW[fa]:=Test.QW[f]; inc(fa);end;end;for f:=1 to NQ do Test.QW[f]:=tempTest.QW[f];end;
Результат - ничего не происходит вообще=(((((2 вариант - Насоветовали на delphisorces при помощи функции seek  и truncate - перемещение записи вопроса в конец файла с последующим его отсечением
begin//n = номер удаляемой записи, начиная с 0seek(ftest, filesize(ftest) - 1);readtestseek(ftest, n - 1);writetest//когда запись уже находиться в конце файла, я ее отсекаюseek(ftest, filesize(ftest) - 1);truncate(ftest)
Результат - ошибка I/O =(((В общем жду любой помощи
1 ответ

В первом варианте имеет ли значение переменная NQ? И второе, не забыли-ли Вы случайно записать полученное значение переменной Test в конечный файл?