Aus 1 String = In 2 Strings aufteilen?

  • VB.NET

Es gibt 59 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Aus 1 String = In 2 Strings aufteilen?

    Ich versuche folgenden String in 2 Teilen zu teilen so dass ich dann 2 Strings habe:
    "HALLOvbparadiseDASistMEINstring...............................WERkannMIRhelfen"

    Es soll die scheise nun so formatieren dass String1 so lange geht bis 6 PUNKTE erreicht sind.
    Also Dim String1 as string = ""HALLOvbparadiseDASistMEINstring"

    Und String2 soll "WERkannMIRhelfen" sein.

    Es sind IMMER mindestens 6 Punkte nach STRING1 und dazwischen können zusätzlich weitere sein oder auch nicht dann nochmal 6 Punkte vor String2.


    Kann mir pls jemand helfen das zu coden?
    Also nochmal kurz zusammengefasst:
    -String1 = Solange lesen bis mindestens 6 Punkte ("......") erreicht sind
    -String2 = Erst dann wieder lesen wenn nach 6 Punkten irgendwas kommt zb: Zahlen/Buchstaben/Zeichen/etc.

    Hoffe dieses Rätsel ist lösbar, thx ;(

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

    SEX schrieb:

    dass String1 so lange geht bis ein PUNKT erreicht ist.

    SEX schrieb:

    -String1 = Solange lesen bis mindestens 6 Punkte ("......") erreicht sind

    Ja, was denn nun?

    Ansonsten, schaue dir die Funktionen IndexOf() und LastIndexOf(), sie machen genau das, was du willst (sollten 6 keine Rolle spielen), danach Substring(), wo du den Index jeweils übergibst.

    SEX schrieb:

    Es sind IMMER mindestens 6 Punkte vor String2.

    SEX schrieb:

    aufjedenfall immer mindestens 12 Punkte nachdem string1 zuende ist.

    Was jetzt?!
    Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.


    Ich konnte dir helfen?
    - Das ist schön :) Ich würde mich über ein "Hilfreich" freuen ^^
    Dann such den ersten Punkt mit IndexOf, gehe ab da den String 6 Positionen durch und schau, ob es Punkte sind, dann schneide den ersten String mit Substring raus. Dann wieder LastIndexOf ab da vom Punkt, wenn Punkt überhaupt kommt, ansonsten gleich String wegschneiden.
    Warum nicht mit der .Split Funktion. Das sollte doch gehen oder?

    VB.NET-Quellcode

    1. Dim Input = Replace("HALLOvbparadiseDASistMEINstring...............................WERkannMIRhelfen","......",";")
    2. Dim DataSplit = Input.Split(";")
    3. For i as Integer = 0 to DataSplit.Count()
    4. Debug.Print DataSplit(i)
    5. next i


    Mein Code ist zwar nicht ausgegoren aber zumindest eine Möglichkeit.
    Ich vermute einmal, dass die 6 Punkte nachträglich ja wieder drangehängt werden können, wenn diese essentiell sind
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    @SEX:: So was:

    VB.NET-Quellcode

    1. Dim txt = "HALLOvbparadiseDASistMEINstring...............................WERkannMIRhelfen"
    2. Dim parts() = txt.Split({"."c}, StringSplitOptions.RemoveEmptyEntries)
    vb-paradise.de/index.php/Attac…f24d69e6e3d4fab0ec4c5e4bf
    Bilder
    • Split.png

      28,29 kB, 683×260, 144 mal angesehen
    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!
    @RodFromGermany
    Wieso die {}?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Damit hats nix zutun.
    Er splitet normal bei "." und gibt nur mit, dass er alle leeren Ergebnisse direkt löschen soll.
    StringSplitOptions.RemoveEmptyEntries

    EDIT:
    Habe mich geirrt.
    Er nimmt nur StringSplitOptions.RemoveEmptyEntries an, wenn das Char in {} steht. Ich verstehe aber nicht wieso.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ich habs hingekriegt das erste string aufzuteilen dank eurer hilfe..
    Aber den letzten string schaff ich nicht :(

    Es sind genau 6 Punkte bevor String2 startet.
    Aber es muss nicht immer 6 Punkte zwischen String1 und 2 sein. Kann sogar 20 punkte sein ihr müsst nur auf die letzten 6 Punkte fokusieren...
    Hoffe ist jetzt klarer geworden.

    Könnt ihr mir beim letzten weiterhelfen, pls...?

    Thx
    Was mich daran irritiert ist, das Split IMMER ein Array erwartet. Castet der Compiler hier sonst automatisch?!

    "Es sind genau 6 Punkte bevor String2 startet.
    Aber es muss nicht immer 6 Punkte zwischen String1 und 2 sein"
    verstehe ich nicht.
    Beispiele bitte.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Wenn aber im "gewollten" Text ein oder mehrere Punkte enthalten sind die zum Teilstring dazugehören sollen, dann ist Eure Lösung nicht so optimal.

    @SEX
    Vielleicht kannst Du uns den Hintergrund anhand eines konkreten Beispieles erklären. Vielleicht gibt es da einen ganz anderen Lösungsansatz.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    sonne75 schrieb:

    Und wenn du nicht prüfen musst, ob mind. 6 Punkte dazwischen liegen, dann nimm doch das von Rod.

    Es sind immer mind. 6 vor und hinter

    "Es sind genau 6 Punkte bevor String2 startet.
    Aber es muss nicht immer 6 Punkte zwischen String1 und 2 sein"
    verstehe ich nicht.
    Beispiele bitte.


    Beispiele:
    "STRING1GEHBISHIERHIN...............................................STRING2GEHTBISHIERHIN"
    oder auch so
    "STRING1GEHBISHIERHIN............STRING2GEHTBISHIERHIN" <-- Ohne das zusätzliche Punkte mit dabei sind.
    Fett markeirte Punkte nur beachten, immer 6 vor und hinter, Die länge der Strings kann unterschiedlich sein.
    Kann auch vorkommen, dass im String 1 oder String 2 ein Punkt drin ist?
    Wenn nein, dann ist die Lösung von ROD doch die einzig richtige.
    Schlussendlich erhältst Du ein Array mit 2 Werten, wo Du beim ersten einfach 6 Punkte dranhängst und beim zweiten 6 Punkte davorstellst.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    Kann auch vorkommen, dass im String 1 oder String 2 ein Punkt drin ist?

    Nein:

    -Kein Punkt taucht in String1 oder 2 auf
    -String1 endet mit 6 Punkten
    -String2 fängt nach 6 punkten an
    -Zwischen String1 und 2 können (Müssen aber nicht) mehrere Punkte sein
    -String1 und 2 können unterschiedlich lang sein

    Also Punkte sind nur zwischen den Strings da aber kommen auf gar keinen Fall im String nochmal vor.