| |
|
|
| In una Multiedit möchte Me gusta todos Sonderzeichen ausklammern. Yo me una Procedur geschrieben, welche el auch prima hecho. Mi Cuestión a el Experten: Kann al auch kürzer escribir. Bestimt hay una Bucle dafür, aber mein alter Kopf...
PROC SONDERZEICHEN
titel$=TRANSLATE$(titel$, ,-) el se así se. Leerzeichen con Bindestrich sustituir
titel$=TRANSLATE$(titel$,CHR$(34),)
titel$=TRANSLATE$(titel$,§,)
titel$=TRANSLATE$(titel$,$,)
titel$=TRANSLATE$(titel$,%,)
titel$=TRANSLATE$(titel$,&,)
titel$=TRANSLATE$(titel$,/,)
titel$=TRANSLATE$(titel$,(,)
titel$=TRANSLATE$(titel$,),)
titel$=TRANSLATE$(titel$,=,)
titel$=TRANSLATE$(titel$,?,)
titel$=TRANSLATE$(titel$,`,)
titel$=TRANSLATE$(titel$,!,)
titel$=TRANSLATE$(titel$,°,)
titel$=TRANSLATE$(titel$,²,)
titel$=TRANSLATE$(titel$,³,)
titel$=TRANSLATE$(titel$,{,)
titel$=TRANSLATE$(titel$,[,)
titel$=TRANSLATE$(titel$,],)
titel$=TRANSLATE$(titel$,},)
titel$=TRANSLATE$(titel$,,)
titel$=TRANSLATE$(titel$,*,)
titel$=TRANSLATE$(titel$,,)
titel$=TRANSLATE$(titel$,~,)
titel$=TRANSLATE$(titel$,#,)
titel$=TRANSLATE$(titel$,+,)
titel$=TRANSLATE$(titel$,|,)
titel$=TRANSLATE$(titel$,µ,)
ENDPROC
|
|
|
| |
|
|
|
| |
|
| |
|
|
|
| Leider klappt el no. - Wenn el ANSI-Signo no así wild durcheinander ständen, podría al simplemente con uno Bucle hacer. Aber como el Sonderzeichen en Blöcken zwischen el Buchstaben y Pagar son, müssten el mehrere Schleifen ser y luego es el Code auch no kleiner como en meiner Procedur |
|
|
| |
|
|
|
RGH | IF
Das funktioniert definitiv no como gewünscht (wohl Nuevo, sin vorher a testen? ;) ), aber así es:
PROC SONDERZEICHEN
parámetros titel$
titel$=TRANSLATE$(titel$, ,-) el se así se. Leerzeichen con Bindestrich sustituir
todos verbotenen Signo entfernen
whileloop 1, len(titel$)
caso instr(substr$(titel$, &bucle), q§$%&/()=?`!°²³{[]}*+#+|µ) > 0 : titel$ = del$(titel$,&bucle,1)
endwhile
volver titel$
ENDPROC
Var Test$ = Hühnerhof, Rindviefarm, 23%, $34.a[oho], 56µ 123² * 456³ / 45% A&O
Imprimir Sonderzeichen(test$)
waitinput
end
BTW: Vor XProfan 11 muß al substr$(titel$, &loop) por mid$(titel$,&loop,1) sustituir.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 09.06.2008 ▲ |
|
|
|
|
| @Roland Usted bist el Grösste Gracias |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Nico Madysa | Funktioniert lo auch así?
|
|
|
| |
|
|
|
Thomas Freier | ???
In una Multiedit möchte Me gusta todos Sonderzeichen ausklammern.
Ersetzen oder ausklammern en Rolfs Art:
Editar: Signo en una Editar campo no zulassen
$I PROFALT.INC Include-Expediente para Quellcodes früher Profano-Versionen (antes XProfan 11.0), el todavía no Operatoren nutzen.
En Verwendung de XProfan < 11.0 kann el obige Incluir-Línea $I PROFALT.INC bedenkenlos gelöscht se.
Lauffähig de Profano-Versión 6.6
El Procedimiento CHECK_INPUT VERBIETET EINE REIHE
übergebener Signo en una Editar campo.
(c) by Rolf Koch - Rokosoft 2005
$P+
SetErrorLevel 0
DIESE PROC WERTET AUS ************************************************************
PROC CHECK_INPUT
Declarar BLEN$,BLAENGE%,RET$
PARAMETERS IN&,BCHST$
BLAENGE%=1
RET$=
WHILENOT len(BCHST$)+1 = BLAENGE%
BLEN$=MID$(BCHST$,BLAENGE%,1)
IF INSTR(BLEN$,gettext$(in&))
Settext in&,del$(gettext$(in&),len(gettext$(in&)),1)
setfocus(in&)
sendmessage(in&,$00B1,len(gettext$(IN&)),len(gettext$(IN&))+1) Cursor a el Schluss conjunto
RET$=blen$
ENDIF
INC BLAENGE%
WEND
RETORNO RET$
ENDPROC
***************************************************************************************
Windowtitle Verbotene Signo
Cls
Declarar Dlg&
Declarar Taste%
Declarar Dlg_Ende%
Declarar Eingabe&
Dlg& = Crear(Diálogo,%Hwnd,Bitte algo eingeben,350,50,180,70)
Eingabe& = Crear(Editar,Dlg&,,10,10,150,20)
SetFocus(Eingabe&)
Dlg_Ende% = 0
Imprimir In diesem Ejemplo verboten:
Imprimir/*-_>< (siehe CHECK_INPUT ...)
Imprimir ---------------------------------
Sinestar encargado Dlg_Ende%
Waitinput
IF GETFOCUS(EINGABE&)
AUFRUF UND AUSWERTUNG ****************************************
CHECK_INPUT Eingabe&,/*-_><
PARAMETER: HANDLE EDITFELD UND LISTE VERBOTENE ZEICHEN
CASE $(0) <> : PRINT VERBOTENES ZEICHEN GEFUNDEN: + $(0)
***************************************************************
ENDIF
If Equ(Taste%,2)
Dlg_Ende% = 1
DestroyWindow(Dlg&)
Endif
Wend
End
|
|
|
| |
|
|
|
| Yo brauchte lo eben selber y esta me está en Rolands Code aufgefallen el él Signo überspringt.
Deshalb Yo una imho kaum (vlt. encima regexp) schleunigbare Rutina erstellt:
{$cleq}
stringToAllowedChars(cadena s,alwdChrs){
long c=len(s),i
caseNot c : volver
do {
i+
ifNot inStr(subStr$(s,i),alwdChrs) {
s=del$(s,i,1)
i-
c-
}
caso i==c : romper
}
volver s
}
Var Test$ = Hühnerhof, Rindviefarm, 23%, $34.a[oho], 56µ 123² * 456³ / 45% A&O
Imprimir stringToAllowedChars(test$,45)
waitinput
end
hier auch para XProfan sin xpse:
proc STRINGTOALLOWEDCHARS
PARAMETERS S$,ALWDCHRS$
var C&=LEN(S$)
var I&=0
IFNOT C&
RETORNO
ENDIF
WHILE 1
INC I&
IFNOT INSTR(SUBSTR$(S$,I&),ALWDCHRS$)
S$=DEL$(S$,I&,1)
DEC I&
DEC C&
ENDIF
IF I&=C&
BREAK
ENDIF
ENDWHILE
RETORNO S$
ENDPROC
VAR TEST$=Hühnerhof, Rindviefarm, 23%, $34.a[oho], 56µ 123² * 456³ / 45% A&O
PRINT STRINGTOALLOWEDCHARS(TEST$,45)
WAITINPUT
end
Hab Yo vlt. auch algo en el Code übersehen? In media wenigen Tests ergaben se no Fehler. |
|
|
| |
|
|