| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: VB6-Programm läuft in Frankreich nicht (1704 mal gelesen)
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 06. Nov. 2006 13:40 <-- editieren / zitieren --> Unities abgeben:         
Hallo Freunde, ich habe schon wieder ein Problem... Ich habe ein Programm in VB6 geschrieben, das bei uns und an verschiedenen deutschsprachigen Standorten wunderbar funktioniert. Bei unseren französischen Freunden macht das aber Probleme. Bei denen kommt laufen der Laufzeitfehler 13: "Typen unverträglich" Ich habe inzwischen in mühevoller Kleinarbeit die Stelle gefunden, wo dieser Fehler auftritt, aber der Grund ist mir völlig unklar. Hier wird nur eine If-Bedingung mit einer boolschen Variablen geprüft:
Code: dim dingsbums as boolean ... if Dingsbums then 'hier tritt der Fehler auf!!! ... end if ...
Kann das irgendwie an der Sprache liegen? Die Installation ist dort genauso abgelaufen, wie bei allen anderen auch, ohne Fehler.Ich war schon fast so weit, dass ich es mit vb.net 2005 Express neu machen wollte...aber dann wars mir ehrlich gesagt doch etwas zu umfangreich, incl. Tiff-Viewer und FTP-Versand. Hat jemand eine Vorstellung, woran das liegen könnte? Und wie ich das beheben könnte? ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 06. Nov. 2006 16:40 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Hallo Klaus, also ich glaube nicht das es an der Ländereinstellung liegt. Laufzeitfehler 13 bedeutet ja das eine Variable nicht den richtigen Datentyp besitzt. Ich schätze also das die Variable, welche du in deiner If Bedingung prüfst keine Boolean Varibale ist. Daher kennt Sie den Zustand True oder Flase nicht und VB6 kann diese Bedingung somit nicht verarbeiten. Ich würde also mal schauen mit welchen Inhalt die Variable belegt ist und ob eine If Bedinung überhaupt zulässig ist. Hier noch der Inhalt der Hilfe zum Thema Laufzeitfehler 13:
Visual Basic kann viele Werte konvertieren und einen bestimmtenDatentyp erzwingen und ermöglicht so Datentypzuweisungen, die in früheren Versionen nicht möglich waren. Dieser Fehler kann jedoch immer noch auftreten, und es gibt dafür die folgenden Ursachen und Lösungen: DieVariable oderEigenschaft hat nicht den richtigen Datentyp. Eine Variable, die einen ganzzahligen Wert erwartet, kann zum Beispiel keinen Zeichenfolgenwert akzeptieren, wenn die gesamte Zeichenfolge nicht als Ganzzahl interpretiert werden kann. Versuchen Sie, nur kompatibleDatentypen einander zuzuweisen. Zum Beispiel kann ein Integer immer dem Typ Long, ein Single immer dem Typ Double und alle Typen (außerbenutzerdefinierten Typen) dem Typ Variant zugewiesen werden. EinerProzedur, die eine einzelne Eigenschaft oder einen Wert erwartet, wurde ein Objekt übergeben. Übergeben Sie eine einzelne Eigenschaft, oder rufen Sie eine für das Objekt geeigneteMethode auf. Anstelle eines erwartetenAusdrucks wurde der Name einesModuls oder einesProjekts verwendet. Zum Beispiel: Debug.Print Modul1 Geben Sie einen Ausdruck an, der angezeigt werden kann. Sie haben versucht, Variant-Werte mit dem Untertyp Error (10, vbError) zusammen mit der in früheren Versionen von Basic verwendeten Fehlerbehandlung anzugeben: Error CVErr(n) Wenn Sie einen Fehler erneut auslösen müssen, müssen Sie ihn erst in einen systeminternen (oder benutzerdefinierten) Visual Basic-Fehler umwandeln und dann diesen Fehler auslösen. Sie können einen CVErr-Wert nicht in den Datentyp Date umwandeln, zum Beispiel: Var1 = CDate(CVErr(9)) Verwenden Sie eine Select Case-Anweisung oder einen ähnlichen Ausdruck, um den Rückgabewert von CVErr in einen solchen Wert umzuwandeln. ZurLaufzeit zeigt dieser Fehler in der Regel an, daß ein in einem Ausdruck verwendeter Variant-Wert einen ungültigen Untertyp hat, oder daß ein Variant-Wert, der einDatenfeld enthält, in einer Print #-Anweisung enthalten ist. Verwenden Sie zur Ausgabe von Datenfeldern eine Schleife, die jedes Element einzeln ausgibt. Weitere Informationen erhalten Sie, wenn Sie das fragliche Element auswählen und F1 (unter Windows) oder HILFE (beim Macintosh) drücken.
------------------ Mfg Daniel Es gibt nur drei Möglichkeiten: Sieg, Unentschieden oder Niederlage ---------------------------------------------- SolidWorks API-Programmierung | Makros | Tools | Addins | Schulung
SolidWorks API Programmierung; Schuler Design Automation GmbH | kontakt@schuler-da.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 06. Nov. 2006 17:16 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von tbd: Hallo Klaus,also ich glaube nicht das es an der Ländereinstellung liegt. Laufzeitfehler 13 bedeutet ja das eine Variable nicht den richtigen Datentyp besitzt. Ich schätze also das die Variable, welche du in deiner If Bedingung prüfst keine Boolean Varibale ist. Daher kennt Sie den Zustand True oder Flase nicht und VB6 kann diese Bedingung somit nicht verarbeiten. Ich würde also mal schauen mit welchen Inhalt die Variable belegt ist und ob eine If Bedinung überhaupt zulässig ist. ...
Danke für den Hinweis, aber das ist mir schon klar. Die verwendeten Variablen sind alle definiert, in unseren verschiedenen Betrieben in Deutschland, Österreich und Italien (Südtirol) mit deutschen Windows-Einstellungen funktioniert es auch problemlos. Und zwar auch mit identischen Eingaben. Daher verstehe ich nicht, wo das her kommen kann. Ich bin inzwischen schon so weit, dass ich praktisch nach jeder 2. Zeile Programmcode eine entsprechende Zeile in eine Log-Datei schreibe, um zu sehen, was genau passiert. Und genau an dieser blöden If-Stelle steigt das Ding immmer aus- aber nur in Frankreich.
------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 06. Nov. 2006 19:46 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
|
startrek Mitglied Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 06. Nov. 2006 20:13 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Hallo Klaus, wirklich seltsames Problem ... Ich schaff das nur mit 2 Möglichkeiten nachzubauen, dingsbums ist Variant/String und dann kommt der Error: Code:
Sub x() Dim dingsbums dingsbums = "xxx" Debug.Print CBool(dingsbums) 'Error End Sub
Oder dingsbums ist Boolean, dann gibts aber schon bei der Belegung nen Fehler:
Code:
Sub y() Dim dingsbums As Boolean On Error Resume Next 'gäbe sonst Error dingsbums = "xxx" On Error GoTo 0 Debug.Print CBool(dingsbums) 'dingsbums wurde nicht belegt, also default False End Sub
Wär mal interessant, was sagt denn ein: debug.print typename(dingsbums) ??? lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 07. Nov. 2006 07:56 <-- editieren / zitieren --> Unities abgeben:         
Also hier: die Variable Dingsbums heißt isBatch und ist deklariert: Code: Public isBatch As Boolean
Beim Start des Programms bzw. beim Laden der Main-Form wird sie belegt:
Code: isBatch = False
und dann nicht mehr geändert. in einer Sub kommt dann
Code: If Not isBatch Then Exit Sub 'nur im Batchbetrieb
und das ist der Punkt, wo das Programm mit der berühmten Fehlermeldung aussteigt- in Frankreich.
Code: Debug.Print TypeName(isBatch)
gibt richtigerweise ein Boolean, wie nicht anders zu erwarten. Leider habe ich bzw. meine Kollegen in Frankreich keine (mir bekannte) Möglichkeit, das Programm richtig zu debuggen. ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Moderator Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600
|
erstellt am: 07. Nov. 2006 08:57 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Guten Morgen Klaus, Zitat: Original erstellt von KMassler:
Code: If Not isBatch Then Exit Sub 'nur im Batchbetrieb
und das ist der Punkt, wo das Programm mit der berühmten Fehlermeldung aussteigt- in Frankreich. [/B]
Ändere diese Codezeile doch mal in
Code: If isBatch = False Then Exit Sub
If Not bei einer Boolean Variable habe ich persönlich noch nie verwendet. Evtl. kann es ja daran liegen, einen Versuch ist es wert. ------------------ Mfg Daniel Es gibt nur drei Möglichkeiten: Sieg, Unentschieden oder Niederlage ---------------------------------------------- SolidWorks API-Programmierung | Makros | Tools | Addins | Schulung
SolidWorks API Programmierung; Schuler Design Automation GmbH | kontakt@schuler-da.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 07. Nov. 2006 09:22 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 07. Nov. 2006 17:31 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 08. Nov. 2006 09:32 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 08. Nov. 2006 10:27 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Zitat: Original erstellt von KMassler: Wie kann ich ein VB6-Programm ohne Entwicklungsumgebung debuggen?
Du musst's ja auch irgendwie geschrieben haben, also habe ich angenommen, dass Du auch eine Entwicklungsumgebung hast. Zitat:
Wenn ich die Texte richtig interpretiere, setzt das MUI ein installiertes englisches XP voraus, das ich aber nicht habe. Für ein deutsches XP habe ich kein MUI gefunden.
Hmmm... stimmt schon, ich habe das MUI-Pack immer nur auf englische Betriebssystemversionen installiert, nicht auf deutsche; mag also sein, dass es da Beschraenkungen gibt. Wie auch immer: Wir wissen ja ohnehin nicht, ob das Problem wirklich mit der Sprache zu tun hat oder aber mit irgendeinem anderen Konfigurations- oder Installationsunterschied der betroffenen Rechner. Insofern koennte der MUI-Pack auch eine ganz falsche Faehrte sein. Claus
------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000
|
erstellt am: 08. Nov. 2006 10:31 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Zitat: Original erstellt von KMassler:
Code: Public isBatch As Boolean ... isBatch = False ... If Not isBatch Then Exit Sub 'nur im Batchbetrieb
Wenn isBatch ohnehin immer auf False steht, koenntest Du doch mal eine Testversion bauen, in der es die Variable ueberhaupt nicht mehr gibt, in der also in der fraglichen "sub" einfach nur "Exit Sub" steht, und zwar ohne "If"-Abfrage davor. Vielleicht laesst sich aus dem Verhalten einer solchen Codevariante dann etwas lernen. Claus ------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/
[Diese Nachricht wurde von clausb am 08. Nov. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 08. Nov. 2006 11:16 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von clausb: Du musst's ja auch irgendwie geschrieben haben, also habe ich angenommen, dass Du auch eine Entwicklungsumgebung hast.
Natürlich habe ich eine Entwicklungsumgebung, aber nur hier, nicht in Frankreich. Zitat: Original erstellt von clausb: Wenn isBatch ohnehin immer auf False steht, koenntest Du doch mal eine Testversion bauen, in der es die Variable ueberhaupt nicht mehr gibt, in der also in der fraglichen "sub" einfach nur "Exit Sub" steht, und zwar ohne "If"-Abfrage davor. Vielleicht laesst sich aus dem Verhalten einer solchen Codevariante dann etwas lernen.
isBach ist nicht immer False, nur bei meinen französischen Kollegen. Die verwenden das Programm bisher nur interaktiv. Ich habe das Programm auch schon sehr stark geändert, um dem Fehler auf die Spur zu kommen. Ursprünglich trat das Problem bei einer anderen Variablen vom Typ Boolean auf, aber genau im gleichen Ablauf. Du musst nur den Variablennamen ersetzen, der Rest ist gleich. ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000
|
erstellt am: 08. Nov. 2006 23:45 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Ich hab sowas noch nie gemacht, aber vielleicht laesst sich Dein VB-Programm auch mit Windbg debuggen. Windbg ist Teil der "Debugging Tools for Windows" (http://www.microsoft.com/whdc/devtools/debugging/default.mspx), die sich durch einfaches Kopieren eines Verzeichnisses auf einem Rechner "installieren" lassen und viel schlanker als Visual Studio sind. Wenn das klappt, koenntest Du Deine Applikation via Remote Desktop auf dem franzoesischen System untersuchen. Claus
------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 09. Nov. 2006 08:07 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000
|
erstellt am: 09. Nov. 2006 12:57 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Ich haette gedacht, dass man zumindest Symbole bekommt, jedenfalls dann, wenn man sie auf dem Testsystem parat hat, zum Beispiel als *.pdb-Datei, die ja beim Build automatisch erzeugt wird. Fuer C++-Code jedenfalls zeigt Windbg alle Symbole an, und er findet auch den zugehoerigen Sourcecode und alle Variablen, so dass man - wenn man von dem etwas eigenartigen UI absieht - genausogut debuggen kann wie in Visual Studio. Claus
------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 09. Nov. 2006 17:15 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 10. Nov. 2006 09:32 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 10. Nov. 2006 09:58 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000
|
erstellt am: 10. Nov. 2006 10:58 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von clausb: Auch VB kann Symbolinformation erzeugen - siehe http://www.gnoth.net/Docs/Kompilierte%20Visual-Basic-Projekte%20debuggen.pdf ...
Schöne Beschreibung, aber in meiner VB6-Umgebung sehen die Projekteigenschaften total anders aus, da ist nirgendwo ein entsprechende Option zum Erstellen der Debug-Informationen zu sehen. Bei VB.NET 2003 gibts etwas entsprechendes (nützt mir hier aber nix), auc in VB.Net 2005 Express finde ich das nicht. Ach ja, VC++ habe ich auch nicht. Zitat: Original erstellt von clausb: ...Und das schoene an virtuellen Maschinen ist ja gerade, dass man IT nicht mehr braucht, wenn man in einer solchen Maschine ein Betriebssystem installieren will!Claus
Bauche ich wohl, denn ich habe weder VM-software (könnte ich mir ja runter laden) noch Windows-XP. Aber in 2 Wochen oder so kommt mal ein Kollege aus Frankreich mit seinem Laptop, dann versuche ich mal da mein deutsches VB6 zu installieren. ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... [Diese Nachricht wurde von KMassler am 10. Nov. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 30. Nov. 2006 10:06 <-- editieren / zitieren --> Unities abgeben:         
Ischwerdbekloppt... Jetzt habe ich den Laptop von Frankreich da, VB6 installiert und mein Projekt damit gestartet...und muss feststellen, dass ich wohl die ganze Zeit Tomaten auf den Augen hatte. So sah eine der Fehlerstellen aus:
Code: ... If Trim(.Text1.Text = "") _ Or Trim(.Text4.Text = "") _ Or Trim(.Text5.Text = "") _ Or (Trim(.Text6.Text = "") And AktDokKlassNr) _ Or Trim(.Text7.Text = "") _ Or Trim(.Text13.Text = "") Then ...
Wem fällt was auf?Richtig! Die Klammern waren KROTTENFALSCH gesetzt. So isses richtig:
Code: ... If Trim(.Text1.Text) = "" _ Or Trim(.Text4.Text) = "" _ Or Trim(.Text5.Text) = "" _ Or (Trim(.Text6.Text) = "" And AktDokKlassNr) _ Or Trim(.Text7.Text) = "" _ Or Trim(.Text13.Text) = "" Then ...
Und das kam so ähnlich noch zig mal im Programm vor, vermutlich mal durch Copy & Paste vervielfacht. Aber komisch ist ja, dass das Programm hier bzw. bei allen meinen Kollegen mit einem deutschen System trotzdem richtig gelaufen ist Fazit: In Zukunft mal besser aufpassen Nochmal ein herzliches Danke an alle, die ihren Gehirnschmalz auf mein selbstverursachtes Problem verschwendet haben! ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... [Diese Nachricht wurde von KMassler am 30. Nov. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000
|
erstellt am: 03. Dez. 2006 15:19 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
Glueckwunsch zur Aufloesung des Raetsels! In der Tat, solcher Code sollte auch in deutsch so manches Problem verursachen. Dass er es (bisher) nicht getan hat oder jedenfalls nicht in auffaelliger Weise, gehoert in die Kategorie "Glueck gehabt". Vielleicht sind aber auch in der deutschen Version die Inhalte der Text-Variablen aus irgendeinem Grund typischerweise anders belegt? Hmmm... was passiert eigentlich bei diesem Code in VB:
Code:
Or Trim(.Text4.Text = "") _
Ich habe gerade kein VB zur Hand, daher kann ich es nicht ausprobieren. Ich sehe drei Moeglichkeiten:
- .Text4.Text="" wird als Boolescher Test interpretiert,
das Resultat ist entweder True oder False. In diesem Fall stellt sich die Frage, was Trim() mit einem Booleschen Wert als Eingabe macht.
- Wie oben, nur wird aus dem True oder False ein
String gemacht, um den Wert an das anzupassen, was Trim() als Eingabetyp erwartet.
- .Text4.Text="" wird als Zuweisung ausgewertet,
und das Resultat, das in Trim() gesteckt wird, ist der leere String "". In diesem Fall gibt es nix zu trimmen, und die Trim()-Bedingung wird wohl nie zutreffen.
Aber was weiss ich denn schon von VB  Claus PS: Habe gerade in VB.NET herumgespielt - dort traf die zweite Variante zu. Aus dem Trim(Text4 = "") wird also, je nachdem ob Text4 leer ist oder nicht, sowas wie Trim("False") oder Trim("True"). Trim() hat in beiden Faellen nix zu tun und liefert dann also "False" oder "True". Das wiederum ist in jedem Fall vom leeren String verschieden, so dass 'if trim(...)' immer wahr ist, damit also die ganze If-Kaskade wahr wird. Aber vielleicht ist's in VB6 nochmal anders. ------------------ OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/ [Diese Nachricht wurde von clausb am 03. Dez. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 04. Dez. 2006 08:24 <-- editieren / zitieren --> Unities abgeben:         
|
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000
|
erstellt am: 04. Dez. 2006 08:36 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 04. Dez. 2006 08:40 <-- editieren / zitieren --> Unities abgeben:         
|
zoltan.bekesi Mitglied
 
 Beiträge: 321 Registriert: 22.10.2006
|
erstellt am: 06. Jan. 2007 13:11 <-- editieren / zitieren --> Unities abgeben:          Nur für KMassler
|