Lock
Restricts read/write access to a file or portion of a file
Lock #filenum, record
Lock #filenum, start To end
filenum
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.
Syntax
Lock #filenum, record
Lock #filenum, start To end
Parameters
filenum
The file number used to Open the file.
recordThe record (Random files) to lock.
startThe first byte position (Binary files) to lock from.
endDescription
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
'' 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