Kommn nicht weiter VB.Net

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

    Kommn nicht weiter VB.Net

    Also ich will das mein Programm 1 ein Builder ist ich da die Daten eingebe und diese an Programm2 (Stub) übermittelt werden, was auch soweit funktioniert. Jetzt möchte ich auch, dass der Timer Interval übermittelt wird was auch geht zumindest in ein Label aber es wird nicht als Integer für den Timer Interval "akzeptiert" Hier ein Code ausschnitt:

    VB.NET-Quellcode

    1. Dim options(), text1, text2, text4, text5, numberval As String


    VB.NET-Quellcode

    1. numberval = Space(LOF(1))


    VB.NET-Quellcode

    1. FileGet(1, numberval)


    VB.NET-Quellcode

    1. Timer1.Interval = options(5)


    Error:
    Ungültige Konvertierung von der Zeichenfolge in Typ Ineger.
    Dieser Error kommt Wenn der Timer1 ausgelöst wird.

    Was soll ich machen ich komm nicht weiter :D :?:
    Space und LOF sind aber nicht VB2010 sondern relikte aus VB6, seh dich mal nach den aktuellen Äquivalenten um.

    Ansonsten definierst du das Array Options ja als String und weißt es dann dem Timer Interval zu welches vom Typ Integer ist und das geht natürlich nicht. Entweder gleich als Integer in der Variablen Ablegen oder Konvertieren, wobei ich dir zu richtigen Datentypen raten würde, entspricht eher der sauberen Programmierung.
    Ok habs gemacht kommt wieder nen Error also ich hab jetzt folgendes gemacht:

    VB.NET-Quellcode

    1. Dim int As Integer


    VB.NET-Quellcode

    1. int = CInt(Val(options(5)))


    VB.NET-Quellcode

    1. Timer1.Interval = int


    Error:
    Ungültige Konvertierung von der Zeichenfolge in Typ Integer.
    ? ?(
    Lass dir mal options(5) inner MessageBox ausgeben.

    per Int.Parse kannste gucken, ob man den Wert in einen Integer stopfen kann.

    @mcdt: Unter VB2008 kann ich einen Integer problemlos "int" nennen. Sollte denke ich kein Problem sein.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Geht nicht...gehts noch detaillierter? Code herzeigen.

    btw, ist Option Strict On eigentlich an?

    Edit: Upps. Die richtige Funktion hierfür ist Integer.TryParse(). Sorry ;)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Lukas schrieb:

    btw, ist Option Strict On eigentlich an?


    Das glaubst du doch selbst nicht bei dem oben gezeigen Code ^^

    @TE: vlt. solltest du erstmal die Grundlagen beherrschen. Das sieht nämlich noch nicht so aus als ob du wüsstest was Datentypen usw. sind. Was du da machst sind die typischen Anfängerfehler, wo jemand VB geladen hat, keine Ahnung was Programmieren ist und alles mögliche aus dem Netz an Code zusammen kopiert ohne zu wissen was dort genau gemacht wird.
    Schreib Option Strict On ganz oben in deinem Code hin, noch vor den Imports.
    Du wirst erstmal ein paar Fehler bekommen, aber wenn du die gefixt hast, hast du das mit den Typen und dem Konvertieren besser verstanden.
    Meine Vermutung ist das du da irgendwo anders ne ungültige Konvertierung vornimmst...und Option Strict On markiert dir dies gleich als Fehler.

    @Dodo: Die Hälfte davon ist VB6... die ganzen Funktionen á la Space und LOF sagen mir nichts^^
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Inwiefern soll ich diese Verbessern:

    VB.NET-Quellcode

    1. SMTP.Port = text4


    VB.NET-Quellcode

    1. text1 = Space(LOF(1)) text2 = Space(LOF(1)) text4 = Space(LOF(1)) text5 = Space(LOF(1)) numberval = Space(LOF(1))


    Den Rest habe ich schon verbessert
    Wohlmöglich ist der gesamte Code mist und nur die richtigen Datentypen zu benutzen machts noch nicht besser und die paar Zeilen Code helfen da auch nicht wirklich weiter.

    @Lukas: Space(Length) füllt einen String mit Leerzeichen, .NET Äquivalent StringBuilder(Length) und LOF ist LengthOfFile. Es wird also ein String allokiert welcher die Länge einer Datei hat die wohlmöglich eingelesen werden soll. Wobei selbst diese Methode über FileGets() nicht mehr VB6 ist sondern eher noch weiter drunter, unter VB6 hat man eine Datei mit dem Open "datei" For Input As #1 geöffnet.
    @Dodo: Danke für die Erklärung, hab auch gerade mal auf MSDN nachgeschaut.

    @noxxio: Also irgendwie ist das alles hier viel zu zusammenhangslos. Wozu genau sind denn diese leeren Strings nun da? Vielleicht arbeitest du ja an etwas, was es schon als fertige Funktion gibt?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.