Español
Foro

Hecho: Unicode: Comportamiento extraño

 
- Página 1 -



Nico
Madysa
Einen Saludo allen daraußen.

Dies es el offizielle Nachfolger hiervon: [...]  . Diesmal taucht una muy seltsamer Fehler en quasi demselben Code en. A Erinnerung sei él una vez más (en unwesentlich gekürzter Form) gezeigt:
KompilierenMarcaSeparación
 $H Messages.ph
var id% = 1
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
Struct LVCOLUMN = Mask&, FMT&, CX&, Text&, cchTextMaxLen&, Subitem&
Struct LVITEM = IMASK&, ITEM&, ISUBITEM&, State&, StateMask&, ITEXT&, ITEXTMAX&, IIMAGE&, ILPARAM&

proc CreateW

    if %pCount > 10

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    else

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        var exstyle& = 0

    endif

    var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = if(u_IsMenu(id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    var handle& = u_CreateWindowExW(exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    ifnot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:
        " + Class$,"F E H L E R !!!",4096)

    endif

    Dispose cs#
    return handle&

endproc

subproc Create.GridBoxW

    parameters pWnd&,def$,stl%,x%,y%,dx%,dy%
    declare s$
    var hList& = CreateW("SzyzszLzizsztzVzizezwz3z2zzz","",$50000009 + stl%,x%,y%,dx%,dy%,pWnd&,0,%hInstance,$200)
    u_SendMessageW(hList&,$1036,0,$00000023)
    var LVC# = New(LVCOLUMN)

    With LVC#

        .Subitem& = 0
        .MASK& = $7

        whileloop 0,(len(def$,";")  3) - 1

            s$ = SubStr$(def$,3*&loop + 1,";")
            .TEXT& = Addr(s$)
            .FMT&  = val(SubStr$(def$,3*&loop + 2,";"))
            .CX&   = val(SubStr$(def$,3*&loop + 3,";"))
            .cchTextMaxLen& = len(s$)
            u_SendMessageW(hList&,$1061,&loop,LVC#)

        EndWhile

    EndWith

    Dispose LVC#
    return hList&

endproc

proc InsertStringW

    parameters pList&,s$,index%
    declare ss$
    var LVI# = New(LVITEM)
    var d$ = Get("ListDel") + "z"

    With LVI#

        .IMASK&=$1
        .ITEM& = index%

        whileloop len(s$,d$)

            ss$ = SubStr$(s$,&loop,d$)
            .iText& = Addr(ss$)
            .ITEXTMAX& = len(ss$)
            .ISUBITEM& = &loop - 1

            ifnot &loop - 1

                u_SendMessageW(pList&,$104D,index%,LVI#)

            else

                u_SendMessageW(pList&,$104C,index%,LVI#)

            endif

        EndWhile

    EndWith

    Dispose LVI#

endproc

proc LoadText

    parameters d$
    declare a$
    case d$ = "" : return
    Die CSV-Datei wird eingelesen
    declare b#,t$,tt$
    Dim b#,FileSize(d$)
    BlockRead(d$,b#,0,SizeOf(b#))
    d$ = Char$(b#,2,SizeOf(b#)-2)
    Dispose b#
    Die Zeilen werden im Sortier-Listview alphabetisch geordnet

    whileloop 0,len(d$,"x0Dzx0Az")-1

        a$ = "Mzeziznz;zVzezrzszuzczhz!z"
        a$ = SubStr$(d$,&loop+1,"x0Dzx0Az")
        WindowTitle Translate$(a$,"z","|")
        InsertStringW(hSortDP&,a$,&loop)
        InsertStringW(hSortDP&,SubStr$(d$,&loop+1,"x0Dzx0Az"),&loop)

    EndWhile

    Die Substrings jeder Zeile sind mit einem Semikolon getrennt
    Set("ListDel",";")
    Das Sortier-Listview wird ins Anzeigelistview übertragen
    Aus einer Spalte werden zwei
    var LVI# = New(LVITEM)
    LVI#.IMASK&= $1
    LVI#.ITEXT&= LVI#+36
    LVI#.ITEXTMAX& = 200
    LVI#.ISUBITEM& = 0

    whileloop 0, Getcount(hSortDP&) -1

        LVI#.ITEM& = &loop
        u_SendMessageW(hSortDP&,$1073,&loop,LVI#)Text auslesen
        Dim b#,200
        b# = LVI#.iText&
        d$ = Char$(b#,0,SizeOf(b#))In Stringvariable schreiben
        InsertStringW(hList&,d$,&loop)übertragen
        Dispose b#

    EndWhile

    Dispose LVI#

endproc

declare hUser&,hGDI&,hKrnl&
declare hSortDP&,hList&
cls
var font& = Create("Font","Times New Roman",16,0,0,0,0)
hUser& = ImportDLL("USER32","u_")
hSortDP& = Create("GridBoxW",%hWnd,";0;100",$10,0,0,0,0)
ShowWindow(hSortDP&,0)
hList& = Create("GridBoxW",%hWnd,";0;300;;0;300",$00,0,0,width(%hWnd),height(%hWnd))
SetFont hList&,font&
WindowTitle "Bitte warten, Wortliste wird geladen ..."
Format
LoadText LoadFile$("Testdatei laden","Test.txt")
WindowTitle "Je 100 deutsche und polnische Wörter"

whilenot IsKey(27)

    waitinput

wend

FreeDLL hUser&
FreeDLL hGDI&
FreeDLL hKrnl&
DeleteObject font&
end

Viel Texto en wenig Extraño, entscheiden son nämlich el folgenden Zeilen:
KompilierenMarcaSeparación
whileloop 0,len(d$,"x0Dzx0Az")-1

    a$ = "Mzeziznz;zVzezrzszuzczhz!z"
    a$ = Substr$(d$,&bucle+1,"x0Dzx0Az")
    Título de la ventana Translate$(a$,"z","|")
    InsertStringW(hSortDP&,a$,&bucle)
    InsertStringW(hSortDP&,Substr$(d$,&bucle+1,"x0Dzx0Az"),&bucle)

EndWhile


Hier stürzt el Code en el späteren Línea
KompilierenMarcaSeparación
b# = LVI#.iText&
sang- y klanglos de. Nun el eigentlich verwunderlichen Beobachtungen:
1. Das Kompilat arbeitet fehlerfrei.
2. Nehme Yo no el Umweg encima a$, pero füge el Substring inmediatamente una (Línea 2 y 4 weg, dafür Línea 5), así hay no Fehler.
3. Nehme Yo no unterschiedlichen Textos, pero una festen Probetext (Línea 2 weg, dafür Línea 1), así hay ebenfalls no Fehler.
4. Item se ejecuta alles fehlerfrei, si yo el el obige Línea con Título de la ventana entkommentiere. An el Prozessorauslastun kann lo sin embargo no mentira, porque füge Yo anstatt de Título de la ventana Sleep una, así stürzt el Kode ebenfalls de.

Das waren ahora vier Wege, esta Fehler a umgehen. Doch ha irgendjemand una Idea, por qué él überhaupt auftritt? Jede dieser vier Lösungen (außer tal vez Nummer 3) debería eigentlich gar no Auswirkung haben y doch verhindern ellos el Programmabsturz.
Dietmar y yo son con unserem Latein al Ende, doch tal vez sehen 46 Augen más que 4.

Lo verbleibt ratlos

Nico Madysa
 
Nico Madysa
10.07.2009  
 



 
- Página 2 -


Ein XProfan11-String besteht de 2 Longs y el Bytes. Erstes Largo es una Zählerwert (de Delphi verwaltet) y Zweites el Stringlänge. El Función addr son pero no el Stringadresse zurück, pero zeigt en el ersten Bytes en el String, zeigt also en el Adresse+8.
KompilierenMarcaSeparación
var s$="Test"
var a&=addr(s$)
print long(a&,-8),long(a&,-4)
waitInput
var s2$=""
print addr(s2$)
waitInp

Für Api-Params después de lpz reicht el direkte Adresse en Bytes+z.

Das Ejemplo zeigt auch una con el dynamischen Stringspeicherverwaltung zusammenhängenden Problemfall.
 
12.07.2009  
 




Frank
Abbing

Darf uno el GlobalAllocs eigentlich genauso mover como Profano-Bereiche, also después de el Schema Zona# = Long&, oder benötigen jene dafür una entsprechenden Stil?


En el Flags, el du gewählt hast, erhälst du fixen Speicher. Für verschiebbaren musst du $42 gewenden. Zum Verschieben kannst du entonces GlobalReAlloc uso.
Yo selber arbeite sólo fixen Guardar. El trabajo algo más rápido, y uno erlebt no ungewollten Überraschungen.
 
12.07.2009  
 




Nico
Madysa
IF, Beitrag=53192, Zeitpunkt=12.07.2009

El Función addr son pero no el Stringadresse zurück, pero zeigt en el ersten Bytes en el String, zeigt also en el Adresse+8.


Natürlich tut ellos el. El APIs -- y diesem speziellen Falle el Listview-Messages -- interés se nämlich nada para esta Verwaltungslongints, pero para el Puffer. Worin besteht ahora konkret el Diferencia, si Yo esta con Addr(texto$) y len(texto$) oder con bereich# y SizeOf(bereich#) bereitstelle?

EDIT:
@Franco: Davon Yo ya gelesen, pero yo war No sicher, como weit M$ dieses "moveable" fasst. Denen puede ser also auch neue Adressen zuweisen? El Win32.hlp schweigt se darüber de y meint sólo, con GlobalReAlloc puede Características y Größe verändert voluntad.
 
Nico Madysa
12.07.2009  
 




Frank
Abbing

Denen puede ser also auch neue Adressen zuweisen? El Win32.hlp schweigt se darüber de y meint sólo, con GlobalReAlloc puede Características y Größe verändert voluntad.


El Adresse se se ändern necesario, si la neue Grösse no mehr en el ursprünglichen Puffer passt. Ob el auch así durchgezogen se oder una Fehlermeldung ausgegeben se, musst du selber testen, porque Yo - como dijo - GlobalAlloc sólo festem Speicher benutze.
 
12.07.2009  
 




Dieter
Zornow
Also Yo lo veces probiert, el Ejemplo en el Aaahen kam Yo abgeändert y lo va en me einwandfrei. Hoffe el hängt no con el Betriebsystem zusammen.
KompilierenMarcaSeparación
whileloop 0,len(d$,"x0Dzx0Az")-1

    a$ = SubStr$(d$,&loop+1,"x0Dzx0Az")+"zz"  DIES IST DIE BETROFFENE ZEILE
    InsertStringW(hSort&,a$,&loop)

EndWhi
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
13.07.2009  
 




Dieter
Zornow
Funktioniert no yo en el sólo GlobalAlloc pero auch con el undokumentierten DIM Función, el Roland ahora preisgegeben ha. Als Exe y como PRF
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
13.07.2009  
 




RGH
IF, Beitrag=53192, Zeitpunkt=12.07.2009
Das Ejemplo zeigt auch una con el dynamischen Stringspeicherverwaltung zusammenhängenden Problemfall.


Das liegt pero no a el Speicherverwaltung XProfans, pero daran, como Delphi con Cuerdas umgeht: Ein Leerstring belegt no Speicher y kein Speicher ha auch no Aderesse.
Das kann para Stolperstein voluntad, si uno una Leerstring con Addr(s$) a una API-Función son, sin ihn vorher en una Nullbyte ("z") a erweitern.

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
13.07.2009  
 




RGH
Nico Madysa, Beitrag=53176, Zeitpunkt=10.07.2009
Das waren ahora vier Wege, esta Fehler a umgehen. Doch ha irgendjemand una Idea, por qué él überhaupt auftritt? Jede dieser vier Lösungen (außer tal vez Nummer 3) debería eigentlich gar no Auswirkung haben y doch verhindern ellos el Programmabsturz.


¡Hola Nico,

una derartige Beobachtung, que un Programmabsturz aufgrund eigentlich bastante unsinniger Los cambios veces es y veces no, oder lo en el Interpreter va y compiliert no oder umgekehrt, deutet oftmals darauf hin, dass lo irgendwo en el Code una kleinere Verletzung de Speichergrenzen son, el eben manchmal para Crash führt y manchmal zufällig no, je después de qué a el Speicherort, a el fälchlicherweise geschrieben se, disponible es.
Dass lo manchmal funktioniert, deutet darauf hin, dass lo una más kleinere Grenzüberschreitung es y manchen Fällen sólo eben lediglich Speicher überschrieben se, el no gebraucht se oder no geschützt es.

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
13.07.2009  
 




RGH
Und Yo Su Fehler gefunden, Nico:
KompilierenMarcaSeparación
LVI#.IMASK&= $1
LVI#.ITEXT&= LVI#+36
LVI#.ITEXTMAX& = 200
LVI#.ISUBITEM& = 0pre>

Hier gibst Usted el Adresse para el a lesenden Texto con LVI# + 36 a. El Struktur LVITEM es aber sólo 36 Bytes groß, el heißt also, el Adresse weist el erste Byte después de el Struktur. El Programmzeile, el el Texto ausliest, schreibt ihn natürlich exakt como hin. Dumm sólo, dass dies una no geDIMter Speicherbereich es.

Usted könntest ahora natürlich el Struktur LVITEM en esta 200 Bytes größer hacer (una texto#(200) anhängen), oder aber todavía einfacher: Usted DIMensionierst B# antes el Erzeugen el Strukturvariable LVI# y gibst B# direkt como Adresse para el Texto a. Dann sieht el Ende el Procedimiento LoadText así de:
KompilierenMarcaSeparación
<...>
Die Substrings jeder Zeile sind mit einem Semikolon getrennt
Set("ListDel",";")
Das Sortier-Listview wird ins Anzeigelistview übertragen
Aus einer Spalte werden zwei
Dim b#,200
var LVI# = New(LVITEM)
LVI#.IMASK&= $1
LVI#.ITEXT&= B#
LVI#.ITEXTMAX& = 200
LVI#.ISUBITEM& = 0

whileloop 0, Getcount(hSortDP&) -1

    LVI#.ITEM& = &loop
    u_SendMessageW(hSortDP&,$1073,&loop,LVI#)Text auslesen
    d$ = Char$(b#,0,sizeof(b#))In Stringvariable schreiben
    InsertStringW(hList&,d$,&loop)übertragen

EndWhile

Dispose LVI#
Disponer B#

... y alles se ejecuta rund!

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
13.07.2009  
 




Dieter
Zornow
Oh sí correcto, Yo hatte el Nico dijo y esta vergessen, dass mi Structur en pauschal 512 para Texto erweitert es, deshalb escribir y lese Yo siempre direkt hinter el eigentliche Structur
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
13.07.2009  
 




Nico
Madysa
Siempre es otra vez erstaunlich, qué para simple Lösungen el seltsamsten Ereignisse haben.
KompilierenMarcaSeparación
 $H Messages.ph
var id% = 1
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
Struct LVCOLUMN = Mask&, FMT&, CX&, Text&, cchTextMaxLen&, Subitem&
Struct LVITEM = IMASK&, ITEM&, ISUBITEM&, State&, StateMask&, ITEXT&, ITEXTMAX&, IIMAGE&, ILPARAM&
Def GlobalAlloc(2) !"KERNEL32","GlobalAlloc"
Def GlobalFree(1) !"KERNEL32","GlobalFree"

proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

endproc

proc CreateW

    if %pCount > 10

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    else

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        var exstyle& = 0

    endif

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = if(u_IsMenu(id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    var handle& = u_CreateWindowExW(exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    ifnot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:
        " + Class$,"F E H L E R !!!",4096)

    endif

    Dispose cs#
    return handle&

endproc

subproc Create.GridBoxW

    parameters pWnd&,def$,stl%,x%,y%,dx%,dy%
    declare s$
    var hList& = CreateW("SysListView32","",$50000009 + stl%,x%,y%,dx%,dy%,pWnd&,0,%hInstance,$200)
    u_SendMessageW(hList&,$1036,0,$00000023)
    var LVC# = New(LVCOLUMN)

    With LVC#

        .Subitem& = 0
        .MASK& = $7

        whileloop 0,(len(def$,";")  3) - 1

            s$ = SubStr$(def$,3*&loop + 1,";")
            .TEXT& = Addr(s$)
            .FMT&  = val(SubStr$(def$,3*&loop + 2,";"))
            .CX&   = val(SubStr$(def$,3*&loop + 3,";"))
            .cchTextMaxLen& = len(s$)
            u_SendMessageW(hList&,$1061,&loop,LVC#)

        EndWhile

    EndWith

    Dispose LVC#
    return hList&

endproc

proc InsertStringW

    parameters pList&,s$,index%
    declare ss$,palloc&
    var LVI# = New(LVITEM)
    var d$ = UTF(Get("ListDel"))

    With LVI#

        .IMASK&=$1
        .ITEM& = index%

        whileloop len(s$,d$)

            ss$ = SubStr$(s$,&loop,d$) + "zz"
            palloc& = GlobalAlloc($40,len(ss$))
            Char palloc&,0 = ss$
            .iText& = palloc&
            .ITEXTMAX& = len(ss$)
            .ISUBITEM& = &loop - 1

            ifnot &loop - 1

                u_SendMessageW(pList&,$104D,index%,LVI#)

            else

                u_SendMessageW(pList&,$104C,index%,LVI#)

            endif

            GlobalFree(palloc&)

        EndWhile

    EndWith

endproc

proc LoadText

    parameters d$
    case d$ = "" : return
    declare b#,t$,tt$ , a$
    Die CSV-Datei wird eingelesen
    Dim b#,FileSize(d$)
    BlockRead(d$,b#,0,SizeOf(b#))
    d$ = Char$(b#,2,SizeOf(b#)-2)
    Dispose b#
    Die Zeilen werden im Sortier-Listview alphabetisch geordnet

    whileloop 0,len(d$,"x0Dzx0Az")-1

        a$ = SubStr$(d$,&loop+1,"x0Dzx0Az") DIES IST DIE BETROFFENE ZEILE
        InsertStringW(hSort&,SubStr$(d$,&loop+1,"x0Dzx0Az"),&loop)

    EndWhile

    Die Substrings jeder Zeile sind mit einem Semikolon getrennt
    Set("ListDel",";")
    Das Sortier-Listview wird ins Anzeigelistview übertragen
    Aus einer Spalte werden zwei
    Dim b#,100
    var LVI# = New(LVITEM)
    LVI#.IMASK&= $1
    LVI#.ITEXT&= b#
    LVI#.ITEXTMAX& = 200
    LVI#.ISUBITEM& = 0
    Bereich freimachen

    whileloop 0, Getcount(hSort&) -1

        LVI#.ITEM& = &loop
        clear b#
        u_SendMessageW(hSort&,$1073,&loop,LVI#) Text auslesen
        d$ = Char$(b#,0,SizeOf(b#))In Stringvariable schreiben
        InsertStringW(hList&,d$,&loop)übertragen

    EndWhile

    Dispose LVI#,b#

endproc

declare hUser&,hGDI&,hKrnl&
declare hSort&,hList&
cls
var font& = Create("Font","Times New Roman",16,0,0,0,0)
hUser& = ImportDLL("USER32","u_")
hSort& = Create("GridBoxW",%hWnd,UTF("Sortieren")+";0;100",$10,0,0,0,0)
ShowWindow(hSort&,0)
hList& = Create("GridBoxW",%hWnd,UTF("Deutsch")+";0;300;"+UTF("Polnisch")+";2;300",$00,0,0,width(%hWnd),height(%hWnd))
SetFont hList&,font&
WindowTitle "Bitte warten, Wortliste wird geladen ..."
Format
"Wort1;Wort2
Wort3;Wort4;..."
LoadText LoadFile$("Quelldatei laden ...","deupol.txt")
WindowTitle "Je 100 deutsche und polnische Wörter (ESC um zu sichern)"

whilenot IsKey(27)

    waitinput

wend

FreeDLL hUser&
FreeDLL hGDI&
FreeDLL hKrnl&
DeleteObject font&
end

Gracias euch allen para eure Geduld y Ayuda.
 
Nico Madysa
13.07.2009  
 




Dietmar
Horn
Gracias a todos Helfer para el Hilfestellung(en)!

Der para Durchbruch führende Referencia kam de Roland.

Der Rest es nun vermutlich lediglich todavía stupide y zeitaufwändige Fleißarbeit.

Saludo
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:  [...] 
15.07.2009  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

9.996 Views

Untitledvor 0 min.
Sven Bader25.02.2021
Manfred Barei23.02.2020
gerd05.10.2013
Christian Hahn28.12.2012
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie