Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Dim - Statement

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
Autor Thema:  Dim - Statement (993 mal gelesen)
joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 07. Jul. 2014 17:11    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 Gemeinde,

beim Lesen diverser Script-Zeilen hier im Forum fiel mir öfter mal eine Deklaration der Art

Dim Text, Nocheintext as string

auf.

In obigem Beispiel wird für Text der Datentyp variant von VB vergeben
(und nicht string!)

Noch ein einfaches Beispiel:

  Dim a, b As Integer
 
  a = 5 / 7
  b = 5 / 7
 
  Debug.Print a, b
Ergebnis:
  0,714285714285714          1

Der zunächst angenommene Typ 'variant' für 'a' wird auf Grund des Ausdruckes 5/7 intern in eine Variable des Types 'Double' umgewandelt.
Das kann zu ungewollten Ergebnissen führen.


Nur zur Info.

Tschau,
Joe

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 08. Jul. 2014 10:01    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 joehz 10 Unities + Antwort hilfreich

Das sind eigentlich Grundlagen der der VB-Programmierung. :-D

War jetzt eine Frage, oder? ;-)

Ich finde sowieso, dass man die Deklarationen immer am Anfang jeder Methode zeilenweise machen sollte.

Hier im Forum gehe ich jedoch davon aus, dass es mehr um das Lösen der Probleme als die Einhaltung der bestmöglichen Form geht. :-)
Allerdings weise ich die Autoren darauf hin, wenn die z.B. IF-Schleifen sagen, damit sich der falsche Therminus nicht auf unsere Neulinge überträgt. :-)

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 08. Jul. 2014 10:26    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 joehz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HoBLila:
Ich finde sowieso, dass man die Deklarationen immer am Anfang jeder Methode zeilenweise machen sollte.

Da hast du meine absolute Zustimmung. Manchmal lässt sich Latebinding leider nicht vermeiden, allerdings ist das nur in weniger als einem Prozent der Fall. Alles andere kommt bei mir noch vor den Try Catch und meistens geordnet nach Object > String > Boolean > Integer  Object unterteile ich dann nochmal. Hierbei kommen API Objekte als erstes und nachfolgend erst die anderen in ihrer Wichtigkeit und ebenfalls sortiert  Keine Ahnung, aber da bin ich ein Ordnungsfanatiker.

Wo wir gerade dabei sind, könnten wir zwecks Leseoptimierung auch direkt über die Namensgebung sprechen. Ich fahre sehr gut damit, dass ich zum Beispiel bei String immer erst ein str vor den Variablennamen schreibe. Der Rest wird sinnvoll gekürzt. z.B. ein Dictionary mit einer Auflistung von Kabeln mit entsprechenden Attributen

Dim dicCableAttrList as Dictionary(of String, Dictionary(of String, String))

Das sollte sich jeder angewöhnen zumindest in irgendeiner Art ein Schema in die Variablen zu bringen. So kann man zum Beispiel seine Zeiten für Fehlerbehebung drastisch reduzieren.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 08. Jul. 2014 12:37    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

Zitat:
Original erstellt von HoBLila:

Ich finde sowieso, dass man die Deklarationen immer am Anfang jeder Methode zeilenweise machen sollte.


Einverstanden! ;-) (mach' ich auch immer)


Zitat:
Original erstellt von HoBLila:

Hier im Forum gehe ich jedoch davon aus, dass es mehr um das Lösen der Probleme als die Einhaltung der bestmöglichen Form geht. :-)

Schon klar.
Ich will nur vermeiden, dass mit dem guten Lösungsweg lästige Fehlerquellen eingeschleppt werden.
Nachdem ich mehrfach die beschriebene 'Dim'-Technik entdeckt habe, wollt' ich das mal thematisieren.

Tschau,
Joe

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 08. Jul. 2014 13:22    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

Zitat:
Original erstellt von RSchulz:

Wo wir gerade dabei sind, könnten wir zwecks Leseoptimierung auch direkt über die Namensgebung sprechen. Ich fahre sehr gut damit, dass ich zum Beispiel bei String immer erst ein str vor den Variablennamen schreibe. Der Rest wird sinnvoll gekürzt.

Etwa so, wie für VB hier beschrieben?

http://msdn.microsoft.com/en-us/library/aa240822%28v=vs.60%29.aspx

Dann wäre noch die Nomenklatur für die Catia-Objekte zu klären.
Ein paar interessante Ansätze hab ich schon gesehen.

Die hier

http://catiadoc.free.fr/online/CAAScrTechArticles/CAAScrScriptCodePresentation.htm#Naming%20Conventions

von Dassault vorgeschlagenen Regeln passen allerdings nicht immer zu denen von VB(i für integer, s für string,...).
Eventuell liesse sich das noch erweitern um z.B. ad für ActiveDocument oder adp für ActiveDocument.Part?

Was meinst Du?

Tschau,
Joe

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 08. Jul. 2014 14:19    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 joehz 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von joehz:
Was meinst Du?

Also in erster Linie muss der Programmierer damit zurecht kommen, der daran arbeitet. Wenn dieser irgendwelche kryptischen Daten braucht, um sich schnell wieder einlesen zu können, dann ist das eben so. Zu Wohle aller anderen und in der Regel auch sich selbst, macht eine saubere Struktur Sinn. Wie diese genau aussieht und ob bzw. wie genau diese an allgemein gültigen Vorgaben/Vorschlägen angelehnt ist, bleibt wohl jedem überlassen. Arbeitet man im Team, sollte man sich hier abstimmen und ggf. Richtlinien festschreiben. Ich für meinen Teil habe mir auch "meine" eigene Struktur erarbeitet und wenn man bisschen Logisch an die Sache heran geht und vor allem nicht nur selbst lesen möchte, dürfte es nie weit von diesen in den Links beschriebenen Vorgaben entfernt sein.

In meinen Augen ist die Lesbarkeit extrem entscheidend für Weiterentwicklungen und debuging.
Hierbei entscheidend ist aber auch der Aufbau der Module. Ich für meinen Teil schreibe für "mehr oder weniger" jeden Code, den ich mindestens zweimal verwende eine eigene Funktion. Diese wiederum halte ich so neutral wie möglich und übergebe meistens sogar globale Variablen an dieses Modul. So bleibt diese Autark, auch wenn sich drum herum etwas ändert. Das hat mir schon so oft extrem große Änderungen sehr vereinfacht. Außerdem kann man die Module in der Regel eins zu eins kopieren und in anderen Projekten verwenden, ohne irgendetwas anpassen zu müssen oder gar Variablen etc. mit kopieren zu müssen.

Aber gut jeder wird im Laufe seiner Programmierlaufbahn seine Techniken entwickeln und bestimmte Dinge optimieren. Zumindest die, die gut oder gar besser als andere werden wollen  


------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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