Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist

05 Jan 2019, 15:57

Hi,
wie kann ich überprüfen, ob das letzte Zeichen einer Zeichenkette ein Komma oder eine Leerzeichen ist,
Beispiel:

Code: Select all

Zeichenkette := "The Quick Brown Fox Jumps Over the Lazy Dog"
neuzk := SubStr(Zeichenkette, 1, 18) 
MsgBox % neuzk
Hier wird "The Quick Brown Fo" ausgegeben, Das letzte Zeichen hier ist ein "o", jetzt soll so lange gekürzt werden, bis das letzte Zeichen ein Leerzeichen ist. Also hier 16.
LG
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist  Topic is solved

05 Jan 2019, 16:01

InStr mit SubStr ist dein Freund. Wenn du es kannst und faul bist eventuell auch RegExMatch - aber InStr und StrSplit reichen hier völlig aus.
Recommends AHK Studio
swagfag
Posts: 6222
Joined: 11 Jan 2017, 17:59

Re: Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist

05 Jan 2019, 16:05

Code: Select all

Zeichenkette := "The Quick Brown Fox Jumps Over the Lazy Dog"
if (Zeichenkette ~= "(,| )$")
	MsgBox Komma (,) oder eine Leerzeichen ist
else
	MsgBox not Komma (,) oder eine Leerzeichen ist
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist

05 Jan 2019, 16:46

@nnnik Danke für den Denkanstoß
Habe mir so geholfen,

Code: Select all

Heuhaufen := "The Quick Brown Fox Jumps Over the Lazy Dog"
test := SubStr(Heuhaufen, 1, 18) 
Nadel := " "

fundpos := InStr(test, Nadel, , -1,1)
neuzk := SubStr(Heuhaufen, 1, fundpos) 
msgbox, % neuzk
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist

06 Jan 2019, 02:59

Moin,

Code: Select all

fundpos := InStr(test, Nadel, , 0) ; 4. Funktionsparameter 0 statt -1
Der vierte Parameter von InStr() sollte für AHK 1.1 in diesem Fall 0 sein. Bei -1 wird ein auf der letzten Stelle liegendes Leerzeichen bzw. Komma nicht gefunden.
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist

06 Jan 2019, 09:07

Moin,

Benutze die v1.1.28.02
Bei mir Funktioniert es sowohl mit 0 als auch mit -1.

in Doku steht auch:
Wenn Startposition eine 0 oder negativ ist, erfolgt die Suche in umgekehrter Reihenfolge (von rechts nach links), beginnend beim Offset am Ende.
Oder Verstehe etwas falsch ?
LG
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Überprüfen ob das letzte Zeichen, einer Zeichenkette ein Komma (,) oder eine Leerzeichen ist

06 Jan 2019, 09:31

0 würde von ganz rechts starten. -1 startet 1 Zeichen weiter links und überspringt das Zeichen ganz rechts.
Recommends AHK Studio

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 74 guests