Thought i would post a simple example of some file handling.
@Eros. Perhaps you could take chunks of this for the FILE section of the help file.
[code=thinbasic]
''''''''''''''''''''''''''
' File Handling
'
' FILE_OPEN
' FILE_SEEK
' FILE_GET
' FILE_CLOSE
' FILE_LOAD
' FILE_SAVE
'
' By Abraxas 29-01-2008
'
''''''''''''''''''''''''''
USES "FILE"
DIM FileHandle as DWORD
DIM Status AS DWORD
DIM TestString AS STRING
DIM FileName as STRING
DIM sMsg as STRING
TestString = "1234567890ABCDEF" ' String to write to file
FileName = APP_SCRIPTPATH + "test.txt" ' Build filename
'
' Here are two methods of saving the test string to a file
'
' First method
'
' Limitations - it will only write what is in the SringBuffer
' Advantages - Handles opening/closing the file
'
Status = FILE_SAVE(FileName, TestString) ' Save string to File
'
' Second method
'
' Limitations - None (that i can think of)
' Advantages - You can add and remove data
'
' The seek function can be used to move around the file to set the read / write position
'
FileHandle = FILE_OPEN (FileName, "BINARY") ' Open file for writing
Status = FILE_PUT (FileHandle, TestString) ' Write String to File
Status = FILE_Seek (FileHandle, 5) ' Set the current write position to 5th byte in the file
Status = FILE_PUT (FileHandle, TestString) ' Write String to File
Status = FILE_CLOSE(FileHandle) ' Release File
'
' Now lets try and read some bytes back into memory
' Lets build the string "166"
'
sMsg = "Bytes read from file are " + $DQ
FileHandle = FILE_OPEN(FileName, "BINARY") ' Open file for reading
Status = FILE_Seek(FileHandle, 1) ' Set the current read position to 1st byte in the file
sMsg += FILE_GET (FileHandle, 1) ' Read 1 byte and add to output message
Status = FILE_Seek(FileHandle, 10) ' Reset the current File read position to 10th byte in the file
sMsg += FILE_GET (FileHandle, 1) ' Read 1 byte and add to output message
Status = FILE_Seek(FileHandle, 10) ' File read position has moved to the next byte so we need to Reset to 10th byte in the file
sMsg += FILE_GET (FileHandle, 1) ' Read 1 byte and add to output message
Status = FILE_CLOSE(FileHandle) ' Release File
sMsg += $DQ + $CRLF + $CRLF
sMsg += "File Contents " + $DQ
sMsg += FILE_LOAD(FileName) ' Read File into Ouput string buffer
sMsg += $DQ
Msgbox 0, sMsg ' Output string buffer
[/code]
thx
Abx
Home Desktop : Windows 7 - Intel Pentium (D) - 3.0 Ghz - 2GB - Geforce 6800GS
Home Laptop : WinXP Pro SP3 - Intel Centrino Duo - 1.73 Ghz - 2 GB - Intel GMA 950
Home Laptop : Windows 10 - Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz, 2401 Mhz, 2 Core(s), 4 Logical Processor(s) - 4 GB - Intel HD 4400
Work Desktop : Windows 10 - Intel I7 - 4 Ghz - 8GB - Quadro Fx 370
Thanks a lot Abraxas
I will for sure add the code in help docs.
Great.
www.thinbasic.com | www.thinbasic.com/community/ | help.thinbasic.com
Windows 10 Pro for Workstations 64bit - 32 GB - Intel(R) Xeon(R) W-10855M CPU @ 2.80GHz - NVIDIA Quadro RTX 3000
Bookmarks