Français
Source/ Codesnippets

Ausklammern Sonderzeichen

 
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

 
09.06.2008  
 



Probiere la fois
titel$=match$([A-Za-z0-9~-],titel$)
 
09.06.2008  
 



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
 
09.06.2008  
 




RGH
iF
Probiere la fois
titel$=match$([A-Za-z0-9~-],titel$)


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
 
09.06.2008  
 



 
09.06.2008  
 




Nico
Madysa
Funktioniert es aussi so?
proc SONDERZEICHEN

    parameters titel$
    declare a%
    titel$ = Translate$(titel$, ,-)
    a% = Set(RegEx,1)
    titel$ = Translate$(titel$,[q§~$%&/~(~)=~?`!°²³~{~[~]~}\~*#~+~|µ) ],)
    Set(RegEx,a%)
    return titel$

endproc

 
Nico Madysa
09.06.2008  
 




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
 
Gruß Thomas
Windows XP SP2, XProfan X2
10.06.2008  
 



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.
 
23.06.2008  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.783 Views

Untitledvor 0 min.
Walter14.10.2019
Erasmus.Herold11.06.2019
AndreasS10.02.2019
Pauli19.06.2014
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie