home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SOURCE / FUNCTION / FILENAME.PRG < prev    next >
Text File  |  1994-06-01  |  3KB  |  84 lines

  1.  
  2.  
  3. //---------------------------------------------------------------------------//
  4.  
  5. function cFileDisc( cPathMask )  // devuelve cUnidad lógica
  6.                                  // ej: de "c:\pepe\file.*"
  7.                                  // devuelve "C:"
  8.                                  // de : "\pepe\file.*"
  9.                                  // devuelve ""
  10. return if( at( ":", cPathMask ) == 2, ;
  11.               upper( left( cPathMask, 2 ) ), "" )
  12.  
  13. //---------------------------------------------------------------------------//
  14.  
  15. function cFilePath( cPathMask )  // DEVUELVE ACCESO
  16.                                  // ej.: de "c:\path\path\filename.ext"
  17.                                  // devuelve "c:\path\path\"
  18.                                  // ej:  de  "" -> "\"
  19.                                  // EJ: de "C:" -> "C:\"
  20.                                  // ej: de "C:filename.ext" -> "C:\"
  21.  
  22.     local i := rat( "\", cPathMask )
  23.  
  24. return if( i > 0, ;
  25.            upper( left( cPathMask, i ) ),;
  26.            cFileDisc( cPathMask ) + "\" )
  27.  
  28. //---------------------------------------------------------------------------//
  29.  
  30. function cFileName( cPathMask )
  31.  
  32.     local i := rat( "\", cPathMask )
  33.  
  34. return upper( if( i > 0 .and. i < len( cPathMask ),;
  35.                   right( cPathMask, len( cPathMask ) - i ),;
  36.                   if( i := at(":", cPathMask ) > 0,;
  37.                       right( cPathMask, len( cPathMask ) - i ),;
  38.                       cPathMask ) ) )
  39.  
  40. //---------------------------------------------------------------------------//
  41.  
  42. function cFileMask( cPathMask ) // devuelve Mascara de un filename
  43.                                 // ej. de "c:\dir\*.bat" devuelve "*.BAT"
  44.                                 // ojo que si NO es una mascara devolverá
  45.                                 // un string vacío: "".
  46.     local cMask := cFileName( cPathMask )
  47.  
  48. return if( ( "*" $ cMask ) .or. ( "?" $ cMask ), cMask, "" )
  49.  
  50. //---------------------------------------------------------------------------//
  51.  
  52. FUNCTION cFileNoExt( cPathMask ) // ojo que si es una mascara devolverá
  53.                                  // la parte nombre de la mascara.
  54.     local cName := alltrim( cFileName( cPathMask ) )
  55.     local i     := at( ".", cName )
  56.  
  57. return alltrim( if( i > 0, left( cName, i-1 ), cName ) )
  58.  
  59. //---------------------------------------------------------------------------//
  60.  
  61. FUNCTION cFileExt( cPathMask ) // ojo que si es una mascara devolverá
  62.                                // la parte extensión de la mascara.
  63.  
  64.     local cExt := alltrim( cFilename( cPathMask ) )
  65.     local i    := rat( ".", cExt )
  66.  
  67. return alltrim( if( i > 0 .and. len( cExt ) > i,;
  68.                     right( cExt, len( cExt ) - i ), "" ) )
  69.  
  70. //---------------------------------------------------------------------------//
  71.  
  72. /******
  73.   Devuelve el subdirectorio del Path recibido.
  74. */
  75. FUNCTION cFileSubDir( cPath )   // el Path puede terminar en "\"
  76.                                 // ej: de "C:\MIPATH\subdir\" -> "C:\MIPATH\"
  77.                                 // ej: de "C:\MIPATH\subdir"  -> "C:\MIPATH\"
  78.  
  79. return upper( cFilePath( if( right( cPath, 1 ) == "\" ,;   // me han dado un path terminado en "\"
  80.                       left( cPath, len( cPath ) - 1 ),;
  81.                       cPath ) ) )
  82.  
  83. //---------------------------------------------------------------------------//
  84.