Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Dictionaries ein und auslesen, was mach ich falsch?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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:  Dictionaries ein und auslesen, was mach ich falsch? (821 mal gelesen)
chaoskeeper
Mitglied
Informatiker

Sehen Sie sich das Profil von chaoskeeper an!   Senden Sie eine Private Message an chaoskeeper  Schreiben Sie einen Gästebucheintrag für chaoskeeper

Beiträge: 4
Registriert: 05.03.2007

erstellt am: 05. Mrz. 2007 11:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

also hier ist der Code

Code:
Private Sub AcadDocument_EndCommand(ByVal CommandName As String)
'    On Error Resume Next
    Dim datanow(0 To 31)
    For i = 0 To 31
        datanow(i) = "Value " & i
    Next
    WriteXRec "FirstLine", datanow
    ReadXRec "FirstLine", datanow
End Sub

Public Sub WriteXRec(varName As String, ByVal Data As Variant)
  Dim oDict As AcadDictionary
  Dim oXRec As AcadXRecord
  Dim dxfCode(0 To 31) As Integer
  Set oDict = ThisDrawing.Dictionaries.Add(ModName)
  Set oXRec = oDict.AddXRecord(varName)
  On Error Resume Next
  For i = 0 To 31
    dxfCode(i) = i
  Next

  oXRec.SetXRecordData dxfCode, Data
End Sub

Public Sub ReadXRec(varName As String, ByRef Data As Variant)
  Dim oDict As AcadDictionary
  Dim oXRec As AcadXRecord
  Dim dxfCode
  Dim dxfData(0 To 31)
  Set oDict = ThisDrawing.Dictionaries(ModName)
  Set oXRec = oDict.GetObject(varName)
  oXRec.GetXRecordData dxfCode, Data
End Sub


entweder der schreibt die Werte nicht in die Dictionaries rein, oder er liest sie nicht raus

vielen dank für jede Hilfe

Lars

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

chaoskeeper
Mitglied
Informatiker

Sehen Sie sich das Profil von chaoskeeper an!   Senden Sie eine Private Message an chaoskeeper  Schreiben Sie einen Gästebucheintrag für chaoskeeper

Beiträge: 4
Registriert: 05.03.2007

erstellt am: 05. Mrz. 2007 12:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hab vergessen, ganz oben steht noch
Code:
Const ModName = "Program01"

Bevor das Geschrei noch losgeht

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 05. Mrz. 2007 12:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chaoskeeper 10 Unities + Antwort hilfreich

Hi und Willkommen Lars,

Du gibst dem Xrecord ja nur den folgenden Eintrag mit:

Set oXRec = oDict.AddXRecord(varName)

Da müsstest du ihm auch die restlichen Werte mitgeben.

Durchlauf deinen Code mal Schrittweise und schau dir deine Variablen im Lokal-Fenster an. Da wirst du sehen, das du dem Xrecord nur den ersten Wert ("Fistline") mitgibst.

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

chaoskeeper
Mitglied
Informatiker

Sehen Sie sich das Profil von chaoskeeper an!   Senden Sie eine Private Message an chaoskeeper  Schreiben Sie einen Gästebucheintrag für chaoskeeper

Beiträge: 4
Registriert: 05.03.2007

erstellt am: 05. Mrz. 2007 14:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

erstmal danke für die Antwort, aber ich geb dem schon die Werte

  Set oXRec = oDict.AddXRecord(varName)
  On Error Resume Next
  For i = 0 To 31
    dxfCode(i) = i
  Next

  oXRec.SetXRecordData dxfCode, Data


bei dem Schritt-für-Schritt dingens zeigt er mir alle Positionen in "Data" als Empty wenn ich es wieder rauslesen will

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 05. Mrz. 2007 14:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chaoskeeper 10 Unities + Antwort hilfreich

Hi,

Du gibst ihm aber nur einen Wert mit. Schau mal beim durchlaufen die Variablen an, dann wirst du es sehen. 

Du musst dem Xrecord die Value-Daten in der Schleife (i) mitgeben.

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

chaoskeeper
Mitglied
Informatiker

Sehen Sie sich das Profil von chaoskeeper an!   Senden Sie eine Private Message an chaoskeeper  Schreiben Sie einen Gästebucheintrag für chaoskeeper

Beiträge: 4
Registriert: 05.03.2007

erstellt am: 05. Mrz. 2007 14:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Die Variable "Data" ist schon ein Array von 0 bis 31

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Anzeige:Infos zum Werbeplatz >>

SYSCAD CAD APP für Fassadenbau, Metallbau

SYSCAD - CAD für Fenster, Türen und Fassaden SYSCAD - CAD for windows, doors and curtain wall

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 05. Mrz. 2007 14:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chaoskeeper 10 Unities + Antwort hilfreich

Hi,

Gib dem Xrecord das doch mal so mit:

  Set oDict = ThisDrawing.Dictionaries.Add(modname)
  Set oXRec = oDict.AddXRecord(varName)
  On Error Resume Next
  For i = 1 To 32
  Set oXRec = oDict.AddXRecord(Data(i))
  Next
  oXRec.SetXRecordData dxfCode, Data

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz