Hallo leute
ich hatte vor die datein von AutoCAD die im format DWG gespeichert werden auszulesen und in einer xml tabele zu speichern nun stehe ich vor der herrausvorderung diesen code:
Code
The following example is a simple Visual Basic program that reads a DXF file and extracts specific codes and values from a given object in a given section.
' ReadDXF extracts specified code/value pairs from a DXF file.
' This function requires four string parameters, a valid DXF
' file name, a DXF section name, the name of an object in that
' section, and a comma delimited list of codes.
'
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
' Get the first code/value pair
codes = ReadCodes
' Loop through the whole file until the "EOF" line
While codes(1) <> "EOF"
' If the group code is '0' and the value is 'SECTION' ..
If codes(0) = "0" And codes(1) = "SECTION" Then
' This must be a new section, so get the next
' code/value pair.
codes = ReadCodes()
' If this section is the right one ..
If codes(1) = strSection Then
' Get the next code/value pair and ..
codes = ReadCodes
' Loop through this section until the 'ENDSEC'
While codes(1) <> "ENDSEC"
' While in a section, all '0' codes indicate
' an object. If you find a '0' store the
' object name for future use.
If codes(0) = "0" Then lastObj = codes(1)
' If this object is one you're interested in
If lastObj = strObject Then
' Surround the code with commas
tmpCode = "," & codes(0) & ","
' If this code is in the list of codes ..
If InStr(strCodeList, tmpCode) Then
' Append the return value.
ReadDXF = ReadDXF & _
codes(0) & "=" & codes(1) & vbCrLf
End If
End If
' Read another code/value pair
codes = ReadCodes
Wend
End If
Else
codes = ReadCodes
End If
Wend
Close #1
End Function
' ReadCodes reads two lines from an open file and returns a two item
' array, a group code and its value. As long as a DXF file is read
' two lines at a time, all should be fine. However, to make your
' code more reliable, you should add some additional error and
' sanity checking.
'
Function ReadCodes() As Variant
Dim codeStr, valStr As String
Line Input #1, codeStr
Line Input #1, valStr
' Trim the leading and trailing space from the code
ReadCodes = Array(Trim(codeStr), valStr)
End Function
Alles anzeigen
irgendwie in autoit zu griegen aber habe da ehr an ein dllcall gedacht da ich aber wenig bis gar nicht bis jetzt damit gearbeitet habe würde es mich sehr freuen wen mir dabei einer behilflich sein könnte