El ejemplo siguiente es un programa sencillo de Visual Basic 6 para leer archivos DXF y extraer códigos y valores específicos de un objeto concreto perteneciente a una sección determinada.
' ReadDXF extrae pares de códigos/valores específicos del archivo DXF.
' Esta función requiere cuatro parámetros de cadena, un nombre de archivo
' DXF válido, un nombre de sección DXF, el nombre de un objeto en dicha
' sección y una lista de códigos delimitada por comas.
'
Function ReadDXF( _
ByVal dxfFile As String, ByVal strSection As String, _
ByVal strObject As String, ByVal strCodeList As String)
Dim tmpCode, lastObj As String
Open dxfFile For Input As #1
' Obtener primer par código/valor
codes = ReadCodes
' Bucle en archivo hasta llegar a la línea "EOF"
While codes(1) <> "EOF"
' Si el código del grupo es '0' y el valor es 'SECTION' ...
If codes(0) = "0" And codes(1) = "SECTION" Then
' Tiene que ser una nueva sección; obtener el siguiente
' par de código/valor.
codes = ReadCodes()
' Si esta sección es la correcta ...
If codes(1) = strSection Then
' Obtener siguiente par de código/valor y ...
codes = ReadCodes
' Bucle en esta sección hasta encontrar 'ENDSEC'
While codes(1) <> "ENDSEC"
' Mientras se esté en esta sección, todos los códigos '0' indican
' un objeto. Si se encuentra un '0', almacenar el
' nombre del objeto para su uso futuro.
If codes(0) = "0" Then lastObj = codes(1)
' Si éste es el objeto que le interesa ...
If lastObj = strObject Then
' Acotar el código mediante comas.
tmpCode = "," & codes(0) & ","
' Si este código está en la lista de códigos ...
If InStr(strCodeList, tmpCode) Then
' Añadir el valor de devolución.
ReadDXF = ReadDXF & _
codes(0) & "=" & codes(1) & vbCrLf
End If
End If
' Leer otro par de código/valor
codes = ReadCodes
Wend
End If
Else
codes = ReadCodes
End If
Wend
Close #1
End Function
' ReadCodes lee dos líneas de un archivo abierto y devuelve una matriz de dos
' elementos, un código de grupo y su valor. Siempre y cuando un archivo DXF lea
' dos líneas al mismo tiempo, todo será correcto. Sin embargo, para que el código
' sea más fiable, debe añadir una comprobación rutinaria adicional de
' errores y funcionamiento.
'
Function ReadCodes() As Variant
Dim codeStr, valStr As String
Line Input #1, codeStr
Line Input #1, valStr
' Recortar el espacio a la izquierda y a la derecha del código
ReadCodes = Array(Trim(codeStr), valStr)
End Function