Italia
Fonte/ Codesnippets

Automatisch Entfernen Funktionen überflüssige

 
- Page 1 -



Jörg
Sellmeyer
Ciao,
Ich habe mal ein paar Regexpressions zusammengefummelt, mit denen Funktionen wie Sub, Mul u.s.w automatisch aus dem Quelltext entfernt werden können.
Hiermit können keine verschachtelte Funktonen ersetzt werden und auch OR und AND bleiben unbehandelt.
Trotzdem kann es einem eine Menge Arbeit abnehmen.
KompilierenMarkierenSeparieren
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 -



Jac
de
Lad
Hab grad gesehen, dass das mit TrueColor nicht an mich gerichtet war. Und ich habe noch einen Fehler bei den @s gefunden, sie dürfen nämlich NICHT alle entfernt werden: die bei Klassendefinitionen müssen erhalten bleiben.

226 kB
Hochgeladen:13.10.2006
Downloadcounter88
Download
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
13.10.2006  
 




Jörg
Sellmeyer
Hallo Jac,
Mach doch mal einen eigenen Thread per Dein Programm. Sonst weiß man gar nicht mehr, wer auf was antwortet.

Klammern müssen auf jeden Fall drin bleiben, da die Operatoren unterschiedliche Rangstufen haben.

(( 1< 2) < (3 < 4)) ist was komplett Anderes als 1 < 2 < 3 < 4
Die Klammerungen geben ja jede per sich erstmal einen Wert. Das zu unterscheiden, kann glaube ich kein Programm leisten, da da das Hirnschmalz vom Programmierer drinsteckt.

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




Peter
Max
Müller
Aloha,

An J.L


Jetzt ist eigentlich nichts mehr zu tun...


Oh doch.

Orginal:
KompilierenMarkierenSeparieren
dbCreateIndex NUMMER+NAME > IndexPfad$  Name abgeschnitten
dbGet$(NUMMER)                                                         db(Get,
dbIndex ((PrgDir$+DATENIXNAME))

IF lt (stanzahl$,7)  or lt (stanzahl$,07)

    MoveListToEdit(Info%[1])                                                MoveListToHandle
    MoveListToChoice(VorCombo&)

    IF equ$ (result$,PCA1$an>


Ergebnis:
KompilierenMarkierenSeparieren
db(CreateIndex,NUMMER+NAM,IndexPfad$)
dbGet$(NUMMER)
dbIndex ((PrgDir$+DATENIXNAME))

IF lt (stanzahl$,7)  or lt (stanzahl$,07)

    MoveListToEdit(Info%[1])
    MoveListToChoice(VorCombo&)

    IF equ$ (result$,PCA1$)


Das sind die letzten unter XProfed 0.99c angezeigten Hinweise.
Wenn Du das noch hinbekommst , wovon ich ausgehe , ist Dein Prog wohl fertig.

Saluto
P.M.M

PS.: Haben andere XProfan Community Mitglieder keinen Code zum testen? Wohl alle schon auf Assembler.Oder Copy und Paste Junkies und schon fertig mit modernisieren
 
XProfan X3, X4ß, Win 10.1
13.10.2006  
 




Jörg
Sellmeyer
Hi Mäxchen,
kommst Du etwa da wech, wo ich auch wech komme?

Peter Max Müller
ollaH,
@Jörch

Nachdem Io l' Code zum laufen gekriegt habe (wollte mit dieser Zeile nicht starten):
KompilierenMarkierenSeparieren
Window 1,1 - 1100,800
>

lief es schon ganz gut.

Wie?? Die Fenstererzeugung in meinem oder in Deinem Code? Das wäre auf jeden Fall etwas per die Bug-Ecke!

Peter Max Müller
Aber
KompilierenMarkierenSeparieren
wird von XProfan angemeckert.Leerzeichen nach dem kleinen r


Wird erledigt

Peter Max Müller
Und diese wird auch nicht richtig gewandelt
KompilierenMarkierenSeparieren
dbCreateIndex NUMMER+NAME > IndexPfad$
>

Frag mich aber nicht wie es richtig lauten muß

Sonst


Ist das denn die Originalzeile aus Deinem Code?

Jedenfalls Danke fürs Testen!

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




Jörg
Sellmeyer
So, jetzt gibts das Programm gleich als Exe:

einige optische Verbesserungen vorgenommen
die Bequemlichkeit aumento (Zeilen können verändert werden, um Code nachzubearbeiten)
Minimalhilfe hinzugefügt
Fortschrittsanzeige verbessert
Abbruchmöglichkeit bei Hängern eingebaut
oben erwähnte Codezeilen funktionieren jetzt
weitere kleine Bugs ausgebaut
hoffentlich keine Neuen eingebaut (ich glaube nicht, daß jemand ein Copyright auf den Spruch hat, oder?)

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




Dietmar
Horn
Hallo Jörg,

bei mir unter XP-Home läßt sich das Programm leider gar nicht erst starten.

Saluto
Dietmar

64 kB
Hochgeladen:14.10.2006
Downloadcounter96
Download
 
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
Seltsam, das gleiche hat Michael auch schon berichtet und mit einer kryptischen Fehlermeldung belegt.
Schau mal in diesem Thread 2 Seiten vorher.
Max hat etwas ähnliches erlebt und die Zeile Window 1,1 - 1100,800 geändert. Danach lief es.
Er hat leider nicht geschrieben, was er geändert hat.
Hast Du mal eine frühere Version des Progamms getestet. Bei mir unter XP Professional corre es wie geschmiert.
iF hat mit seinem Okrea auch das Problem. Hoffentlich hat sich nicht noch ein übler Bug in Profan eingenistet.

Ich habs mal etwas umgestaltet. Evtl war ein Textfeld, das circa den Rand rausragte das Problem.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 




Dietmar
Horn
Ja, diese Version startet wenigstens, auch wenn das Programmfenster per 1024 x 768 in der Höhe um etwa 20 - 30 Pixel kleiner sein potuto, damit es vollständig auf den Bildschjirm paßt.

Den Rest werde ich später testen.

Ach so: ältere Versionen wollte ich ebenfalls testen, doch weil da bei mir absolut gar nichts passierte (noch nicht mal eine Fehlermeldung), hatte ich mich erst mal nicht grande weiter damit befaßt.

Saluto
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
Auf die Schnelle rausgefischt:

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

Saluto
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
Die Dimensione habe ich jetzt nochmal an kleiner Bildschirme angepaßt. Ich vergeß immer, daß ich einen 19er habe und das nichtgerade Standard ist.
Die Set...-Befehle sollten jetzt funktionieren.


(noch nicht mal eine Fehlermeldung), hatte ich mich erst mal nicht grande weiter damit befaßt.


Schade, hätteste wenigstens das mal kurz mitgeteilt, dann hätte ich mich früher auf die Fehlersuche machen können.

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




Dietmar
Horn
Hallo Jörg,

bei kleineren Bildschirmauflösungen knallt es bis jetzt trotzdem noch!

Tip: einfach %MaxX und %MaxY abfragen und dementsprechend (unter Berücksichtigung des Client-Bereiches des Hauptfensters) die Objekte auf dem Hauptfenster basteln.

Meiner Meinung nach sollte ein solches Tool auch heutzutage noch abwärtskompatibel bis zu 640 x 480 sein (nur dazu potuto ich Dir ein kilometerlanges Posting als Begründung schicken - warum, wieso, weshalb usw. eine solche Vorgehensweise noch immer günstiger wäre ...).

Die oberen beiden CreateText-Zeilen würde ich ganz weglassen. Auf schnelleren Rechnern erkennt man da sowieso nix (außer daß da Irgendwas relativ sinnlos vor sich rumzappelt) - und auf langsameren PCs wird durch das zweimalige SetText bei jeder Codezeile das Programm nur unnötig ausgebremst. Bei längeren Quelltexten interessieren solche Infos eh keinen - außer daß das Programm mit seinem Getue possibile schnell fertig werden möge.

Auch würde ich die beiden Listviews bzw. Gridboxen ebenfalls nicht zeitnah ständig mit jeder der gerade bearbeiteten Codezeilen füllen, denn das bremst nur unnötig und interessiert keinen. Einfach vom Programm die Arbeit so schnell wie possibile machen lassen - und gut is es.

Zum Schluß wird schlicht und einfach in irgendeiner vernünftigen Form das Ergebnis präsentiert, evtl. noch mit Editiermöglichkeit, o.ä. Den Rest wird sich jeder Programmierer sowieso selber mit seinem bevorzugten Editor anschauen und testen - also, ob alles korrekt umgewandelt worden ist, usw. ...

Der ganze Grafik-Schnick-Schnack, usw. ist meiner Meinung nach bei einem solchen Tool Pille-Palle und also völlig uninteressant.

Notfalls würden bei längeren Sources als Fortschrittsanzeige (damit der User nicht glaubt, daß sich das Programm evtl. aufgehängt hätte) ein paar kreiselnde bzw zappelnde einfache ASCII- oder Ansi-Zeichen ausreichen.

Ich glaube, sowas wird insgesamt auch als Software-Ergonomie bezeichnet (oder so ähnlich ...).

Saluto
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

bei kleineren Bildschirmauflösungen knallt es bis jetzt trotzdem noch!


Das ist ja ärgerlich! Du hast naturalmente recht - das muß angepaßt werden. Trotzdem darf meiner Meinung nach kein simpler Absturz passieren. Ich vermute mal, das Profan da noch eine Macke hat.
Deine Anregungen hatte ich alle schon auf der ToDo-Liste. Es werden noch ein paar Optionseinstellungen dazukommen, die die grafischen Sachen Abschaltbar machen. (einfach mal mit rechter Maustaste auf das Fenster klicken)
Sind denn Deine Codes korrekt übersetzt worden? Wenn da noch Fehler sind, ist es mir im Moment wichtiger, die zu korrigieren.

Danke fürs Testen!
Saluto
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.10.2006  
 




Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

43.468 Views

Untitledvor 0 min.
Walter16.02.2019
AndreasS27.11.2018
Jörg Sellmeyer14.05.2018
PETER195605.09.2015
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie