Страница 1 из 1
Прямой доступ к BINARY файлу
Добавлено: 13 Сентябрь 2013, 14:03
Алексей- Софт-Центр
Добрый день!
Winows XP, Clarion 6.
Есть ли возможность с DOS(BINARY) файлом работать как с файлами прямого доступа-по номеру записи?
Алексей
Re: Прямой доступ к BINARY файлу
Добавлено: 13 Сентябрь 2013, 15:42
Yufil
А что значит "Работать"? И что - "по номеру записи?"
Cтандартные операции чтения-записи для Binary могут включать смещение и длину обновляемых данных,
можно, например построить класс, который работает соответственно.
Например, есть класс Db3, который читает двоичный файл формата dbf по записям. Или пишет. Прямой доступ не используется, но и он реализуется с полпинка.
Re: Прямой доступ к BINARY файлу
Добавлено: 13 Сентябрь 2013, 16:09
Алексей- Софт-Центр
Добрый день!
Например, есть BIN файл в словаре с одним полем в 200 байт, например String(200)
Надо прочитать, например, 7000-ную запись этого файла, с возможностью ее изменения.
Ну, типа иметь возможность:
Get(file,7000)
.....
put(file)
Аналог:
loop I=1 to 7000
next(file)
end
....
put(file)
Но БЕЗ промежуточного чтения с начала файла
Алексей
Re: Прямой доступ к BINARY файлу
Добавлено: 13 Сентябрь 2013, 16:31
Yufil
RecSize Equate(200)
...
Get(file,(7000-1) * Recsize+1, RecSize)
....
Put(file, (7000-1) * Recsize+1, Recsize)
Но проблемо...
Re: Прямой доступ к BINARY файлу
Добавлено: 13 Сентябрь 2013, 18:32
Губин Игорь
Лучше не совсем так, а просто Get/set(File,(7000-1)*RecSize)
А структуру определить как запись из 200байт