ник: час
уже вырисовывается :
Type Record ' Определённый пользователем тип
ID As Integer
Name As String * 256
End Type
Function poisk_v_file(PolnijPut As String, hto As String) As String
' Для файлов, открытых для произвольного доступа,
' Seek устанавливает следующую запись
Dim svob_Nomer ' № свободного файла
Dim stroka As String ' просто строковая переменная
svob_Nomer = FreeFile ' № свободного файла
Dim MyRecord As Record, MaxSize, RecordNumber ' Объявляем переменные
Open PolnijPut For Random As #svob_Nomer Len = Len(MyRecord) ' Открываем файл для произвольного доступа
MaxSize = LOF(svob_Nomer) \ Len(MyRecord) ' Получаем количество записей в файле
For RecordNumber = MaxSize To 1 Step -1 ' Цикл читает записи с конца до начала
stroka = "" ' просто строковая переменная пустая
Seek #svob_Nomer, RecordNumber ' Устанавливаем позицию записи
Get #svob_Nomer, RecordNumber, MyRecord ' Читаем запись
stroka = MyRecord.Name & " - " & MyRecord.ID
If InStr(stroka, hto) <> 0 Then
If InStr(stroka, hto) > 155 Then RecordNumber = RecordNumber + 1'если конец строки, переходим в начало предыдущей
stroka = Mid(stroka, Val(InStr(stroka, hto)), 255)
Get #svob_Nomer, RecordNumber, MyRecord ' Читаем запись
stroka = stroka & MyRecord.Name
poisk_v_file = Mid(stroka, InStr(stroka, hto), 255)
Close #svob_Nomer ' Закрываем файл
Exit Function
End If
Next RecordNumber
MsgBox "Не найдено..."
Close #svob_Nomer ' Закрываем файл
End Function