Exemple #1
0
/*
 * Lˆ um arquivo do disco para a memoria e retorna uma string com o conteudo do
 * mesmo... no segundo parametro ela retorna o tamanho de bytes lidos do arquivo. 
 *
 * O primeiro parametro ‚ o nome do arquivo que deve ser lido do hd 
 * 19/11/2006 09:58:59
 */
char *xStrReadFile(char *s, ULONG * BytesRead )
{
   int fh;
   char *Buff; 
   ULONG nEnd, nStart, Length;

   HB_TRACE( HB_TR_DEBUG, (" xStrReadFile( '%s' )", s ));
   *BytesRead = 0; // 31/07/2008 - 16:35:30
   
   if (!hb_spFile( ( BYTE * ) s, NULL ))
   {
      HB_TRACE( HB_TR_DEBUG, ("  Arquivo nao existe: %s",  s ));
      return NULL;
   } else { 
      HB_TRACE( HB_TR_DEBUG, ("  Arquivo existe: %s",  s ));
   }

   fh   = hb_fsOpen( ( BYTE * ) s , 0  ); // 0 -> FO_READ
   HB_TRACE( HB_TR_DEBUG, (" HANDLE: %d",  fh ));

   nEnd = hb_fsSeek( fh, 0 , 2 );
   nStart = hb_fsSeek( fh , 0 , 0 );

   HB_TRACE( HB_TR_DEBUG, (" Start .: %lu",  nStart ));
   HB_TRACE( HB_TR_DEBUG, (" End ...: %lu",  nEnd ));
   Length = nEnd - nStart;

   Buff = (char *) hb_xgrab( Length+1 ); 

   * BytesRead = hb_fsReadLarge( fh , ( BYTE * ) Buff, Length );
   Buff[ * BytesRead ] = '\0';
   
   hb_fsClose( fh );
   return Buff;
}
Exemple #2
0
HB_FHANDLE hb_spOpen( BYTE * pFilename, USHORT uiFlags )
{
   BYTE path[ _POSIX_PATH_MAX + 1 ];

   HB_TRACE(HB_TR_DEBUG, ("hb_spOpen(%p, %hu)", pFilename, uiFlags));

   if( hb_spFile( pFilename, path ) )
      return hb_fsOpen( path, uiFlags );
   else
      return hb_fsOpen( pFilename, uiFlags );
}
Exemple #3
0
HB_FHANDLE hb_spOpen( const char * pszFileName, HB_USHORT uiFlags )
{
   char szPath[ HB_PATH_MAX ];

   HB_TRACE( HB_TR_DEBUG, ( "hb_spOpen(%p, %hu)", pszFileName, uiFlags ) );

   if( hb_spFile( pszFileName, szPath ) )
      return hb_fsOpen( szPath, uiFlags );
   else
      return hb_fsOpen( pszFileName, uiFlags );
}