Wie muß ich bei einem VB Script Convertieren?

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Parry36.

    Wie muß ich bei einem VB Script Convertieren?

    Hallo in die Runde,

    bin ganz neu hier, und auch mit VB Programmierung habe ich erst vor kurzem angefangen.
    Bei meinem kleinen Programm (VB 2017 Community) komme ich mit der Convertierung der
    Variablen nicht zurecht, vielleicht könnt ihr mir auf die Sprünge helfen.

    VB.NET-Quellcode

    1. Private Sub Bt_mul_Click(sender As Object, e As EventArgs) Handles Bt_mul.Click
    2. Dim Wert1 As Double = Tb_wert1.Text
    3. Dim Wert2 As Double = Tb_wert2.Text
    4. Dim Ergebnis As Double = Wert1 * Wert2
    5. Tb_wert3.Text = Ergebnis.ToString
    6. End Sub


    Gruß Parry36

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Willkommen im Forum.
    WhatWhatWhat?
    VBScript? EventArgs? Tb_Wert1.Text? VB2017 Community?
    Da haut doch irgendwo vorn und hinten nix hin. Dass VBScript eine VB6-ähnliche Programmiersprache ist, die kein gesondertes Programm zur Ausführung benötigt, sondern von Windows Scripting Host interpretiert wird, ist klar, oder?
    Kann es sein, dass Du ehemals ein VBScript-Code hattest und das Ganze nun in VB.Net transferieren willst?
    Jetzt auch die Frage: Wo ist das Problem? Denn das hast Du nicht erwähnt. Und auch keine Frage gestellt.
    Ich vermute zwar, dass jetzt VS rummuffelt, dass - aufgrund der Empfohlenen Grundeinstellungen in Visual Studio - eine Umwandlung eines Textes in eine Zahl (Zeile#2, #3) nicht erlaubt ist, aber 1. ließe sich das durch CDbl(Tb_wert1.Text) oder auch mit Double.TryParse beheben, 2. ist leider meine Glaskugel wegen spontaner Selbsteintrübung beim Hersteller, von daher: Bitte formulier nochmals Dein konkretes Problem.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Wo ist das Problem?
    Das ist sehr versteckt formuliert:

    Parry36 schrieb:

    komme ich mit der Convertierung derVariablen

    Meine Glaskugel ist noch minimal einsatzbereit.
    Ich gehe davon aus, dass ihm dein Hinweis auf Double.TryParse weiterhelfen könnte.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @petaod: Das war mir aufgrund des riesigen Eingangsbeitrags wohl erfolgreich entgangen ;)
    Nee, aber wirklich: Die Formulierung

    Parry36 schrieb:

    Bei meinem kleinen Programm (VB 2017 Community) komme ich mit der Convertierung der Variablen nicht zurecht
    war mir etwas zu unspezifisch.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo,
    erstmal Danke für die Hilfe, die Funktion ClInt() kannte ich bereits, nur wußte ich nicht,
    wo ich die weiteren Convertierungsfuktionen finden konnte.
    Der Ton hier, scheint ziemlich zuschüttend zu sein, ich wollte doch nur eine
    kleine Einführung haben, dann werde ich VB vielleicht für meine bescheidenen
    Anforderungen erlernen.
    Ich Programmiere hauptsächlich in Lua für mein EEP und da möchte ich auch VB.Net einsetzen.

    Gruß Parry36

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Parry36“ ()

    Das Problem ist, was Visual Basic angeht müssen wir sehr auf die Terminologie achten, da es viele Technologien gibt, mit ähnlichem Namen, jedoch unterschiedlichen Zwecken, und manche haben andere bereits "ersetzt".

    Da du von VS2017 Community sprichst, gehe ich nun einfach mal davon aus, dass du ein VB.NET Programm entwickelst, und bitte dich darum, das auch als solches zu nennen, da unter "VB" i.d.R. VisualBasic 6 verstanden wird, und unter "VB Script" eben VBScript. Haben beide lediglich eine ähnliche Syntax wie VB.NET jedoch haben die alle nix miteinander zu tun.

    Nun da das geklärt wäre (hoffentlich) bitte ich dich darum CInt() gleich mal wieder zu vergssen, und dir mal Integer.Parse() sowie Integer.TryParse() anzusehen. Diese beiden Funktionen wurden dazu geschaffen Strings, die Zahlen darstellen, in Integer umzuwandeln. Selbes gilt für die anderen "primitiven" Datentypen.
    Danke, da habe ich erstmal genügend Lesestoff.

    Ich habe die Vorschläge erstmal umgesetzt, funktioniert schon mal, nur werden die
    Ergebnisse jeweils ohne Dezimalpunkt angezeigt, außer beim Teilen.
    Da habe ich bestimmt noch einen Fehler gemacht!
    Aber was?
    hier der VB.Net Code:

    Quellcode

    1. Public Class Fm_H
    2. Private Sub Bt_add_Click(sender As Object, e As EventArgs) Handles Bt_add.Click
    3. Dim Wert1 As Double = Double.Parse(Tb_wert1.Text)
    4. Dim Wert2 As Double = Double.Parse(Tb_wert2.Text)
    5. Dim Ergebnis As Double = Wert1 + Wert2
    6. Tb_wert3.Text = Ergebnis.ToString
    7. End Sub
    8. Private Sub Bt_mul_Click(sender As Object, e As EventArgs) Handles Bt_mul.Click
    9. Dim Wert1 As Double = Double.Parse(Tb_wert1.Text)
    10. Dim Wert2 As Double = Double.Parse(Tb_wert2.Text)
    11. Dim Ergebnis As Double = Wert1 * Wert2
    12. Tb_wert3.Text = Ergebnis.ToString
    13. End Sub
    14. Private Sub Bt_teil_Click(sender As Object, e As EventArgs) Handles Bt_teil.Click
    15. Dim Wert1 As Double = Double.Parse(Tb_wert1.Text)
    16. Dim Wert2 As Double = Double.Parse(Tb_wert2.Text)
    17. Dim Ergebnis As Double = Wert1 / Wert2
    18. Tb_wert3.Text = Ergebnis.ToString
    19. End Sub
    20. Private Sub Bt_sub_Click(sender As Object, e As EventArgs) Handles Bt_sub.Click
    21. Dim Wert1 As Double = Double.Parse(Tb_wert1.Text)
    22. Dim Wert2 As Double = Double.Parse(Tb_wert2.Text)
    23. Dim Ergebnis As Double = Wert1 - Wert2
    24. Tb_wert3.Text = Ergebnis.ToString
    25. End Sub
    26. End Class


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Parry36“ ()

    Das kommt wohl ganz darauf an, was Du für Zahlen eingibst. Aus 3 + 5 ergibt sich nunmal nicht ohne aktives Zutun Deinerseits 8,00.
    Dazu brauchst Du z.B. Tb_wert3.Text = Ergebnis.ToString("F2"). Dadurch wird das Ergebnis immer mit 2 Nachkommastellen angegeben.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Das scheint so nicht zu funktionieren:
    als Beispiel:
    wenn ich 10.5 + 4.5 = Ergebnis ( 150.00 ) oder 10.5 * 4.5 = Ergebnis ( 4725.00 )
    es werden also nur am Ende 2 Nullen angefügt.
    Bei ganzen Zahlen alles ok 10 + 4 = Ergebnis ( 14.00 ) oder 10 * 4 = Ergebnis ( 40.00 )
    Da fehlt noch was?
    Seit wann trennt man hier in Deutschland Vorkommastellen und Nachkommastellen (argh, mir fallen die Fachbegriffe nicht ein) mit einem Punkt? Nutze das Komma bei der Eingabe und die Ergebnisse sind richtig. Der Punkt wird aufgrund der Windowseinstellungen nicht als Trennzeichen dafür erkannt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ja,@VaporiZed,

    da hast du absolut recht, der Punkt war mir auch irgendwie suspekt.
    Habe dazu noch eine Frage, wie muß ich formatieren, wenn ich mehrere Nachkommastellen darstellen möchte?
    Definiere "mehrere Nachkommastellen"
    .ToString("F23") ergibt 23 Nachkommastellen. Reicht das ggf. als Info?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    VS 2017 Community Edition ist für Schüler, Studenten, Einzelentwickler. Und voll funktionsfähig. Damit kannst Du also so ziemlich alles machen. Nicht nur Exe-Dateien erstellen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    :huh:
    Hab grad gesehen, dass das irgendwas mit ClickOnce ist. Läuft Dein Programm, sobald Du auf das grüne [>] klickst?
    Wie hast Du denn Dein Projekt erstellt?
    Standardvorgehen bei mir: VS starten, Datei->Neu->Projekt; > Installiert, Visual Basic, klassischer Windows-Desktop, Windows-Forms-App (.NET-Framework).

    Sollte dieses Fenster bei Dir nicht die gezeigten und genannten Optionen zeigen, wurde VS mit den falschen Einstellungen installiert. Das kannst Du dann unten links korrigieren ("Ist nicht das Richtige dabei? Visual Studio-Installer öffnen").

    Sobald alles codetechnisch fertig ist, klickst Du z.B. im Menü auf Erstellen, Projektmappe erstellen und dann ist die EXE im Debug-Ordner.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Windows Forms ist gewählt, wie du in Pos. 1 beschrieben hast.
    Im Erstellen-Fenster ist keine Auswahl für Projektmappe erstellen, nur Codeanalyse für Projektmappe.

    Kann leider kein Bild einfügen oder verlinken.
    Bilder
    • VB_ Einstellung1.PNG

      239,13 kB, 1.493×818, 57 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Parry36“ ()