Hallo,
wie muss ich die Position angeben die in einem String geändert werden soll?
StringReplace ( "string", Position" "replacestring")
Die Position wäre z.b. 64-67
Hallo,
wie muss ich die Position angeben die in einem String geändert werden soll?
StringReplace ( "string", Position" "replacestring")
Die Position wäre z.b. 64-67
StringReplace macht das:
$string = "AffeBananeGiraffe"
$string = StringReplace($string, "Affe", "Hund")
dann ist String jetzt HundBananeGiraffe.
wenn du jetzt ganze zeilen ersetzen willst, musst du mit arrays arbeiten.
oder war genau meinst du denn?
laut Hilfe sollte es aber auch "von-bis" ersetzen können, allerdings fehlt dann der Searchstring ...
Hallo!
das mit den festen Positionen gibt nur einen Sinn, wenn Du z.B. eine Steuerdatei mit festen Positionen hast
Bei Deinem Beispiel 64-67 (=4 Zeichen) muß der Replacestring dann 4 Zeichen lang sein, damit erfüllst Du ja genau Deine Vorgabe. (es gibt keine "Endevorgabe", die mußt Du durch die Satzlänge definieren - du kannst nur mit der Stratposition arbeiten).
Sag mal genau, was Du mit dem Programm machen möchtest, man kann den String auch "auseinandernehmen" oder mit RegExp arbeiten.
Gruss
schau mal das an:
$old="Autoit ist ein supergoiles Teil"
$newstring="blubbergeiles"
$Pos_start=8
$Pos_ende=10
_stringreppos($old,$Pos_start,$Pos_ende,$newstring)
[/autoit] [autoit][/autoit] [autoit]Func _stringreppos($String,$Pos_start,$Pos_ende,$newstring)
$leng_replacestring=($pos_ende-$pos_start+1) ; länge des neuen Strings
msgbox(0,"der Ersatzungsstring ist", $leng_replacestring & " lang")
select
case Stringlen($newstring)=($pos_ende-$Pos_start) ; Länge passt
; einfach weitermachen
case Stringlen($newstring) < $leng_replacestring ; Länge des Replacestrings zu kurz
while StringLen($newstring) < $leng_replacestring
$newstring=$newstring & " "
Wend
case StringLen($newstring) > $leng_replacestring
$newstring=StringLeft($newstring,$leng_replacestring)
EndSelect
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$neu=StringReplace($old,$pos_start,$newstring)
msgbox(0,"jetzt hab ich", $neu)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]German
Alles anzeigenStringReplace macht das:
$string = "AffeBananeGiraffe"
$string = StringReplace($string, "Affe", "Hund")
dann ist String jetzt HundBananeGiraffe.
wenn du jetzt ganze zeilen ersetzen willst, musst du mit arrays arbeiten.
oder war genau meinst du denn?
Bei mir kommt als String dann HundBananeGirHund heraus!
Anderfalls müsste man
$string = StringReplace($string, "Affe", "Hund", 1)
eingeben
lone_wolf
Am einfachsten sollte es so sein:
[autoit]
$sString = "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
$sReplace = "abcd"
$iStart = 64
$iEnde = 67
$sErgebnis = StringLeft($sString, $iStart - 1) & $sReplace & StringRight($sString, StringLen($sString) - $iEnde)
MsgBox(0, "Ersetzter String", $sErgebnis)
[/autoit]Grüße,
Buffo