Artículo |
Verificación de Archivos Tipo Texto |
Autor / Fuente |
Harvey Triana |
Tema |
Programación General en Visual Basic |
Actualización |
Septiembre 20 de 1997 |
Descripción |
Determina si un archivo es binario o de texto. Visual Basic 4.0 y superiores. |
La necesidad de esta función nace de la siguiente situación. Algunas herramientas de ingeniería, generan archivos ASCII o de Texto como fuente de datos de salida. El propósito es que software comercial o corporativo pueda leer, graficar o interpretar los datos. Normalmente este tipo de software importa estos datos a un sistema binario de acceso directo o a un Database. Estos archivos tienen extensiones personalizadas y por lo tanto debemos evaluar si son o no binarios antes de intentar procesarlos. Valga aclarar que el tamaño de estos archivo frecuentemente alcanza los 10 Megabytes y algunos son formato texto de Unix.
Pues bien, la función que les presento a continuación hace esta tarea efectivamente. Doy crédito a David Garza Marín, quien me dio la idea básica del programa.
'------------------------------------------------------ ' Determina si un archivo es binario o de texto '------------------------------------------------------ Public Function IsBinaryFile(File As String) As Boolean Const aLf = 10, aCR = 13, aSP = 32 Const MaxRead = 2 ^ 15 - 1 Dim ff As Integer Dim s As Integer Dim i As Integer Dim n As Integer Dim Rtn As Boolean On Error GoTo IsBinaryFile_Err ff = FreeFile Open File For Binary Access Read As #ff n = IIf(LOF(ff) > MaxRead, MaxRead - 1, LOF(ff)) Do i = i + 1 If i >= n Then IsBinaryFile = False Rtn = True Else s = Asc(Input$(1, #ff)) If s >= aSP Then Else If s = aCR Or s = aLf Then Else IsBinaryFile = True Rtn = True End If End If End If Loop Until Rtn Close ff Exit Function IsBinaryFile_Err: If ff Then Close ff MsgBox "Error verifying file " & File & vbCrLf & Err.Description End Function
Simplemente pase el nombre del archivo al argumento y la función retornata un valor boleano. Por ejemplo MsgBox "¿ Es binario Command.Com ? ... " & IsBinaryFile("C:\Command.Com")
NOTAS
|
Harvey Triana
Envíe sus comentarios a:
[email protected]
Derechos libres de reutilización solo para programación.