Zeichenfolge in Zahl wandeln

  • Hallo,


    ich möchte eine Zeichenfolge in eine Zahl wandeln.


    z.B:


    abc: 12344


    ergibt dann


    12344


    Mein Code:


    Dim Nummer as String
    Dim Nummer2 as Long
    .....
    Nummer2 = Val(Nummer)
    ....


    Funzt leider nicht. Warum bzw. was ist falsch?


    Danke

    • Offizieller Beitrag

    frage vorher mit IsNumeric(...) ab, ob es sich in eine Zahl umwandeln lässt.


    Gruß
    Dirk


    %edit
    ich hätte auch sowas wie Cint, Clng, Cdbl verwendet.


    Welcher Fehler kommt?

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Zitat


    Dim Nummer2 as Long
    Funzt leider nicht. Warum bzw. was ist falsch?


    Wer lesen kann, ist klar im Vorteil!

    Zitat


    Return value
    Val returns the converted part of stringExpr as a Double.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    wenn Du ein Feld ausliest, dann kommt immer eine Liste zurück. D.h. Du musst die Umwandlung für jeden Wert in der Liste machen.


    Gruß
    Dirk

    • Offizieller Beitrag

    bei einem Feld welches DU ausliest, kommt immer ein Array mit 1 bis n Werten zurück.


    Schalte mal den Debugger ein und schau, wenn der Fehler kommt alle Variablen und Objekte an, die in der Zeile benutzt werden.


    Falls picklist der Feldname in dem Dokument ist, dann fehlt in der Zeile
    meine_Variable = picklist(0)
    noch irgendwie das NotesDocument-Object. In etwa so:
    meine_Variable = doc.picklist(0)


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Moinsens,
    Unabhängig von Array oder nicht: "Val" liefert 0 bei führendem Text (abc: ) . Hängt der Text am Ende, wird nur die Zahl geliefert.


    Bei 'ner automatischen Mailsortierung nach Subject-Inhalt hatte ich gerade das gleiche Problem.


    Sieht bei mir jetzt so aus:


    Private Function FindeString(Ordner As String, gefunden As Integer)
    Dim Zahl As Integer
    Zahl = Abs(Val (Ordner)) ' Funzt nur, wenn KEIN Text vor Num folgt
    While Zahl = 0 And Len(Ordner) > 5 'sucht Zahl durch Weglassen von führendem Text
    Ordner = Mid(Ordner,2)
    Zahl = Abs(Val (Ordner))
    Wend
    .
    .
    .
    End Function


    Oder gibt's da was intelligenteres?