Einzelnes Zeichen nur 1x entfernen

  • Abend,

    weiß vielleicht jemand, wie ich ein einzelnes Zeichen entfernen kann?

    Wenn ich StringReplace benutze und dann z.B. das 8 te Zeichen eines Satzes entfernen möchte und dies ein F ist und es aber mehrere F´s gibt und er diese aber nicht mitentfernen soll.

    z.B. habe ich diesen String : "amhmmfaff" und möchte nur das rot markierte entfernen : "amhmmfaff"

    MfG, Julien

  • StringReplacE:

    searchstring/start
    The substring to search for or the character position to start the
    replacement.

    replacestring
    The replacement string.

    occurrence
    [optional] The number of times to replace the searchstring. Use a
    negative occurrence to replace from the right side.
    0 = all searchstrings
    will be replaced (default)

    casesense
    [optional] Flag to indicate if the operations should be case
    sensitive.
    0 = not case sensitive, using the user's locale (default)
    1 =
    case sensitive
    2 = not case sensitive, using a basic/faster comparison

    [autoit]

    $string = "amhmmfaff"

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,0, StringReplace($string,"f","",1))

    [/autoit]
  • Also ich hab mir grad das hier zusammengecodet:

    Beispiel
    [autoit]


    $STRING = InputBox("","String:")
    $ToRemove = InputBox("","Zu entfernende Zeichenkette:")
    $aArray = StringSplit($STRING,$ToRemove)
    $counter=1
    $Ergebnis=$aArray[$counter]
    Do
    $counter+=1
    $Ergebnis&=$aArray[$counter] & $ToRemove
    Until $counter = $aArray[0]
    $Ergebnis=StringTrimRight($Ergebnis,1)
    MsgBox(0,"",$Ergebnis)

    [/autoit]

    lg chess

    edit:
    Zu spät & das wusste ich nicht, aber warum einfach, wenns auch umständlich geht? ;)

  • Meine Version:

    Spoiler anzeigen
    [autoit]


    MsgBox(0, "Resultat", _DeleteCharByNumber("amhmmfaff", 6))

    [/autoit] [autoit][/autoit] [autoit]

    Func _DeleteCharByNumber($sStringArg, $iNumberArg)
    Local $sSplit = StringSplit($sStringArg, "")
    $sStringArg = ""
    For $i = 1 To UBound($sSplit) - 1
    If $i <> $iNumberArg Then $sStringArg &= $sSplit[$i]
    Next
    Return $sStringArg
    EndFunc ;==>_DeleteCharByNumber

    [/autoit]