Français
Source/ Codesnippets

Automatisch Entfernen Funktionen überflüssige

 
- page 1 -



Jörg
Sellmeyer
Salut,
j'ai la fois un paire Regexpressions zusammengefummelt, avec denen Funktionen comment Sous, Mul u.s.w automatisch aus dem Voir le texte source entfernt volonté peut.
Hiermit peut aucun imbriquées Funktonen ersetzt volonté et OU et AND rester unbehandelt.
quand même peux es einem une la quantité travail décroître.
KompilierenMarqueSéparation
Declare Term$[10,2],Wert$[5]
Declare Edit&,Text&,hFont&,btnLaden&,btnStarten&,btnSpeichern&,Liste&,ListeFertig&
Term$[0,0] = ([Ss][Uu][Bb])+ ?~(
Term$[1,0] = (([Aa][Dd][Dd])+ ?~()
Term$[2,0] = (([Aa][Dd][Dd]~$)+ ?~()
Term$[3,0] = (([Mm][Uu][Ll])+ ?~()
Term$[4,0] = ([Dd][Ii][Vv]+ ?~()
Term$[5,0] = ([Dd][Ii][Vv]&+ ?~()
Term$[6,0] = ([Aa][Nn][Nn]+ ?~()Wem was dazu einfällt...
Term$[7,0] = ([Oo][Rr]+ ?~()
Term$[8,0] = ([Mm][Oo][Vv][Ee][Ll][Ii][Ss][Tt][Tt][Oo]+([Ll][Ii][Ss][Tt]|[Cc][Hh][Oo][Ii][Cc][Ee]|[Ee][Dd][Ii][Tt]) ?~()
Term$[9,0] = (([Ss][Ee][Tt])([Aa][Uu][Tt][Oo][Pp][Aa][Ii][Nn][Tt]|
[Dd][Ee][Cc][Ii][Mm][Aa][Ll][Ss]|
[Nn][Uu][Mm][Ww][Ii][Dd][Tt][Hh]|
[Cc][Hh][Aa][Rr][Ss][Ee][Tt]|
[Ee][Rr][Rr][Oo][Rr][Ll][Ee][Vv][Ee][Ll]|
[Ff][Ii][Ll][Ee][Mm][Oo][Dd][Ee]|
[Tt][Rr][Uu][Ee][Cc][Oo][Ll][Oo][Rr]|
[Ss][Tt][Rr][Ww][Ii][Dd][Tt][Hh])) [0-9]+
Term$[0,1] = -
Term$[1,1] = +
Term$[2,1] = +
Term$[3,1] = *
Term$[4,1] = /
Term$[5,1] = \
Term$[6,1] = &
Term$[7,1] = |
Term$[8,1] = MoveListToHandle(
Wert$[0] = ( ?[0-9]+(~.[0-9]+)? ?)Zahl
Wert$[1] =  ( ?[!%&]?[A-Za-z0-9]+[!%&]? ?)numerische Variable; Hex-, Binär- oder Octalzahl; Konstante oder Systemvariable
Wert$[2] = ( ?q{1}.*q{1} ?)String
Wert$[3] = ( ?([A-Za-z0-9ÄÖÜäöü~-_])+~$+ ?)Stringvariable oder Konstante
Wert$[4] = ( ?~$+[A-Za-z0-9ÄÖÜäöü~-_]+ ?)Stringkonstante

Proc Bearbeiten

    Parameters Zeile$,hEdit&,hText&
    Declare Funktion$,RegExpVar$,FunktionTransformiert$
    Case Zeile$ > :SetText hEdit&,Zeile$

    { Sub:

        RegExpVar$ = Term$[0,0] + ( + Wert$[0] + | + Wert$[1] + )  + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Set(RegEx,1)
            FunktionTransformiert$ = Translate$(Funktion$,Term$[0,0],()
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[0,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    { Add:

        RegExpVar$ = Term$[1,0] + ( + Wert$[0] + | + Wert$[1] + )  + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Set(RegEx,1)
            FunktionTransformiert$ = Translate$(Funktion$,Term$[1,0],()
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[1,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    {Add$:

        RegExpVar$ = Term$[2,0] + ( + Wert$[2] + | + Wert$[3] + | + Wert$[4] + ),( + Wert$[2] + | + Wert$[3] + | + Wert$[4] + ) + ~)

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Set(RegEx,1)
            FunktionTransformiert$ = Translate$(Funktion$,Term$[2,0],()
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[2,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    {Mul:

        RegExpVar$ = Term$[3,0] + ( + Wert$[0] + | + Wert$[1] + )  + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Set(RegEx,1)
            FunktionTransformiert$ = Translate$(Funktion$,Term$[3,0],()
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[3,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    {Div

        RegExpVar$ = Term$[4,0] + ( + Wert$[0] + | + Wert$[1] + )  + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Set(RegEx,1)
            FunktionTransformiert$ = Translate$(Funktion$,Term$[4,0],()
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[4,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    {Div&

        RegExpVar$ = Term$[5,0] + ( + Wert$[0] + | + Wert$[1] + )  + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Set(RegEx,1)
            FunktionTransformiert$ = Translate$(Funktion$,Term$[5,0],()
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[5,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    {MoveListTo

        RegExpVar$ = Term$[8,0]

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            FunktionTransformiert$ = Translate$(Funktion$,Funktion$,Term$[8,1])
            Set(RegEx,0)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    {Set...

        RegExpVar$ = Term$[9,0]
        Declare Zahl$

        While Match$(RegExpVar$,Zeile$) >

            Funktion$ = Match$(RegExpVar$,Zeile$)
            Zahl$ = SubStr$(Funktion$,2, )
            FunktionTransformiert$ = Translate$(Funktion$,Zahl$,q, + Zahl$ + ))
            FunktionTransformiert$ = Translate$(FunktionTransformiert$,Left$(FunktionTransformiert$,3),Left$(FunktionTransformiert$,3) + (q)
            Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
            Case Zeile$ > :SetText hText&,Zeile$

        Wend

    }

    Return Zeile$

EndProc

Proc DateiLaden

    Declare Datei$,Zeile$
    Datei$=LoadFile$(Profan-Code laden,Profan-Code (*.prf)|*.prf|
    + Include-Datei (*.inc)|*.inc)

    If Datei$ >

        ClearList Liste&
        Assign #1,Datei$
        Reset #1

        WhileNot @Eof(#1)

            Input #1,Zeile$
            AddString(Liste&, Zeile$)

        Wend

        Close #1
        WindowTitle Datei$ +  geladen

    EndIf

EndProc

Proc DateiBearbeiten

    If GetCount(Liste&) > 0

        Declare Zeile$,ZeileNeu$
        ClearList ListeFertig&

        WhileLoop 0,GetCount(Liste&)

            locate 12,0
            Zeile$ = GetString$(Liste&,&Loop)
            ZeileNeu$ = Bearbeiten(Zeile$,Edit&,Text&)
            AddString(ListeFertig&,ZeileNeu$)

            If ZeileNeu$ <> Zeile$

                AddString Str$(&Loop) +   + Trim$(Zeile$)
                AddString Str$(&Loop) +   + Trim$(ZeileNeu$)

            EndIf

        Wend

        ListBox$(Änderungen,2)
        WindowTitle Translate$(GetText$(%hwnd),geladen,bearbeitet)

    EndIf

EndProc

Proc DateiSpeichern

    If GetCount(ListeFertig&) > 0

        Declare Datei$
        Datei$ = SaveFile$(Datei speichern,Profan-Code (*.prf)|*.prf|
        + Include-Datei (*.inc)|*.inc|
        + Andere (*.*)|*.*))

        If Datei$ >

            Assign #1,Datei$
            ReWrite #1

            WhileLoop 0,GetCount(ListeFertig&)

                Print #1,GetString$(ListeFertig&,&Loop)

            Wend

            Close #1
            WindowTitle Translate$(GetText$(%hwnd),bearbeitet,gespeichert)

        EndIf

    EndIf

EndProc

Window 1,1 - 1100,400
hFont& = Create(Font,MS Sans Serif,14,0,0,0,0)
SetDialogFont hFont&
Edit& = Create(Edit,%hwnd,,0,0,Width(%hwnd),24)
Text& = Create(Text,%hwnd,,0,50,Width(%hwnd),24)
btnLaden& = Create(Button,%hwnd,laden,10,100,60,24)
btnStarten& = Create(Button,%hwnd,starten,80,100,60,24)
btnSpeichern& = Create(Button,%hwnd,speichern,150,100,60,24)
Liste&=Create(List,0)
ListeFertig&=Create(List,0)

While 1

    Waitinput

    If Clicked(btnLaden&)

        ChDir C:/ProfanTools
        DateiLaden

    ElseIf Clicked(btnStarten&)

        DateiBearbeiten

    ElseIf Clicked(btnSpeichern&)

        DateiSpeichern

    EndIf

Wend

DeleteObject hFont&
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
10.10.2006  
 



 
- page 4 -



Dietmar
Horn
oui, cet Version startet wenigstens, aussi si cela Programmfenster pour 1024 x 768 dans qui Hauteur um etwa 20 - 30 Pixel kleiner son pourrait, avec cela es vollständig sur den Bildschjirm paßt.

Den reste werde je später testen.

ah bon: ältere Versionen voulais je également testen, doch weil là chez mir absolu gar rien passierte (encore pas la fois une Fehlermeldung), J'ai eu mich seulement la fois pas grand plus avec cela befaßt.

Salut
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
14.10.2006  
 




Dietmar
Horn
sur qui Schnelle rausgefischt:

Aus -> FileMode 2 wird -> Set(Filemode ,2) gemacht (alors Bug, weil un Leerzeichen zuviel).

Salut
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
14.10.2006  
 




Jörg
Sellmeyer
qui Taille habe je maintenant nochmal à kleiner Bildschirme ajusté. je vergeß toujours, qui je une 19il habe et cela nichtgerade Standard ist.
qui Set...-Befehle devrait maintenant marcher.


(encore pas la fois une Fehlermeldung), J'ai eu mich seulement la fois pas grand plus avec cela befaßt.


tant pis, hätteste wenigstens cela la fois kurz mitgeteilt, ensuite hätte je mich früher sur qui Fehlersuche faire peut.

Salut
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 




Dietmar
Horn
allô Jörg,

chez kleineren Bildschirmauflösungen knallt es jusqu'à maintenant quand même encore!

Tip: simple %MaxX et %MaxY abfragen et conforme à cela (sous Berücksichtigung des Client-Bereiches des Hauptfensters) qui Objekte sur dem Hauptfenster bricoler.

Meiner attitude pour sollte un solches Tool aussi heutzutage encore abwärtskompatibel jusque 640 x 480 son (seulement en supplément pourrait je Dir un kilometerlanges Posting comme Begründung envoyons - pourquoi, wieso, weshalb usw. une solche Vorgehensweise encore toujours günstiger wäre ...).

qui oberen beiden CreateText-Zeilen serait je entier omettre. sur schnelleren Rechnern erkennt on là sowieso nix (sauf qui là Irgendwas relativ sinnlos avant sich rumzappelt) - et sur langsameren PCs wird par cela zweimalige SetText chez chacun Codezeile cela Programme seulement unnötig ausgebremst. chez längeren Quelltexten intéresser solche Infos eh keinen - sauf qui cela Programme avec seinem Getue possible vite fertig volonté möge.

aussi serait je qui beiden Listviews bzw. Gridboxen également pas zeitnah ständig avec chacun qui justement bearbeiteten Codezeilen füllen, car cela bremst seulement unnötig et intéressé keinen. simple vom Programme qui travail so vite comment possible faire faire - et bien is es.

Zum Schluß wird schlicht et simple dans irgendeiner vernünftigen forme cela Ergebnis präsentiert, peut-être. encore avec Editiermöglichkeit, o.ä. Den reste wird sich chacun Programmierer sowieso selber avec seinem bevorzugten Editor anschauen et testen - alors, si alles korrekt umgewandelt worden ist, usw. ...

qui ganze Grafik-Schnick-Schnack, usw. ist meiner attitude pour chez einem solchen Tool Pille-Palle et alors völlig uninteressant.

Notfalls würden chez längeren Sources comme Fortschrittsanzeige (avec cela qui User pas croyez, qui sich cela Programme peut-être. aufgehängt hätte) un paire kreiselnde bzw zappelnde simple ASCII- ou bien Ansi-marque ausreichen.

je crois, quelque chose comme wird en tout aussi comme Software-Ergonomie bezeichnet (ou bien so ähnlich ...).

Salut
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
14.10.2006  
 




Jörg
Sellmeyer

chez kleineren Bildschirmauflösungen knallt es jusqu'à maintenant quand même encore!


c'est oui ärgerlich! tu as naturellement droite - cela doit ajusté volonté. quand même darf meiner attitude pour ne...aucune simpler Absturz passer. je vermute la fois, cela Profan là encore une Macke hat.
Votre Anregungen J'ai eu alle déjà sur qui ToDo-liste. Es volonté encore un paire Optionseinstellungen dazukommen, qui qui grafischen Sachen Abschaltbar faire. (simple la fois avec rechter Bouton de la souris sur cela la fenêtre klicken)
sommes car Votre Codes korrekt traduit worden? si là encore faute sommes, ist es mir im Moment wichtiger, qui trop korrigieren.

merci pour Testen!
Salut
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 



 
- page 5 -



Frank
Abbing
déjà un nützliches Programme, justement pour ältere Quellcodes. seulement EQU et EQU$ volonté wohl encore pas traduit, qui Quellcodes oui maximum unübersichtlich faire.
 
14.10.2006  
 




Jörg
Sellmeyer
qui Habe je doch glatt oublier qc! merci Frank!

Salut
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 




Jörg
Sellmeyer
je denke je nähere mich einer final Version

cela Programme sollte maintenant sous allen Auflösungen jusqu'à mind. 800 x 600 courir.
Equ et Equ$ sommes incorporé.
qui bearbeiteten Zeilen volonté pas angezeigt
aussi qui Listen seulement am Ende des Vorgangs pleine
im Optionsmenü peux cela umgeändert volonté (rechte Bouton de la souris appelez cela menu sur)
Wend peux sur Wunsch ausgenommen volonté
qui Funktionsumwandlung peux sur Wunsch abgeschaltet volonté (z. B. si seulement vieille DBase-Befehle dans einem sonst aktuellen Code sommes)
qui DBase-Befehle peut ausgenommen volonté (kleiner Geschwindigkeitsvorteil - sinnvoll si on cet Funktionalitäten sowieso pas im Programme hat.)

une im Modifier le champ de sous qui rechten Listbox bearbeitete la ligne ersetz avec Enter direct qui entsprechende la ligne dans qui linken Listbox.

chez mir braucht cela Programme pour ca. 5000 Zeilen 53 Sekunden. alors aussi grand Programme laisser sich dans akzeptabler Zeit transformer.
je werde encore une Funktion einbauen avec qui pour qui Umwandlung weitere (pas bearbeitete ) Vorkommen qui überflüssigen Begriffe trouver laisser. qui peut ensuite trop Fuß nachbearbeitet volonté.

s'il te plaît testen et rückmelden. merci nochmal à alle Tester!
@Roland: si es car endgültig fertig ist, peux cela Programme volontiers avec sur qui CD.

Salut
Jörg

338 kB
Hochgeladen:14.10.2006
Downloadcounter121
Download
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 




Peter
Max
Müller
Hello,
à Jörch,
(je sais je nerve )

Am Ende des Umwandelns venez une Fehlermeldung avec
la ligne 527 Variable pas declariert I%

et cet la ligne kannste la fois testen.



Créer(Text,D%,°C,509, 127,15,15)


Ferner manquer scheinbar : Neq,Neq$,GT,LT et SetErrorLevel

salut
 
XProfan X3, X4ß, Win 10.1
14.10.2006  
 




Rolf
Koch
oui, habe grad 30000 Zeilen durchgezogen. Werde es sur lauffähigkeit ensuite la fois testen. Zeit était aussi encore akzeptabel.
Sieht déjà la fois super aus. cependant weis on nie, car je printe oui aussi Profanbefehle dans Fichiers et cela muss je chez quelque chose Freizeit la fois näher anschauen. mais d'abord einmal: Respekt

Achja, cela avec I% pas deklariert venez chez mir aussi.
 
14.10.2006  
 




Jörg
Sellmeyer
Salut,
merci, pour qui Rückmeldung.
@Max: c'est définitif pas nervig! Im Gegenteil, sans würds oui pas vorangehen.


et SetErrorLevel


cela peux eigentlich pas .si cela chez Dir pas traduit wird, Poste doch fois le entsprechende la ligne (So vous car anders aussieht comme
KompilierenMarqueSéparation
la hâte Du peut-être. une variable:SetErrorLevel n%?
là habe je encore gar pas tour gedacht....
Werde je mais später encore berücksichtigen.

@Rolf: Avec l' den Profanbefehlen dans qui Fichiers écrivons wäre naturellement besonders intéressant.
peut-être peux Du mir oui la fois un typisches Codebeispiel posten/envoyons. ensuite pourrait je peut-être. Anpassungen speziell pour ROC vornehmen.

qui Variable l% ist maintenant dans Ordre (là weg )
dans qui Statuszeile ist le nombre qui modifié Codezeilen trop voyons
GT,LTNeq et Neq$ sommes aussi drin.

là je justement dabei était, habe je qui Controls maintenant encore skalierbar gemacht. maintenant peux ma alors qui Taille des Fensters verändern et quand même weiterarbeiten.

Salut
Jörg

338 kB
Hochgeladen:14.10.2006
Downloadcounter116
Download
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 




Torsten
Rümker
Jörg Sellmeyer
im Optionsmenü peux cela umgeändert volonté (rechte Bouton de la souris appelez cela menu sur)


j'ai chez mir im Optionsmenü une Erreur d'affichage, si je qui DB befehle rausnehme (commuter sur non) wird aussi qui Menupunkt au-dessous sur non umgestellt (alors: Funktionen => Operatoren).
qui Einstellung des Menüpunktes ändert sich dadurch mais pas, scheint alors seulement faux vergebener Text trop son.

MfG
Torsten
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
15.10.2006  
 




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

43.326 Views

Untitledvor 0 min.
Walter16.02.2019
AndreasS27.11.2018
Jörg Sellmeyer14.05.2018
PETER195605.09.2015
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