Открытие файлов
В этом разделе рассматривается: fd.filenum, fd.open, fd.fileopened, fd.maxopenedfiles.
Чтобы работать с данными файла, его сначала нужно открыть. Метод fd.open открывает файл с заданным именем «на» номере файла, выбранном в данный момент свойством fd.filenum. Все операции с данными файла затем выполняются по номеру файла, а не по его имени. К таким операциям относятся запись в файлы и чтение из них, удаление данных из файлов, поиск внутри файлов и закрытие файлов.
Понятие номеров файлов не ново: другие операционные системы тоже присваивают файлу номер при открытии. В Tibbo BASIC/C номер, на котором нужно открыть файл, вы выбираете сами. Для этого задайте нужное значение свойству fd.filenum:
'will open two files 'on' numbers 3 and 5
fd.filenum=3
If fd.open("File1")<>PL_FD_STATUS_OK Then
'some problem
End If
fd.filenum=5
If fd.open("TrestFile")<>PL_FD_STATUS_OK Then
'some problem
End If
Когда нужно поработать с одним из открытых в данный момент файлов, просто задайте fd.filenum равным номеру, на котором этот файл был открыт (этот номер, естественно, нужно как-то запомнить). Сколько файлов можно открыть одновременно? Это показывает свойство fd.maxopenedfiles (только чтение). Его значение зависит от платформы. Значение fd.filenum может лежать в пределах от 0 до fd.maxopenedfiles - 1.
Если файл открыт «на» некотором номере файла, свойство fd.fileopened (только чтение) возвращает 1 - YES, когда этот номер файла выбран через fd.filenum.
Начальные пробелы в имени файла, передаваемом в fd.open, удаляются. После этого обрабатывается только часть до первого пробела, а остаток строки игнорируется. Следующие три строки кода открывают один и тот же файл:
fd.open("File1")
fd.open(" File1") 'leading spaces will be removed
fd.open("File1 some more stuff") 'everything after the first space will be ignored too
Естественно, файл с указанным именем должен существовать, иначе будет выдана ошибка 9 - PL_FD_STATUS_NOT_FOUND. Один и тот же файл нельзя открыть «на» двух разных номерах файлов - это приведёт к ошибке 11 - PL_FD_STATUS_ALREADY_OPENED. Тот же или другой файл можно повторно открыть «на» том же номере файла, но это может привести к потере (части) изменений, внесённых в ранее открытый файл. Чтобы этого избежать, закройте файл или вызовите метод fd.flush перед повторным открытием. Учтите, что метод fd.flush не зависит от текущего значения fd.filenum и действует глобально на самый последний изменённый файл.