Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Guides   Examples
New in version: 7.3   7.4   7.5   8.0   8.1   8.2   8.3   8.4   8.5   8.6    Statistic  

BinaryFile.Open

Opens an existing file for reading.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
BinaryFile 7.3 Yes Yes Yes Yes Yes
MBS( "BinaryFile.Open"; FilePath )   More

Parameters

Parameter Description Example value
FilePath The native file path. Something like "/Users/cs/desktop/test.txt" on Mac and "C:\Programs\Data\test.txt" on Windows. Files without path end in the root directory on Mac. "test.txt"

Result

Returns reference number or error.

Description

Opens an existing file for reading.

Examples

Open file:

MBS( "BinaryFile.Open"; "/Users/cs/Desktop/test.txt" )

Split files into smaller chunks:

Set Variable [ $InputPath ; Value: "/Users/cs/Desktop/test.mp4" ]
Set Variable [ $ChunkSize ; Value: 10*1024*1024 ]
#
Set Variable [ $InputStream ; Value: MBS( "BinaryFile.Open"; $inputPath ) ]
If [ MBS("IsError") ]
    Show Custom Dialog [ "Failed to open file." ; $InputStream & ¶ & $InputPath ]
    Exit Script [ Text Result: ]
End If
Set Variable [ $InputLength ; Value: MBS( "BinaryFile.Length"; $InputStream ) ]
Set Variable [ $InputPosition ; Value: 0 ]
Set Variable [ $Counter ; Value: 1 ]
Loop
    # Read chunk
    Set Variable [ $Chunk ; Value: MBS( "BinaryFile.ReadHex"; $InputStream; $ChunkSize ) ]
    #
    # Write Chunk
    Set Variable [ $OutputPath ; Value: $InputPath & "." & $Counter ]
    Set Variable [ $OutputStream ; Value: MBS( "BinaryFile.Create"; $OutputPath ) ]
    If [ MBS("IsError") ]
        Show Custom Dialog [ "Failed to create file." ; $InputStream & ¶ & $OutputPath ]
        Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $InputStream ) ]
        Exit Script [ Text Result: ]
    End If
    Set Variable [ $r ; Value: MBS( "BinaryFile.WriteHex"; $OutputStream; $Chunk ) ]
    Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $OutputStream ) ]
    #
    # next
    Set Variable [ $InputPosition ; Value: $InputPosition + $ChunkSize ]
    Exit Loop If [ $InputPosition > $InputLength ]
    Set Variable [ $Counter ; Value: $Counter +1 ]
End Loop
#
# cleanup
Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $InputStream ) ]

See also

Blog Entries

Created 12nd June 2017, last changed 19th August 2018


BinaryFile.Length   -   BinaryFile.Position

Feedback: Report problem or ask question.




Links
MBS Xojo Plugins