- UID
- 136209
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-5-11
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
以下是DXF帮助文件中打开DXF的VB代码,但是不知道如何将它改写成VC ,感觉其中的ReadCodes子函数比较难改写。请大家帮个忙,谢谢。
读取DXF文件
以下样例是一个Visual Basic程序的例子,它读取一个DXF文件并从给定的区域的给定对象中提取特定的代码和值。
' ReadDXF从DXF文件中提取指定代码/值对。
' 该函数需要4个字符串参数,一个有效的DXF文件名、
' 一个DXF区域名称、一个在该区域中对象的名称以及
' 一个列出代码的逗号分隔符。
'
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
' 获得第一个代码/值对
codes = ReadCodes
' 在整个文件中循环直到找到"EOF"行
While codes(1) <> "EOF"
' 如果该组码为"0"并且其值为"SECTION" ..
If codes(0) = "0" And codes(1) = "SECTION" Then
' 这必定是一个新的区域,所以获取下一个代码/值对
codes = ReadCodes()
' 如果该区域为所要寻找的区域..
If codes(1) = strSection Then
' 取得下一代码/值对并且..
codes = ReadCodes
' 在该区域中循环直到找到"ENDSEC"
While codes(1) <> "ENDSEC"
' 在这个区域中,所有"0"代码表示一个对象。
' 如果发现"0"就可保存对象名以便以后使用。
If codes(0) = "0" Then lastObj = codes(1)
' 如果该对象是所需要的对象
If lastObj = strObject Then
' 在代码的前后加上逗号
tmpCode = "," & codes(0) & ","
' 如果该代码为列表中的代码..
If InStr(strCodeList, tmpCode) Then
' 添加它的返回值。
ReadDXF = ReadDXF & _
codes(0) & "=" & codes(1) & vbCrLf
End If
End If
' 读取另外的代码/值对
codes = ReadCodes
Wend
End If
Else
codes = ReadCodes
End If
Wend
Close #1
End Function
' ReadCodes从打开的文件中读取两行并返回一个两项的数组:
' 一个组码和它的值。只要在读取DXF文件能同时读取两行,
' 则在处理时不会出现问题。然而,为了让你的代码更加可靠,
' 你可以增加一些附加的出错及纠正检查。
'
Function ReadCodes() As Variant
Dim codeStr, valStr As String
Line Input #1, codeStr
Line Input #1, valStr
' 修剪代码中的前导及后随空格
ReadCodes = Array(Trim(codeStr), valStr)
End Function |
|