String Wert - Regex

  • VB.NET
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von benji2012.

    String Wert - Regex

    Hallo zusammen,

    ich habe in einer Textdatei folgenden Term, der in jeder Zeile auftreten kann:

    C=DC(Winkelangabe), vorn und hinten ist der Term durch ein Leerzeichen getrennt.

    z.B.

    123 C=DC(123.84) 345
    234 456
    245 C=DC(-245.54) 234
    245 C=DC(180) 234


    Ich bräuchte den Zahlenwert der aktuellen Zeile in einer Variable, damit ich sie verrechnen kann. Ich habe bereits versucht über MID, diesen Wert zu erhalten, allerdings weiß ich nicht, wie ich das letzte Leerzeichen bzw. die "Klammer zu" begrenzen kann ?

    VB.NET-Quellcode

    1. Dim Wert as Double
    2. WERT = Mid(line, line.IndexOf("C=DC", 0) + 6, ????)


    Vielleicht kann mir hier jemand helfen.

    benji2012 schrieb:

    den Zahlenwert der aktuellen Zeile
    Welchen?
    Ich seh da 3 Werte drin.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wie in deinem titel: nimm regex her
    Hier in diesem Forum gibt es eh ein Tutorial: RegEx Tutorial - Blutige Anfänger und Fortgeschrittene
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @ Rod je nach Zeile, immer den roten Wert..

    123 C=DC(123.84) 345
    234 456
    245 C=DC(-245.54) 234
    245 C=DC(180) 234

    @Radinator

    Regex müsste ich nehmen, wenn es so garnicht geht, da ich da wirklich blutiger Anfänger bin und wenn ich den Quellcode in einem Jahr wieder mal anschaue, bei regex wieder nicht wüsste was ich da germacht habe. :)

    Dachte halt das man hier:

    WERT = Mid(line, line.IndexOf("C=DC", 0) + 6, ????)

    ausgehend von dem gefunden Term C=DC, das nächste Leerzeichen nimmt und dann -1 oder so ähnlich.


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

    benji2012 schrieb:

    den roten Wert
    bekommst Du z.B. so:

    VB.NET-Quellcode

    1. Dim line = "123 C=DC(123.84) 345"
    2. Dim parts() = line.Split(New Char() {"("c, ")"c})
    3. If parts.Length >= 3 Then
    4. MessageBox.Show(parts(1))
    5. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!