| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: GetCustomByKey (1607 mal gelesen)
|
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 14. Jul. 2011 12:02 <-- editieren / zitieren --> Unities abgeben:         
Hallo an Alle, ich möchte per GetCustombyKey einen Wert auslesen. Leider kann es in Ausnahmefällen vorkommen, daß es den entsprechenden Schlüssel("NEB-Modus") noch nicht gibt. Dann bleibt ACAD, trotz des "Try" siehe unten, hängen. On Error resume next würde zwar funktionieren, kann ich aber leider nicht verwenden weil ich Try noch öfter verwendet habe und Beides nicht geht. Wie kann ich vorher prüfen ob es den Schlüssel gibt ohne daß ich einen Fehler bekomme? Danke Theo Try ThisDrawing.SummaryInfo.GetCustomByKey("NEB-Modus", Modus) Catch ex As Exception Modus = "Frei" End Try
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 14. Jul. 2011 12:18 <-- editieren / zitieren -->
Hi, ich hätte dieses probiert:
Code: <Autodesk.AutoCAD.Runtime.CommandMethod("AN_GetDwgInfoByKey", Runtime.CommandFlags.Session)> _ Public Shared Sub AN_GetDwgInfoByKey() Dim tAcadAppCOM As Interop.AcadApplication = CType(ApplicationServices.Application.AcadApplication, Interop.AcadApplication) Dim tAcadDocCOM As Interop.AcadDocument = CType(tAcadAppCOM.ActiveDocument, Interop.AcadDocument) Try tAcadDocCOM.SummaryInfo.GetCustomByKey("NEB-Modus", "XXX") Debug.Print("Key exists") Catch ex As Exception Debug.Print("Key does not exist") End Try End Sub
...und das tut, wie es soll. Gibt es die Einstellung noch nicht, wird Catch abgearbeitet und weiter gehts. Probiers mal in einem Musterprojekt mit meinem Code.- alfred - ------------------ www.hollaus.at |
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 14. Jul. 2011 16:13 <-- editieren / zitieren --> Unities abgeben:         
Hallo Alfred, habe ich probiert. Bringt aber genau das selbe Ergebniss. Ich bekomme eine Fehlermeldung der Schlüssel wurde nichtgefunden. Beim Debuggen bleibt er bei der Zeile(tAcadDocCOM.SummaryInfo.GetCustomByKey("NEB-Modus", "XXX")) stehen. Also Managed ist nicht grundsätzlich besser. Woran könnte das liegen Gruß, Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 14. Jul. 2011 17:01 <-- editieren / zitieren --> Unities abgeben:         
Hi, ich probiers mal damit. Ist zwar sehr umständlich. Aber funktioniert ohne Fehlermeldungen(wobei ich noch nicht viel getestet hab. Gruß, Theo Try
If GetCustomtest("NEB-Modus") Then ThisDrawing.SummaryInfo.GetCustomByKey("NEB-Modus", Modus) Catch ex As Exception Modus = "Frei" End Try Function GetCustomtest(ByVal Key As String) As Boolean Dim i As Integer Dim Key1 As String Dim Value1 As String GetCustomtest = False If ThisDrawing.SummaryInfo.NumCustomInfo > 0 Then For i = 0 To ThisDrawing.SummaryInfo.NumCustomInfo - 1 ThisDrawing.SummaryInfo.GetCustomByIndex(i, Key1, Value1) If Key1 = Key Then GetCustomtest = True Next End If End Function Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer

 Beiträge: 9807 Registriert: 01.12.2003 AutoCAD 20xx, Civil 3D 201x, Inventor Prof 201x usw.
|
erstellt am: 14. Jul. 2011 18:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Theo37
|
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 15. Jul. 2011 10:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo, es ist merkwürdig. In einem älteren Projekt habe ich genau diese Kombination mit Try, Getcustombykey und catch schonmal verwendet, dort funktionierts einwandfrei. In meinem aktuellen Projekt, krieg ich unweigerlich nee Fehlermeldung wenn es den Schlüßel nicht gibt. Ich weiß nicht wo der Unterschied liegt. Ich behelfe mir jetzt mal mit der Funktion oben. Aber es hätte mich schon interesiert woran es liegt. Gruß, Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 15. Jul. 2011 11:26 <-- editieren / zitieren -->
Hi, >> In einem älteren Projekt habe ich genau diese Kombination [...] dort funktionierts Nun denn, bei mir hab ich auch kein Problem, also wenden wir uns Details zu: Ich habs probiert mit: Win7x64 Prof. VS2010 Prof. Civil3D 2010 (=32bit) Und da hat's gefunkt.... und Deins: ... - alfred - ------------------ www.hollaus.at |

| |
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 15. Jul. 2011 11:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo Alfred, Da hat sich lang nichts mehr getan bei mir. Obwohl schon lange von Win7x64 gesprochen wird(bei uns in der Firma), habe ich immer noch: Win XP mit SP3, ACAD2010 pur, VB2008 Express Edition. Aber das hatte ich auch schon bei dem alten Projekt. Ich glaube daß es was damit zu tun hat, wie die Variablen für Key und Value vorher schon verwendet wurden. ich bin da mal am Forschen. Gruß, Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |