你需要计划好你想做什么,然后逐段编写代码来完成。
要打开ASCII文件,请遵循Joe Sutphin的书第18章第395页中给出的示例来选择并打开文件。 说得好,小家伙。
唯一(常见?)需要的代码行数例外,其中。NET的优点是,当通过程序集引用为给定类型实现自定义(固有静态)扩展方法时。。。我确实跳过了VBA(使用Visual LISP-->.NET),但我不相信VBA有这个功能,是吗?
此线程中最近的示例,用于上下文。
干杯 用VBA编程比用AutoLISP编程要困难得多,但这次我很幸运,我将以这种方式向Sitphin Joe的家人致以成千上万的感谢和良好的健康,他们为我们提供了他的工作。
解决第一个问题:它不是最好的,但它有效。
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long ' V : 23.01.2014 .
Private Type OPENFILENAME ' V : 23.01.2014 .
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type ' OPENFILENAME
'' ---------------------------------------------------------------------------
Public Function FGetFiled(DialogTitle As String, InitialDir As String, Extensie As String) As String ' V : 23.01.2014 .
' Functie Preluare Cale Fisier !
ThisDrawing.Utility.Prompt (vbNewLine + " FGetFiled:V : 23.01.2014 ;START !")
Dim tipF As String
Dim OFName As OPENFILENAME
Dim Filter As String
Select Case Extensie
Case "txt", "coo", "rad":tipF = "TEXT"
Case "csv":tipF = "CSV"
Case Else:tipF = "UNKNOWN"
End Select
' Filter = "Drawing Files (*.dwg)" + Chr$(0) + "*.dwg" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
Filter = tipF + " Files (*." + Extensie + ")" + Chr$(0) + "*." + Extensie + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
' InitialDir = "C:\Program Files\AutoCAD 2006\Sample"
' DialogTitle = "Open a FILE !"
OFName.lStructSize = Len(OFName) 'Set the Structure size
OFName.hwndOwner = 0 'Set the Owner window
OFName.lpstrFilter = Filter 'Set the Filter
OFName.nMaxFile = 255 'Set the Maximum number of Chars
OFName.lpstrFile = Space(254) 'Create a Buffer
OFName.lpstrFileTitle = Space$(254) 'Create a Buffer
OFName.nMaxFileTitle = 255 'Set the Maximum number of Chars
OFName.lpstrInitialDir = InitialDir 'Set the initial Directory
OFName.lpstrTitle = DialogTitle 'Set the dialog Title
OFName.flags = 0 'No extra Flags
If GetOpenFileName(OFName) Then 'Show the 'Open File' dialog
FGetFiled = Trim(OFName.lpstrFile)
Else
FGetFiled = "?"
End If
'MsgBox OutputStr
ThisDrawing.Utility.Prompt (vbNewLine + " FGetFiled:END !")
End Function ' FGetFiled
解决第二个问题:
4
谢谢你们!
Costin
很好,你已经开始工作了。当你读完文件后,别忘了关闭它。 我应该担心吗?
http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=14889082&linkID=9240617
从这里写的内容来看,VBA似乎将消失(我现在开始学习它)。
AutoLISP live!
该链接指的是AutoCAD 2011,现在Autodesk表示,使用新的VB7,他们将继续支持VBA,因此您不必太担心。但微软决定放弃VBA的可能性总是存在的,那么Autodesk也会放弃VBA。在这方面,我们将继续努力。NET route或LISP更安全。在VBA中学习的大部分内容都可以在中使用。NET学习VBA不会浪费时间。 最好在Form1上定义“Frime1”,在“Form2”上定义空“Frime2”,并将其内容“Frime2”(空)替换为“Frime1”到“Form2”?
http://www.vbforums.com/showthread.php?372272-合并-2-Forms-Into-1!
该如何获奖?
我可以设置格式属性,以便借用Windows设置中按钮的形状和外观。。。?
页:
1
[2]