Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Tomtom1 am November 10, 2012, 14:48:52

Titel: Einlesen bis zu unterschiedlicher Position
Beitrag von: Tomtom1 am November 10, 2012, 14:48:52
Hallo an alle.

Habe ein Problem: Ich habe folgende Zeile im Quelltext gegeben:

TEST TEST - Hund Katze Maus Hahn. 3

Ich möchte jetzt "Hund Katze Maus Hahn." einlesen den Rest aber nicht.
Hab es so versucht: Trim(Mid(arrZeilen(_), 12, ___)
Durch die "12" beginnt es vor "Hund" einzulesen. Ich müsste das jetzt aber auch nach hinten begrenzen. Würde die Anzahl der Wörter oder der Punkt immer gleich sein wäre es kein Problem. Es kann aber z.B. auch sein, dass ich folgendes als Grundlage habe:
TEST TEST - Hund Maus Fisch 3
Hier möchte ich "Hund Maus Fisch" einlesen.
Somit kann ich nicht sagen, dass der Text den ich einlesen möchte immer die gleiche Länge hat.

Habe auch versucht "rtim" zu verwenden und damit die Zahl die am Ende steht und die ich weghaben möchte zu entfernen, hat aber leider auch nicht funktioniert.

Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und jemand kann mir weiterhelfen. Vielen Dank jedenfalls im Voraus.

Grüße,
Tom
Titel: Re: Einlesen bis zu unterschiedlicher Position
Beitrag von: daolix am November 10, 2012, 15:34:05
solange nach hinten kein(e) eindeutige(n) Zeichen vorkomm(t/en) dürfte es schwierig werden, der Punkt wäre eine Möglichkeit, aber wenn er nicht immer vorkommt müsste man evtl solange den String durchlaufen bis Zeichen auflaufen die Nicht Buchstaben oder leerzeichen sind.
Titel: Re: Einlesen bis zu unterschiedlicher Position
Beitrag von: Tomtom1 am November 10, 2012, 15:49:22
Im Prinzip ist es immer so aufgebaut:

Mannschaftsname/Sponsorname und dann folgen die Tore der jeweilige Mannschaft (also eine Zahl).
Wenn man also sagen könnte "auslesen bis zur ersten Zahl" sollte das gut gehen. Einzige Problemstelle wäre dann, wenn im Mannschaftsname/Sponsorname auch Zahlen vorkommen (ist aber selten bis nie der Fall).

Ein anderer Ansatz wäre, dass man das Ganze von hinten rechnet.
Da die Anzahl der Tore in der Regel einstellig ist und immer am Ende der Zeile vorkommt  könnte man sagen: "einfach die letzten zwei Zeichen (Leerzeichen + Zahl) vom String immer weglassen". Hier ist dann das Problem, bei zweistelligen Ergebnissen.

Leider weiß ich nicht mit welchen Funktionen ich dies anwenden kann...
Titel: Re: Einlesen bis zu unterschiedlicher Position
Beitrag von: database am November 10, 2012, 16:02:20
Hallo,

versuch mal ...


Sub testen()

    Dim strTest As String
    Dim strErg As String
    strTest = "TEST TEST - Hund Katze Maus Hahn 4"
    strErg = Replace(Replace(Replace(strTest, "TEST TEST - ", ""), Right(strTest, 2), ""), ". ", "")
    Debug.Print strErg

End Sub

Titel: Re: Einlesen bis zu unterschiedlicher Position
Beitrag von: Tomtom1 am November 10, 2012, 19:36:02
Vielen Dank für die schnelle Hilfe!!!
Funktioniert jetzt.

Danke nochmals,
Tom
Titel: Re: Einlesen bis zu unterschiedlicher Position
Beitrag von: database am November 11, 2012, 10:55:34
Wobei mich noch interessieren würde, woher denn die Werte stammen.

ZitatMannschaftsname/Sponsorname und dann folgen die Tore der jeweilige Mannschaft
diese Daten hast du hoffentlich NICHT in ein und der selben Spalte einer Tabelle stehen.
In dem Fall wäre ich schwerst geneigt dich darauf hinzuweisen den Tabellenaufbau von Grund auf zu erneuern und den Normalisierungsregeln anzupassen.