Lock
Restricts read/write access to a file or portion of a file
Syntax
`
Lock #filenum, record
Lock #filenum, start To end
`
Parameters
`filenum`
The file number used to `Open` the file.
`record`
The record (`Random` files) to lock.
`start`
The first byte position (`Binary` files) to lock from.
`end`
The last byte position (`Binary` files) to lock to.
Description
`Lock` temporarily restricts access by other threads or programs to a file, or portion of a file, usually to allow safe writing to it.
After modifying the data, an `Unlock` with the same parameters as the `Lock` should be issued.
Note: This command does not always work, neither as documented nor as expected. It appears to be broken at the moment.
Example
`
'' e.g. locking a file, reading 100 bytes, and unlocking it.
'' To run, make sure there exists a file called 'file.ext'
'' in the current directory that is at least 100 bytes.
Dim array(1 To 100) As Integer
Dim f As Integer, i As Integer
f = FreeFile
Open "file.ext" For Binary As #f
Lock #f, 1 To 100
For i = 1 To 100
Get #f, i, array(i)
Next
Unlock #f, 1 To 100
Close #f
`
Differences from QB

- Currently, FB cannot implicitly lock the entire file
- In `Random` mode, FB cannot lock a range of records

See also

- `Open`
- `Unlock`
- `ScreenLock`