VCOM:Working with Binary or Text Files

From Vectorworks Developer
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.SDK|SDK ..SDK:Types|SDK Types ..VCOM:VCOM (Vectorworks Component Object Model)|VCOM Basics ..VCOM:Class Reference|VCOM Class Reference

Create File Identifier

First you should have file identifier VCOM:VectorWorks:Filing:IFileIdentifier that will identify the file you want to work on.

Note that VCOM:VectorWorks:Filing:IFileIdentifier can identify non existing file on the disk. See VCOM:Working with File Identifiers.

Raw File Operations

Reading

IRawOSFilePtr pFile( IID_RawOSFile );
if ( VCOM_SUCCEEDED( pFile->Open( pFileID, true, false, false, false ) ) ) {
    // read the entire file as 32-bit unsigned values
    Uint32   data;
    Uint64   readSize     = sizeof(data);

    Uint64   filePosition = 0;
    while( VCOM_SUCCEEDED( pFile->Read( filePosition, readSize, & data ) ) ) {
        if ( readSize != sizeof(data) ) {
           // the read size is not expected
           // so STOP!!!
           break;
        }

        // ...
        // work with 'data'

        // prepare reading next number
        filePosition   += readSize;
    }

    pFile->Close();
}

Writing


Standard File Operations

Reading

VCOMPtr<IStdFile>  pFile( IID_StdFile );
if ( VCOM_SUCCEEDED( pFile->OpenRead( pFileID, false ) ) ) {
  TXString   strLine;
  while( VCOM_SUCCEEDED( pFile->ReadStringLine( strLine ) ) ) {
     // ...
  }

  pFile->Close();
}

Writing

IStdFilePtr	pFile( IID_StdFile );
if ( VCOM_SUCCEEDED( pFile->OpenNewWrite( pFileID ) ) ) {
   // put two lines terminating by the default line term symbol
   pFile->WriteStringLine( "first line" );
   pFile->WriteStringLine( "second line" );

   pFile->Close();
}

Complex File Operations

See Also