Announcement

Collapse
No announcement yet.

Verschiedene Substrings (Pattern) aus einem String extrahieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verschiedene Substrings (Pattern) aus einem String extrahieren

    Hallo Leute,

    ich habe eine Access-Datenbank (Enterprise Architect *.eap-file), wo ich allerdings nur SQL-Statements absetzen kann. Ich kann keine Funktionen oder Ähnliches erstellen, wenn, dann geht alles nur im temporären Bereich.

    Mein Problem:

    In dieser Datenbank sind Datensätze vorhanden, bei denen in einem Feld ein String eingespeichert ist. Dieser String kann keine bis mehrere Substrings nach dem Pattern (Regex) "*\{*\}*" enthalten.
    Beispiel:
    DatensatzNr - Text
    Datensatz 1 - "Das ist ein Text in dem kommt eine Instanz vor {134E4EA1-CC55-41a6-B4CF-A62E04676F84}."
    Datensatz 2 - "Das ist ein Datensatztext in dem kommen zwei solche {922C7A52-13DD-4351-9DE7-C39B0F58F247} nummern vor {7FAB040D-1108-4df4-80B6-8373443FFC68}."

    Den ersten Eintrag bekomme ich mit InStr und Mid auch ganz einfach aus dem Feld heraus, aber beim nächsten wird's dann schwierig.

    Mein Endergebnis sollte so etwa aussehen:
    Row 1 = Datensatz1 {134E4EA1-CC55-41a6-B4CF-A62E04676F84}
    Row 2 = Datensatz2 {922C7A52-13DD-4351-9DE7-C39B0F58F247}
    Row 3 = Datensatz3 {7FAB040D-1108-4df4-80B6-8373443FFC68}

    Habt Ihr eine Idee, wie ich das anstellen könnte? Gibt's irgendwas in Access-SQL, was man dafür verwenden könnte.

    Danke!

    Gruß Jonathan

  • #2
    Da SQL kein Split kennt, müsstest du in einer while-Schleife etwas ähnliches implementieren:
    http://sqltutorials.blogspot.de/2007...ion-split.html

    Dann hast du zumindest alle Vorkommen. Aber mehrere Vorkommen aus einer Zeile in einzelne Zeilen zu bekommen ist dann noch einmal etwas, das nicht vorgesehen ist.

    Comment


    • #3
      Hallo,

      wenn das eher eine einmalige Sache ist, so kannst du ein kleines Client-Programm erstellen - z.B. mit C# - und dort mittels Regex die Operationen durchführen und die Daten wieder zurückschreiben.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Hallo,

        Originally posted by CLL View Post
        Da SQL kein Split kennt, müsstest du in einer while-Schleife etwas ähnliches implementieren:
        http://sqltutorials.blogspot.de/2007...ion-split.html

        Dann hast du zumindest alle Vorkommen. Aber mehrere Vorkommen aus einer Zeile in einzelne Zeilen zu bekommen ist dann noch einmal etwas, das nicht vorgesehen ist.
        Das hatte ich auch schon getestet, die Datenbank-Engine hinter Enterprise Architect erlaubt leider keinen anderen SQL-Befehl als SELECT an erster Stelle So kann ich auch temporär keine Routinen schreiben.

        Originally posted by gfoidl View Post
        wenn das eher eine einmalige Sache ist, so kannst du ein kleines Client-Programm erstellen - z.B. mit C# - und dort mittels Regex die Operationen durchführen und die Daten wieder zurückschreiben.
        Das wird wohl meine Alternative sein. Ich schaue mir gerade die AddIn-Dokumentation für Enterprise Architect an und werde das dann in einer benutzerdefinierten Suche mittels "AddIn-Suche" erledigen.

        Danke für Eure Hilfe!

        Gruß Jonathan

        Comment

        Working...
        X