К сожалению, у тебя ничего так не получится. Дело в том, что в тестровом файле реально место для дописывания в середину не зарезервированно. Поэтому придется файл читать целиком, исправлять и перезаписывать заного. Я бы на твоем месте написал бы пару процедур для чтиени/разбора файла в массив записей и сохранения из массива. Можно еще проще сделать. Загрузить все в TStringList и адресоваться в нем N*7 + C.
Код:
procedure SetResult(AFileName, ALastName, AFiestName, AGroup, APass : String; AResNum : Integer; AData : String);
var
I : Integer;
L : TStringList;
begin
L := TStringList.Create;
L.LoadFromFile(AFileName);
For I := 0 To L.Count / 7 Do
Begin
If (ALastName = L[I*7]) And
(AFirstName = L[I*7+1]) And
(AGroup = L[I*7+2]) And
(APass = L[I*7+3]) Then
Begin
L[I+4+AResNum-1] := AData;
Break;
End;
End;
L.SavetoFile(AFileName);
end;
Код требует заполнения всех строк. Там, где нет данных, надо поставить пустую строку в файле. Ну и, конечно, код не проверяет наличие ошибок и корректность введенных данных, если надо - сам допишешь.