Gibt es ne Möglich keit einen String bis zu einem spezielen Zeichen zu verkürzen?
zB.
@ScriptDir & "\XXX\XXX\XXX\XXX"
[/autoit]
ich möchte den string aber verkürzen auf:
@ScriptDir & "\XXX\XXX\XXX"
[/autoit]Gibt es ne Möglich keit einen String bis zu einem spezielen Zeichen zu verkürzen?
zB.
@ScriptDir & "\XXX\XXX\XXX\XXX"
[/autoit]
ich möchte den string aber verkürzen auf:
@ScriptDir & "\XXX\XXX\XXX"
[/autoit]Schau dir mal die String beispiele in der Hilfe an....
Ich hatte da auch rumgebastelt.
Vieleicht hilft Dir das ja auf die Sprünge.
$test=_MSI_installer("Text\test.exe")
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"",$test)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _MSI_installer($msi_input)
[/autoit] [autoit][/autoit] [autoit]$StrLen = StringLen($msi_input)
$StrInStr = StringInStr($msi_input, "\")
$Teilung_Str = $StrLen - $StrInStr + 1
$Rechts_Abschneiden = StringTrimRight($msi_input, $Teilung_Str)
$Rechts_Abschneiden_K_Leerz = StringStripWS($Rechts_Abschneiden,
$Links_Abschneiden = StringTrimLeft($msi_input, $StrInStr - 1)
Return $Links_Abschneiden
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit]Gruß Jan
Ich weiß nicht was du willst:D
Wenn du den Dateinamen haben willst dann
Global $test = _MSI_installer("Text\test.exe")
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"",$test)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _MSI_installer($msi_input)
$string = StringSplit($msi_input, "\")
Return $string[UBound($string) - 1]
EndFunc
Padmak
Hallo,
wenn es um Path angaben und Dateinamen geht kannst du auch _PathSplit verwenden schau dir die Hilfe an.
Ich denke er will den ORdnernamen.
C:\Test\Benne\AutoIt\Test.txt
Er will
C:\Test\Benne\AutoIt
Das wäre für Ordnerpfad.
[autoit]$str = "C:\Test\Benne\AutoIt\Test.txt"
MsgBox(0, "", $str)
$newstr = StringTrimRight($str, StringLen($str) - StringInStr($str, "\", 0, -1) + 1)
MsgBox(0, "", $newstr)
Mein Favorit für die Ermittlung des Pfades ist immer noch:
[autoit]
$str = "C:\Test\Benne\AutoIt\Test.txt"
MsgBox(0, '', StringRegExpReplace($str, '(.*\\).*', '$1'))
Meiner irgendwie auch. Bitte um Erläuterung der Parameter "pattern" und "replace"
Das Pattern:
.* = beliebiges Zeichen, beliebig oft
\\ = Backslash wird gefunden
die Klammern um diese beiden ist wichtig für die Back-Referenz beim Replace
das Gute an dem Pattern ist, dass StringReg so "gefrässig" ist und sich mit .* alles schnappt, bis zum letzten Backslash (ist hier so gewollt).
dem .* außerhalb der Klammern bleibt dann nur noch der Dateiname inkl. Endung
Das "$1" im Replace ist ein "Platzhalter" für den ersten Klammerausdruck im Pattern.
Der komplette String wird also durch den Ausdruck in den Klammern ersetzt.
Danke.