| |
|
|
| dans einem Multiedit voudrais je volontiers alle Sonderzeichen ausklammern. je hab mir une Procedur geschrieben, quelle cela aussi prima erledigt. mon Frage à qui Experten: peux on cela aussi kürzer écrivons. Bestimt gibt es une Boucle pour, mais mon alter tête...
PROC SONDERZEICHEN
titel$=TRANSLATE$(titel$, ,-) cela soll so son. Leerzeichen avec Bindestrich ersetzen
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
|
|
|
| |
|
|
|
| |
|
| |
|
|
|
| malheureusement klappt cela pas. - si qui ANSI-marque pas so wild durcheinander ständen, pourrait on cela simple avec einer Boucle faire. mais là qui Sonderzeichen dans Blöcken entre den Buchstaben et payons sommes, müssten cela plusieurs Schleifen son et ensuite ist qui Code aussi pas kleiner comment dans meiner Procedur |
|
|
| |
|
|
|
RGH | iF
cela funktioniert définitif pas comment gewünscht (wohl posté, sans auparavant trop testen? ;) ), mais so ca va:
PROC SONDERZEICHEN
parameters titel$
titel$=TRANSLATE$(titel$, ,-) cela soll so son. Leerzeichen avec Bindestrich ersetzen
alle verbotenen marque entfernen
whileloop 1, len(titel$)
cas instr(substr$(titel$, &loop), q§$%&/()=?`!°²³{[]}*+#+|µ) > 0 : titel$ = del$(titel$,&loop,1)
endwhile
return titel$
ENDPROC
Var Test$ = Hühnerhof, Rindviefarm, 23%, $34.a[oho], 56µ 123² * 456³ / 45% A&O
Imprimer Sonderzeichen(test$)
waitinput
end
BTW: avant XProfan 11 doit on cela substr$(titel$, &loop) par mid$(titel$,&loop,1) ersetzen.
Salut 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 tu es qui Grösste merci |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Nico Madysa | Funktioniert es aussi so?
|
|
|
| |
|
|
|
Thomas Freier | ???
dans einem Multiedit voudrais je volontiers alle Sonderzeichen ausklammern.
Ersetzen ou bien ausklammern sur Rolfs Art:
Éditer: marque dans einem Modifier le champ de pas zulassen
$I PROFALT.INC Include-Dossier pour Quellcodes früher Profan-Versionen (avant XProfan 11.0), qui encore aucun Operatoren nutzen.
chez Verwendung de XProfan < 11.0 peux qui obige Include-la ligne $I PROFALT.INC bedenkenlos gelöscht volonté.
Lauffähig ab Profan-Version 6.6
qui Procédure CHECK_INPUT VERBIETET EINE REIHE
übergebener marque dans einem Modifier le champ de.
(c) by Rolf Koch - Rokosoft 2005
$P+
SetErrorLevel 0
DIESE PROC WERTET AUS ************************************************************
PROC CHECK_INPUT
Déclarer 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 à den Schluss mettons
RET$=blen$
ENDIF
INC BLAENGE%
WEND
RETOUR RET$
ENDPROC
***************************************************************************************
Windowtitle interdite marque
Cls
Déclarer Dlg&
Déclarer bouton%
Déclarer Dlg_Ende%
Déclarer Eingabe&
Dlg& = Créer(Dialog,%Hwnd,s'il te plaît quelque chose eingeben,350,50,180,70)
Eingabe& = Créer(Éditer,Dlg&,,10,10,150,20)
SetFocus(Eingabe&)
Dlg_Ende% = 0
Imprimer dans diesem Beispiel interdit:
Imprimer/*-_>< (siehe CHECK_INPUT ...)
Imprimer ---------------------------------
Whilenot 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
Si Equ(bouton%,2)
Dlg_Ende% = 1
DestroyWindow(Dlg&)
Endif
Wend
Fin
|
|
|
| |
|
|
|
| je brauchte es plan selber et dabei c'est moi dans Rolands Code aufgefallen cela il marque überspringt.
c'est pourquoi habe je une imho à peine (vlt. sur regexp) schleunigbare Routine erstellt:
{$cleq}
stringToAllowedChars(string s,alwdChrs){
long c=len(s),i
caseNot c : return
do {
i+
ifNot inStr(subStr$(s,i),alwdChrs) {
s=del$(s,i,1)
i-
c-
}
cas i==c : pause
}
return s
}
Var Test$ = Hühnerhof, Rindviefarm, 23%, $34.a[oho], 56µ 123² * 456³ / 45% A&O
Imprimer stringToAllowedChars(test$,45)
waitinput
end
ici aussi pour XProfan sans xpse:
proc STRINGTOALLOWEDCHARS
PARAMETERS S$,ALWDCHRS$
var C&=LEN(S$)
var I&=0
IFNOT C&
RETOUR
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
RETOUR S$
endproc
VAR TEST$=Hühnerhof, Rindviefarm, 23%, $34.a[oho], 56µ 123² * 456³ / 45% A&O
PRINT STRINGTOALLOWEDCHARS(TEST$,45)
WAITINPUT
end
Hab je vlt. aussi quelque chose im Code übersehen? dans meinen wenigen Tests ergaben sich aucun faute. |
|
|
| |
|
|