LotusScript: Substring ersetzen?

  • Hi,


    ich erklär mein Problem am besten mit einem Beispiel:


    Ich habe den String "Version_1.2.3_BliBlaBlupp". Leider ändert sich soll sich jetzt die Version dieses Strings ändern. Solange die neue Version gleichviele Stellen hat (also z.B. 3.2.1) ist das mit der Mid$-Funktion gar kein Problem.
    Allerdings kann es ja jetzt auch vorkommen, das 1.2.3 z.B. durch 2.0 oder durch 1.2.3.4 ersetzt werden soll und nun komm ich etwas in Predullie, da im ersten Fall zwei Stellen übrig bleiben und im zweiten Fall zwei fehlen.


    Ich hoffe ihr versteht was ich meine, ich suche also ne Möglichkeit einen Substring durch einen anderen zu ersetzen, der aber evtl. kürzer oder länger ist...


    Hat da jemand von euch schon Erfahrung damit?


    Grüsse

  • Hilft sowas???

    Code
    Textstring = "Version_1.2.3_BliBlaBlupp"
    Teil1 = Strleft(Textstring,"_")
    Teil2 = "2.4.5.1"
    Teil3 = Strrightback(Textstring,"_")
    Textstring = Teil1 + "_" + Teil2 + "_" + Teil3
  • Hi,


    wenn du immer diese Unterstriche hast, dann kannst du die als Anhaltspunkte nehmen.


    Du willst also aus: Version_1.2.3_BliBlaBlupp
    z.B. das machen Version_2.1_BliBlaBlupp


    Mein Gedanke:


    Teil vor dem ersten Unterstrich in eine Var1
    Teil des zweiten Unterstrichs in eine var2
    und dann var1 + versionsnr + var2


    Suchst du sowas?


    edit: wieder zu langsam

  • Ja, mich! :strike:


    codec: Funktioniert replace nicht nur im zusammenhang mit listen? dann muss er aus seinem String erst ne Liste machen, replacen und wieder zurück zum String. Da guck ich nochmal ;)

  • ... ich bin mir zwar nicht ganz sicher, ob die UnderScores überhaupt so ein fester Anhaltspunkt sind, aber dass muß ich halt abklären. So oder so wird es, wahrsch. keine andere Lösung geben...


    Grüsse



    @Norbert:
    ... ich hab mir die Replace-Funktion mal angesehen, aber wenn ich das in der Help recht verstanden hab werden hier nicht SubStrings innerhalb eines Strings, sondern ganze Strings innerhalb eines Arrays ersetz, was ja nicht passen würde für mich. Ich wär aber auch glücklich, wenn du jetzt sagen würdes ich hätte es falsch verstanden ;)


    Grüsse

  • anstatt replace koennte man auch replacesubstring verwenden:

    Code
    Textstring = "Version_1.2.3_BliBlaBlupp"
    was = Evaluate({@replacesubstring("} + Textstring + {";"_1.2.3_";"_2.3.4.5_")})
  • Zitat


    @Norbert:
    ... ich hab mir die Replace-Funktion mal angesehen, aber wenn ich das in der Help recht verstanden hab werden hier nicht SubStrings innerhalb eines Strings, sondern ganze Strings innerhalb eines Arrays ersetz, was ja nicht passen würde für mich. Ich wär aber auch glücklich, wenn du jetzt sagen würdes ich hätte es falsch verstanden ;)


    Ich sag mal falsch verstanden, Du kannst ja auch eine Array mit nur einem Element übergeben...


    Lies Dir mal das wirklich nicht gut geschriebene Help Dokument dazu genau durch...


    Gruß


    Norbert

  • :-o


    Hi dnotes,


    zugegeben die Idee mit dem Evaluate ist sicherlich nicht elegant, aber genial - wußte bisher gar nicht das so was geht. Leider kann ich das heut nicht mehr ausprobieren, morgen wieder, aber wenn das hinkommt... das wär genau das was ich suche!


    Oder hat da jemand Bedenken?


    Grüsse

  • Zitat


    taurec wrote:
    Also wenn es schon eine passende Scriupt Funktion gibt, wie hier, dann würde ich auch die verwenden, weil es dann performanter sein sollte


    Also Taurec Deine Kommentare passen immer zu dem gütigen Blick Deines Avatar....


    :lol:


    Norbert