 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Mi Okt 18, 2006 9:07 pm Titel: sonderzeichen die zweite |
|
|
hallo ihrs, wie bau ich den code so um, das nur zahlen, ein leerzeichen UND buchstaben in %tmpstring% enthalten sind. | Code: | aus
"12-/#+*34ab c deF"
soll dann
"1234ab c deF"
werden |
| Code: |
Send ^c
string = %clipboard%
MyString:=LeaveOnlyNumbers(String)
tmpstring=%MyString%
TrayTip,,%tmpstring%
LeaveOnlyNumbers(String)
{
stringlen, Laenge, String
stringsplit, Stringarray, string
Loop, %Laenge%
{
if stringarray%A_Index% is not integer
{
Stringarray%A_Index%=
}
x:= stringarray%A_Index%
NewString=%NewString%%x%
}
String=%NewString%
Return %String%
}
Return
|
|
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1240 Wohnort: Berlin
|
Verfasst am: Do Okt 19, 2006 5:54 am Titel: |
|
|
| Code: | sIN := "12-/#+*34ab c deF"
MsgBox, % ClearString(sIn)
Exit
ClearString(String)
{
Autotrim, Off ; muss vielleicht nicht sein
; überflüsige Leerzeichen entfernen
Loop,
{
StringReplace, String, String, %A_Space%%A_Space%, %A_Space%, UseErrorLevel
If (ErrorLevel = 0)
{
Break
}
}
; und los geht'S
Stringlen, Laenge, String
Stringsplit, Stringarray, String
Loop, %Laenge%
{
x := ""
If Stringarray%A_Index% is Digit ; Ziffern
{
x := Stringarray%A_Index%
}
Else If Stringarray%A_Index% is Upper ; Großbuchstaben
{
x := Stringarray%A_Index%
}
Else If Stringarray%A_Index% is Lower ; kleinbuchstaben
{
x := Stringarray%A_Index%
}
Else If (Stringarray%A_Index% = " ") ; Leerzeichen
{
x := Stringarray%A_Index%
}
NewString=%NewString%%x%
}
Return %NewString%
} |
Das ist simples AHK, geht vielleicht noch viel schöner!  _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Do Okt 19, 2006 7:55 am Titel: |
|
|
Evtl. würde noch der Abgleich über den ASCIIWert gehen
| Zitat: | MyASCII := Asc(A_LoopField) ; braucht natürlich ein Loop, Parse dazu
If MyASCII between 128 and 255 ; fortlaufende Anzahl an Characteren
Break |
| Zitat: | MyASCII := Asc(A_LoopField)
If MyASCII in 128,210,211,254,255 ; spezifische Charactere
Break | Ungetesteter Gedankenrülpser.  |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1240 Wohnort: Berlin
|
Verfasst am: Do Okt 19, 2006 8:52 am Titel: |
|
|
Der erste Versuch war weder schön noch korrekt. Die Leerzeichenersetzung muss natürlich nachträglich gemacht werden. Deshalb hier der zweite, noch etwas geschönte Versuch:
| Code: | sIN := "12-/#+*34ab $ % äöü ß Ä c deF"
MsgBox, % ClearString(sIn)
Exit
; ------------------------------------------------------------------------------
; Zeichenfolge bereinigen
; ------------------------------------------------------------------------------
ClearString(String)
{
Local NewString, Stringarray
NewString := ""
Autotrim, Off ; muss vielleicht nicht sein
; Zeichen prüfen
Stringlen, Laenge, String
Stringsplit, Stringarray, String
Loop, %Laenge%
{
If Char_OK(Stringarray%A_Index%)
{
NewString := NewString . Stringarray%A_Index%
}
}
; überflüssige Leerzeichen entfernen
Loop,
{
StringReplace, NewString, NewString, %A_Space%%A_Space%, %A_Space%, UseErrorLevel
If (ErrorLevel = 0)
{
Break
}
}
Return %NewString%
}
; ------------------------------------------------------------------------------
; Zulässige Zeichen prüfen
; ------------------------------------------------------------------------------
Char_OK(_Char)
{
If _Char Is Digit
{
Return True
}
If _Char Is Upper
{
Return True
}
If _Char Is Lower
{
Return True
}
If (_Char = " ")
{
Return True
}
Return False
} |
_________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Do Okt 19, 2006 11:41 am Titel: wow |
|
|
vielen dank denick und BoBo, das würde ich nicht mal schaffen wenn als belohnung ein benz vor der türe steht und bei euch hört sich das so leicht an  |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1240 Wohnort: Berlin
|
Verfasst am: Do Okt 19, 2006 3:53 pm Titel: Re: wow |
|
|
| lamer hat Folgendes geschrieben: | vielen dank denick und BoBo, das würde ich nicht mal schaffen wenn als belohnung ein benz vor der türe steht und bei euch hört sich das so leicht an  |
Keine Ursache!
Aber leicht ist es erst, wenn man's kann, und bis dahin kann es bei der doch recht spröden AHK-Syntax ein mühseliger Weg sein. _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|