Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  MegaCAD
  VB-Programmierproblem

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
  
MegaCAD auf der Metallsoftware Süd
Autor(20117) Thema:  VB-Programmierproblem (1076 mal gelesen)
Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3679
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 07. Feb. 2005 12:25    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

Hallo alle,

ich versuche gerade, mir eine VB-DLL zu basteln, die mir die Namen aller eingefügter Macros in eine Textdatei exportiert. Klappt soweit auch schon ganz gut, aber es ergeben sich zwei Probleme:

1. Ich möchte nur die Macros bearbeiten, die in der 'ersten Schicht' liegen. Ein Macroloop liefert mir aber auch immer die verschachtelten Macros, also praktisch die Unterbaugruppen. Ich finde nirgendwo in der VB-Hilfe eine Möglichkeit, solche verschachtelten Makros auf irgendeine Weise zu identifizieren, um sie von der Bearbeitung ausschließen zu können. Weiß vielleicht jemand Rat?

2. Solange ich mir (zum Testen) die Makronamen in einer MSGBOX anzeigen lasse, sieht alles OK aus. Schreibe ich den t_macro.name aber in eine string-Variable und danach in eine Textdatei, dann hängen bei den CADENAS-Teilen plötzlich zusätzliche Informationen an den eigentlichen Namen dran. Das wäre auch garnicht so schlimm, aber an den darauffolgenden strings der anderen Teile hängen dann plötzlich ganz unmotiviert Teile dieser Texte auch dran. Ist das ein BUG oder mache ich da irgendwas falsch?

Gruß, Torsten

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

Hillex
Mitglied
Meister/BWdH/Dipl.Ing.Ind.Engineering


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

Beiträge: 587
Registriert: 16.01.2002

erstellt am: 07. Feb. 2005 14:33    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 Torsten Niemeier 10 Unities + Antwort hilfreich

Moin,

zu 1: Das müsste sich wahrscheinlich über eine EntityLoop mit den Elementtypen E_MACRO und E_ENDMAC zu bewerkstelligen sein. Da alle Elemente dazwischen zu einer Baugruppe gehören müssten.

zu 2: daran ist wahrscheinlich ein Bug schuld. Die Variable in der VB-Zwischen-DLL wird wahrscheinlich nicht vollständig mit NULL initialisiert, außerdem wird zusätzlich die Macro-Info, welche nach einem NULL-Byte folgt mit in die Namensvariable geschrieben und damit steht immer noch die Makro-Info dahinter.
Bei der MSGBOX tritt dieser Effekt nicht in Erscheinung, da dies ein API-Aufruf ist, welcher in C geschrieben ist und in C werden String mit einem NULL-Byte abgeschlossen. Deshalb hört die Ausgabe des String nach dem ersten NULL-Byte auch auf.
Vorerst Abhilfe für das Problem könnte sein, das du deine Variable erst immer mit einer Leerenzeichenkette "" initialisierst und dann dieser einen Teilstring bis zum ersten NULL-Byte der t_macro.name Variable zuweist.

------------------
90% aller Fehler haben ihre Ursache 60cm vor dem Bildschirm.

CU
Karsten

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3679
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 07. Feb. 2005 15:06    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

Auch Moin,

ist ja super, hatte kaum mit Lösungsmöglichkeiten gerechnet, vor allem nicht in der Zeit.
Werde die beiden Möglichkeiten ausprobieren, aber schon vorher gibt's für die beiden Tips jeweils 10.

Besten Dank nochmal.

Gruß, Torsten

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

Hillex
Mitglied
Meister/BWdH/Dipl.Ing.Ind.Engineering


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

Beiträge: 587
Registriert: 16.01.2002

erstellt am: 07. Feb. 2005 15:10    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 Torsten Niemeier 10 Unities + Antwort hilfreich

Moin,

nochmals zu 2.

ich konnte die von Dir beschriebenen Probleme mit MegaCAD-Bauruppen und Infos nicht nachvollziehen. Leider habe ich keine Datei mit CADENAS Baugruppen. Kannst du mal ein Beispiel ins Formstellen oder mir zusenden. Danke

------------------
90% aller Fehler haben ihre Ursache 60cm vor dem Bildschirm.
   
CU
Karsten

[Diese Nachricht wurde von Hillex am 07. Feb. 2005 editiert.]

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3679
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 09. Feb. 2005 09:12    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

Hallo Karsten,

sorry für die späte Antwort, aber jetzt läuft es (endlich).
War nicht ganz so einfach, denn der Entity-Loop berücksichtigt leider keine e_macros. Beim Macro-Loop werden zwar sowohl e_macros als auch e_endmacs gefunden, aber nicht so wie ich es erwartet hätte, denn die verschachtelten werden zweimal gefunden.
Letztendlich mache ich jetzt mehrere Macro-Loops, wobei ich die Macros erst identifiziere und sammle und anschließend noch Macro-Loops über die einzelnen Macros (Startwert) mache, wobei ich dann die gefundenen Unterbaugruppen aus der ursprünglichen Liste lösche.
So geht's jedenfalls, und auch verdammt schnell.
Das Textproblem habe ich dann gelöst, indem ich bei den eigenen Macronamen alles hinter ".mac" und bei Cadenas alles hinter "IDNR" abschneide.
Eine Beispieldatei mit Cadenas-Elementen schicke ich Dir heute oder morgen zu. Ich muß dazu aber sagen, daß der Textfehler bei mir unter EVOII auftrat, mit 2005 hab' ich's noch nicht probiert.

Nochmal vielen Dank für die Anregungen,

Torsten

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

Hillex
Mitglied
Meister/BWdH/Dipl.Ing.Ind.Engineering


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

Beiträge: 587
Registriert: 16.01.2002

erstellt am: 09. Feb. 2005 09:40    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 Torsten Niemeier 10 Unities + Antwort hilfreich

Moin,

dass die Filter für die Schleifen nicht richtig funktionieren hatte ich auch schon bemerkt, dass ist auch noch bei der 2005er so. Bis jetzt hat es mich aber noch nicht gestört. Ken sollte dies aber mal überprüfen, dann könnte evtl. eine aktualisierte Version der DLL und der IF ins Forum oder auf die Megatech-Seite gestellt werden.
Die MacroLoop wertet im Übrigen auch keine Elemente in filter1 aus, so wie dies in der Hilfe Beschrieben ist.

------------------
90% aller Fehler haben ihre Ursache 60cm vor dem Bildschirm.

CU
Karsten

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

KenSch
Mitglied
Software!


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

Beiträge: 27
Registriert: 13.03.2003

Suche auch nach Aufträgen in der Softwareentwicklung, auch gerne Zusatzapplikationen zu MegaCAD.

erstellt am: 10. Feb. 2005 00:59    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 Torsten Niemeier 10 Unities + Antwort hilfreich

das Problem mit den verschachtelten Makros ist mir auch schon aufgefallen, liegt aber leider direkt an der C-Schnittstelle, die ja indirekt von der Basic-Schnittstelle benutzt wird.

Eine zuverlässige Methode, die ich dann benutzt habe um gerade die E_MACRO und E_ENDMACROs wirklich so zu bekommen, daß es Sinn macht, ist immer beide Filter als 0xffffffff (-1) zu übergeben, d.h., alle Elemente an die Callbackfunktion übergeben zu lassen, und dort entscheiden, ob Du sie behandeln willst, oder nicht.

Ich kann mich auch an ein Problem mit den Texten, wie beschrieben, erinnern, müßte aber schon seit einer Weile behoben sein. Ich habe auch gerade eine ganz neue VB-Schnittstelle hier abgelegt, endlich auch mit einer Entsprechung der Funktion CreateMacro, speziell für VB 

Ken

------------------
Ken Schirmeister
KenSch@MountainCable.net

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)2024 CAD.de | Impressum | Datenschutz