-RB-: " ' /' /" /" /' ' " ? wie jetzt nochmal "/ ' - ' \ " maskieren

also kurz vor dem domainausfall hatten wie hier schon mal einen beitrag der das ganze für mich verständlich erklärt hat- leider finde ich den nicht mehr und ich bin bei meinem script jetzt total konfus, keine variante geht so richtig.

also erstmal ein auszug aus dem code(stark gekürzt, ich hoffe alles wichtige ist noch dran):

story[2]="<table width='200'><tr onMouseOver='infoein()' onMouseOut='infoaus()' onMouseMove='infoposition()'><td >"+variable1+"</td></tr></table> ";

story[2] wird dann später in das browser fenster geschrieben.
nun soll infoein() 3 werte übergeben also normalerweise dann so geschrieben : infoein(variable1,variable2,variable3)
die variablen heisen x1 y1 und z1(bzw x2 x3 usw)

wenn ich das so schreibe:
story[2]="<table width='200'><tr onMouseOver='infoein(x1,x2,x3)' onMouseOut='infoaus()' onMouseMove='infoposition()'><td >"+variable1+"</td></tr></table> ";
läuft es am "besten" da sagt er "nur" x1 ist undefiniert. mit alert kann ich x1 ausgeben.

mein problem dabei : die anführungsstriche
habe schon ein paar varianten durch und auch ebensoviele unterschiedliche fehlermeldungen bekommen :(

also kann mir jemand an DIESEM (oben) beispiel zeigen welche striche ich wie setzten/maskieren muss um das zum laufen zu bekommen?
ich weis das es geht-kriege aber nicht hin :(

  1. Moin

    story[2]="<table width='200'><tr onMouseOver='infoein()' onMouseOut='infoaus()' onMouseMove='infoposition()'><td >"+variable1+"</td></tr></table> ";
    nun soll infoein() 3 werte übergeben also normalerweise dann so geschrieben : infoein(variable1,variable2,variable3)
    die variablen heisen x1 y1 und z1(bzw x2 x3 usw)
    story[2]="<table width='200'><tr onMouseOver='infoein(x1,x2,x3)' onMouseOut='infoaus()' onMouseMove='infoposition()'><td >"+variable1+"</td></tr></table> ";

    Bei deinem Beispiel sind eigentlich nirgendwo zusätzliche Anführungszeichen zu setzen, zumindest keine offensichtlichen.
    Das Problem bei diesem Beispiel scheint eher beim Variablenscope zu liegen. So wie du das geschrieben hast, wird beim Überfahren der Maus über die Zeile (hmm, geht das überhaupt ?) der Code
    infoein(x1,x2,x2);
    aufgerufen. Wie es sich gehört, wird nun die Funktion infoein gesucht und ihr der Wert von (oder eine Referenz auf, je nachdem was es für Variablen sind) x1, x2 und x3 übergeben. Das bedeutet, dass alle 3 Variablen zu dem Zeitpunkt des Überfahrens definiert und mit einem Wert belegt sein müssen. Offensichtlich sind sie das nicht, daher die Fehlermeldung.

    Andererseits könnte es aber auch sein, dass ich dich total missverstehe und du die Variablen gar nicht dort definiert haben willst, was angesichts des Subjects wahrscheinlicher ist :)
    Das funktioniert nur, wenn x1, x2 und x3 keine Objekte sind, sondern zum Beispiel Strings. Du würdest dann wahrscheinlich wollen, das beim Mausüberfahren der Code
    infoein("derwertvonx1","derwertvonx2","derwertvonx3");
    ausgeführt wird. Aus deiner Zuweisung an story[2] müsstest du in diesem Fall
    story[2]="<table width='200'><tr onMouseOver='infoein(""+x1+"",""+x2+"",""+x3+"")' onMouseOut='infoaus()' onMouseMove='infoposition()'><td >"+variable1+"</td></tr></table> ";
    machen.

    So, und damit dieses Posting nicht zu praktisch wird, noch ein bisschen trockene Theorie: :-)
    Betrachten wir zunächst einmal einfach Zuweisungen von Strings:
    a="Hallo Welt";
    weist der Variable a den String   Hallo Welt   zu, klar. Wenn man nun aber   Hallo "Welt"   in die Variable schreiben will, geht "Hallo "Welt"" natürlich nicht, auch klar. Deshalb must du die Anführungszeichen die der Parser als ganz normale Zeichen betrachten und nicht interpretieren soll, mit einem \ schützen:
    a="Hallo "Welt"";
    Demnach ist aber nicht nur das Anführungszeichen " ein besonders Zeichen, sondern auch der Backslash , der muss also auch geschützt werden. Wenn du den String   Hallo Europa"Welt"   irgendwo zuweisen willst, musst du daraus also
    a="Hallo Europa\"Welt"";
    machen. Um den Code lesbarer zu machen gibt es in JavaScript noch einfache Anführungszeichen ', die aber in HTML für Parameterzuweisungen IIRC nicht benutzt werden dürfen. Damit kann man sich zumindest bei   Hallo "Welt"   aushelfen:
    a='Hallo "Welt"';
    Natürlich kann man die einfachen Anführungszeichen mit einem Backslash schützen und natürlich geht das auch andersrum:
    a='wie geht's';
    a="wie geht's";

    Interessant wird der ganze Spaß aber, wenn du nun mehrere Ebenen von Code ineinander verschachteln willst. Dann musst du einfach immer von aussen nach innen dafür sorgen, dass das, was der jeweilige Interpreter aus deinem Code macht, auch vom Interpreter eine Ebene tiefer aktzeptiert wird. Und damit das richtig lustig wird, kann man in HTML auch nicht ein "-Zeichen mit einem Backslash schützen, sondern muss es in die Entitity " umwandeln, wobei das " dann wiederum durch ersetzen des & durch & geschützt werden würde.
    Um also   Hallo "Welt"   onMouseOver mit alert() auszugeben brauchst du erstmal den JavaScript-Code für das alert():
    alert("Hallo "Welt"");
    und dann baust du das in den HTML-Code für onMouseOver ein und schützt dabei alle speziellen HTML-Zeichen die dir dabei über den Weg laufen, durch umwandeln in HTML-Entities:
    onMouseOver="alert("Hallo "Welt"");"
    (Das Beispiel ist absichtlich überkompliziert. Praktisch würdest du onMouseOver="alert('Hallo "Welt"');" verwenden)
    Und das ganze in ein document.writeln() eingesetzt ergibt
    document.writeln("onMouseOver="alert("Hallo \"Welt\"");"");
    und so weiter und so fort. Spassig, gell?

    Alle Klarheiten beseitigt? Gut, dann eine Frage:
    Was schreibst du in den HTML-Code, wenn du   'Wer da?' \ "Ich bin's & wer bist du?"   (das soll ein String sein) nach dem Überfahren mit der Maus (onMouseOver) nach 10 Sekunden (setTimeout) mit document.writeln() ausschreiben willst?

    --
    Henryk Plötz
    Grüße von der Ostsee

    1. Alle Klarheiten beseitigt? Gut, dann eine Frage:
      Was schreibst du in den HTML-Code, wenn du   'Wer da?' \ "Ich bin's & wer bist du?"   (das soll ein String sein) nach dem Überfahren mit der Maus (onMouseOver) nach 10 Sekunden (setTimeout) mit document.writeln() ausschreiben willst?

      oh nein! wieso denn gleich so schwer? :(

      <html>
       <head>

      </head>
       <body>
        <div onMouseOver="window.setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"> hier Maus drüber.</div>

      </body>
      </html>

      so in etwa?
      muss man das ' auch anders darstellen(uli meybohms editor macht das immer automatisch *gg*)
      hm.. aber ich würde es doch so machen (ohne gegen deine angaben zu verstossen

      <html>
       <head>

      <script language="JavaScript">
         <!--
            function zeitan()
            {
              window.setTimeout("schreiben",10);
            }
            function schreiben()
            {

      document.writln("'Wer da?' \ "Ich bin's & wer bist du?" ");
            }
         //-->
         </script>
       </head>
       <body>
        <div onMouseOver="zeitan()"> hier Maus drüber.</div>

      </body>
      </html>

      so bevor du anfängst die fehler zu zählen,du hattest mich richtig verstanden, es sind definierte variable mit werten
      die variablen werden genau 2 zeilen über der oben gezeigten script zeile definiert und mit einem wert versehen, wenn ich alert(x1) mache sagt er mir braf den wert, aber wenn ich das wie du sagst einfach so da reinschreibe [infoein(x1,y1,z1)] dann sind sie plötzlich undefiniert ...

      1. Moin

        Was schreibst du in den HTML-Code, wenn du   'Wer da?' \ "Ich bin's & wer bist du?"   (das soll ein String sein) nach dem Überfahren mit der Maus (onMouseOver) nach 10 Sekunden (setTimeout) mit document.writeln() ausschreiben willst?

        <div onMouseOver="window.setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"> hier Maus drüber.</div>
        so in etwa?

        Leider nicht ganz. Mal vom Anfang ausgehen:
        'Wer da?' \  "Ich bin's & wer bist du?"
        wäre der auszugebende HTML-Code. Das kaufmännische Und muss zwar in diesem Fall nicht unbedingt maskiert werden, aber besser ist das. Das setzen wir jetzt in ein document.writeln ein. Dafür verwende ich doppelte Anführungszeichen (weil dann ein Zeichen weniger zu maskieren ist), das heisst alle Backslashes und alle doppelten Anführungszeichen im String müssen maskiert werden:
        document.writeln("'Wer da?' \ "Ich bin's & wer bist du?"");
        Das in ein setTimeout einzusetzen bereitet auch wenig Probleme: Ich nehme zur Abwechslung mal einfache Anführungszeichen und escape daher alle \ und ' :
        setTimeout('document.writeln("'Wer da?' \\ \"Ich bin's & wer bist du?\"")',10000);
        und das in einen HTML-Parameter zu schreiben ist dann reine Routine: alle speziellen HTML-Zeichen, also in diesem Fall das doppelte Anführungszeichen und das Kaufmannsund müssen geschützt werden:
        onMouseOver="setTimeout('document.writeln("'Wer da?' \\ \"Ich bin's &amp; wer bist du?\"")',10000);"
        fertsch!

        Bei deinem Versuch
        onMouseOver="setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"
         ist zumindest das hier ^^ falsch, denn in HTML-Parametern werden die Zeichen nicht durch voranstellen eines \ escaped, sondern durch umwandeln in eine HTML-Entitity.

        muss man das ' auch anders darstellen(uli meybohms editor macht das immer automatisch *gg*)

        Also eigentlich würde ich jetzt Nein sagen wollen und anmerken, dass die einzigen Zeichen die du wirklich ersetzen _musst_, ", &, < und > sind, da dies die einzigen Zeichen sind die in einem Parameterwert eine besondere Bedeutung haben sollten. Weitere Zeichen wie komische Umlaute äöü und andere Sonderzeichen _solltest_ du ersetzen, kannst es aber auch sein lassen, wenn du im HTML-Head den richtigen Zeichensatz angegeben hast und einfach mal hoffst dass der Client damit klarkommt.
        Ich hab mir aber grad sagen lassen, dass man Parameterwerte auch in einfache Anfühungszeichen einschliessen kann, und dann muss man die einfachen Anführungszeichen logischerweise auch maskieren (kann aber dafür die doppelten Anführungszeichen in Ruhe lassen). Soweit ich das in SelfHTML sehen kann, gibt es keine benannte Entitity für einfache Anführungszeichen, du müsstest sie also durch &#39; darstellen. Da würde ich dann doch raten, lieber immer nur doppelte Anführungszeichen zu nehmen, das wird übersichtlicher.

        hm.. aber ich würde es doch so machen (ohne gegen deine angaben zu verstossen

        Ja, auch sehr gut möglich. Weil es solche Wege immer gibt, braucht man eigentlich selten mehr als zwei Ebenen ineinander verschachtelte Strings.

        document.writln("'Wer da?' \ "Ich bin's & wer bist du?" ");

        Vorsicht hier, das geht so ^^^^^^ nicht.

        so bevor du anfängst die fehler zu zählen,du hattest mich richtig verstanden, es sind definierte variable mit werten
        die variablen werden genau 2 zeilen über der oben gezeigten script zeile definiert und mit einem wert versehen, wenn ich alert(x1) mache sagt er mir braf den wert, aber wenn ich das wie du sagst einfach so da reinschreibe [infoein(x1,y1,z1)] dann sind sie plötzlich undefiniert ...

        Ja, du musst hier drauf achten, wann welcher Code wo ausgeführt wird. Das alert() wird sofort ausgeführt und gibt dir daher den richtigen Wert zurück. Der Code, den du in den onMouseOver-Parameter geschrieben hast, wird jedoch erst onMouseOver, also erst beim Überfahren mit der Maus ausgeführt. Bis dahin kann mit den Variablen noch eine Menge passieren, aber das ist hier wahrscheinlich nicht das Problem, sondern wenn du den Code der die Variablen definiert (Funktionsparameter?) und den HTML-Code schreibt in einer Funktion ausführst, dann wird der Code
        infoein(x1,x2,x3);
        vor allem auch in einem anderen Variablenscope ausgeführt. Die Variablen sind dann nur in der Funktion definiert und später, wenn die Maus drüber fährt und die Funktion beendet ist, ist von diesen Variablen nix mehr übrig.

        2 Lösungsmöglichkeiten:
        1. Du verwendest globale Variablen, das wird zwar häufig (zu recht) als unschön angesehen, ist aber am einfachsten. Dazu musst du einfach vorher die Variablen x1, x2 und x3 als global definieren und bist im Prinzip fertig. Codebeispiel

        <script language="javascript" type="text/javascript">
        var x1,x2,x3;

        function huhu()
        {
         // Hier werden die Variablen mit Werten belegt
         x1="1"; x2="2"; x3="3";
         document.writeln("<a href="#" onMouseOver="infoein(x1,x2,x3);">foobar</a>");
        }
        </script>

        Dann wird der HTML-Code   <a href="#" onMouseOver="infoein(x1,x2,x2)">foobar</a>   ins Fenster geschrieben und wenn die Maus über den Link fährt, sind die 3 Variablen immer noch definiert und alles geht prima. Nachteil: Du kannst nicht einfach innerhalb der Funktion schreiben

        x1="4";
        document.writeln("<a href="#" onMouseOver="infoein(x1,x2,x3);">ein Link mit anderen Parametern</a>");

        2. Du schreibst den Wert der Variablen zum Zeitpunkt des Funktionsaufrufes in das Fenster und musst dann dementsprechend Anfüührungszeichen verwenden. Das ist das was du machen willst.
        Codebeispiel:

        <script language="javascript" type="text/javascript">
        function huhu()
        {
         // Hier werden die Variablen definiert und mit Werten belegt
         var x1="1", x2="2", x3="3";
         document.writeln("<a href="#" onMouseOver="infoein('"+x1+"','"+x2+"','"+x3+"');">baz</a>");
        }
        </script>

        Vorteil: Das kannst du sooft du willst mit unterschiedlichen Werten machen. Nachteil: Das geht evt. schief, wenn der Variablenwert ein spezielles HTML-Zeichen ("&<>) enthält. Ausserdem klappt das nicht mit Objekten.
        Das Problem mit den HTML-Zeichen kannst du ganz einfach lösen, indem du diese Zeichen ersetzt. Ich weiss gar nicht, ob JavaScript schon eine fertige Funktion dafür hat, in PHP ist jedenfalls htmlentities() dein Freund (und das meine ich wirklich so, wenn du einfach alle Benutzereingaben vor das Ausgabe durch htmlentities laufen lasst, hast du kaum noch Probleme mit bösen Benutzereingaben). Eine mögliche Implementation in JavaScript ist

        function htmlentities(string)
        {
         return string.replace(/&/,"&").replace(/"/,""").replace(/</,"<").replace(/>/,">");
        }

        Hoffe geholfen zu haben

        --
        Henryk Plötz
        Grüße von der Ostsee

        1. Moin

          Was schreibst du in den HTML-Code, wenn du   'Wer da?' \ "Ich bin's & wer bist du?"   (das soll ein String sein) nach dem Überfahren mit der Maus (onMouseOver) nach 10 Sekunden (setTimeout) mit document.writeln() ausschreiben willst?

          <div onMouseOver="window.setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"> hier Maus drüber.</div>
          so in etwa?

          Leider nicht ganz. Mal vom Anfang ausgehen:
          'Wer da?' \  "Ich bin's & wer bist du?"
          wäre der auszugebende HTML-Code.

          Jetzt fällst du aber in die Grube selbst rein, die du ausgegraben hast. ;)

          Originaltext, wie er im Browser stehen soll:
          'Wer da?' \ "Ich bin's & wer bist du?"

          Das muß mit HTML-Entities so geschrieben werden:
          'Wer da?' \ "Ich bin's & wer bist du?"

          Das &-Zeichen wird IMMER als Entity geschrieben, genauso wie doppelte Anführungszeichen. Alles andere ist ein Fehler, da das "&" ja eine Entity einleitet, aber "& " einfach keine Entity ist: Leerzeichen-Entity gibts nicht, und das Semikolon fehlt. Fehlertolerante Browser erzeugen dann dummerweise das simple Und-Zeichen.

          Weiter im Text: Ausgabe in document.write:
          document.write("'Wer da?' \ "Ich bin's & wer bist du?"");

          Keine doppelten Anführungszeichen im HTML-Text, also keine Escape-Zeichen dafür. Der Backslash muß aber escaped werden.

          Und jetzt als setTimeout:
          setTimeout('document.write("'Wer da?' \\ "Ich bin's & wer bist du?"");',10000);

          Durch die Wahl der einfachen Anführungszeichen als Stringbegrenzer(eine gute Idee, wenn man Javascript in mouseover packt) müssen alle einfachen Anführungszeichen escaped werden, und natürlich die Backslashes.

          Und das ganze ins Mouseover:
          onmouseover="setTimeout('document.write("'Wer da?' \\ &quot;Ich bin's &amp; wer bist du?&quot;");',10000);"

          Da Attributwerte auch mit Entities gepflastert werden müssen, werden die &-Zeichen und die "-Zeichen als Entity geschrieben. Die &-Zeichen von schon bestehenden " und & werden dadurch etwas unkonventionell aussehend irgendwie auch "verdoppelt".

          Immerhin ist deine Lösung nur durch die verhunzte ;) erste Umsetzung von String nach HTML falsch. :)

          - Sven Rautenberg

          1. also merken kann ich mir das mit sicherheit nicht länger als einen tag, so ein durcheinander....

            aber ich hoffe mal dieser eintrag bleibt im archiev, damit ich mir das wieder anschaun kann wenn ich es brauche.

            also danke nochmal :)

          2. Moin

            Jetzt fällst du aber in die Grube selbst rein, die du ausgegraben hast. ;)

            Ich grabe grundsätzlich keine Gruben, das ist viel zu viel Arbeit :-)

            'Wer da?' \ "Ich bin's & wer bist du?"

            Das muß mit HTML-Entities so geschrieben werden:
            'Wer da?' \ "Ich bin's & wer bist du?"

            Dazu kann ich nur ein entschiedenes "Auslegungssache" erwidern. Also http://selfhtml.teamone.de/html/allgemein/zeichen.htm#html_eigene liest sich in der Tat so, als _müsste_ man doppelte Anführungszeichen maskieren. Auf http://www.w3.org/TR/html4/charset.html#h-5.3.2 wird für <, > und & gesagt, dass man die benannten Entities benutzen sollte, für " wird jedoch bloss gesagt, dass manche Autoren (du zum Beispiel :) die Entitity benutzen.
            Ich würde das so interpretieren, dass man es nicht muss. Und das ergibt auch Sinn: Man maskiert einfach auf jeder Ebene die Zeichen die eventuell für den Parser eine Sonderbedeutung haben, wenn man diese Sonderbedeutung nicht will. < leitet im HTML-Fliesstext ein Tag ein, und > schliesst es, & beginnt die Notation einer Entitity, aber " hat überhaupt keine Bedeutung (oder sollte ich mich da irren?).

            Fazit: Ich bin dafür dass meine Lösung richtig ist, hast du Gegendokumente?

            --
            Henryk Plötz
            Grüße von der Ostsee

        2. Leider nicht ganz. Mal vom Anfang ausgehen:

          hab mir so viel mühe gegeben :((

          setTimeout('document.writeln("'Wer da?' \\ \"Ich bin's & wer bist du?\"")',10000);
          und das in einen HTML-Parameter zu schreiben ist dann reine Routine: alle speziellen HTML-Zeichen, also in diesem Fall das doppelte Anführungszeichen und das Kaufmannsund müssen geschützt werden:
          onMouseOver="setTimeout('document.writeln("'Wer da?' \\ \"Ich bin's &amp; wer bist du?\"")',10000);"
          fertsch!

          Bei deinem Versuch
          onMouseOver="setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"
          ist zumindest das hier ^^ falsch, denn in HTML-Parametern werden die Zeichen nicht durch voranstellen eines \ escaped, sondern durch umwandeln in eine HTML-Entitity.

          hm.. aber ich würde es doch so machen (ohne gegen deine a

        3. hm... ist die übertragung abgebrochen, also noch ein versuch =/

          Bei deinem Versuch
          onMouseOver="setTimeout("document.writeln(\"'wer da?'\"ich bin's & wer bist du?\"\")",10000)"
          ist zumindest das hier ^^ falsch, denn in HTML-Parametern werden die Zeichen nicht durch voranstellen eines \ escaped, sondern durch umwandeln in eine HTML-Entitity.

          hm.. aber ich würde es doch so machen (ohne gegen deine angaben zu verstossen

          Ja, auch sehr gut möglich. Weil es solche Wege immer gibt, braucht man eigentlich selten mehr als zwei Ebenen ineinander verschachtelte Strings.

          wenigsten improvisieren kann ich :)

          document.writln("'Wer da?' \ "Ich bin's & wer bist du?" ");

          Vorsicht hier, das geht so ^^^^^^ nicht.

          naja wie schon gesagt, diese zeichen wie " usw wandelt mein editor um, deswegen habe ich keine erfährung mit sowas...

          Ja, du musst hier drauf achten, wann welcher Code wo ausgeführt wird. Das alert() wird sofort ausgeführt und gibt dir daher den richtigen Wert zurück. Der Code, den du in den onMouseOver-Parameter geschrieben hast, wird jedoch erst onMouseOver, also erst beim Überfahren mit der Maus ausgeführt. Bis dahin kann mit den Variablen noch eine Menge passieren, aber das ist hier wahrscheinlich nicht das Problem, sondern wenn du den Code der die Variablen definiert (Funktionsparameter?) und den HTML-Code schreibt in einer Funktion ausführst, dann wird der Code
          infoein(x1,x2,x3);
          vor allem auch in einem anderen Variablenscope ausgeführt. Die Variablen sind dann nur in der Funktion definiert und später, wenn die Maus drüber fährt und die Funktion beendet ist, ist von diesen Variablen nix mehr übrig.

          AHHHH! also ich glaube daran wäre ich noch verzweifelt, aber jetzt erscheint es mir vollkommen logisch.

          1. Du verwendest globale Variablen,

          geht nicht.

          1. Du schreibst den Wert der Variablen zum Zeitpunkt des Funktionsaufrufes in das Fenster und musst dann dementsprechend Anfüührungszeichen verwenden. Das ist das was du machen willst.
            Codebeispiel:

          <script language="javascript" type="text/javascript">
          function huhu()
          {
          // Hier werden die Variablen definiert und mit Werten belegt
          var x1="1", x2="2", x3="3";
          document.writeln("<a href="#" onMouseOver="infoein('"+x1+"','"+x2+"','"+x3+"');">baz</a>");
          }
          </script>

          hey! super idee! darauf wäre ich nie gekommen, wollte schon den code so umschreiben das die variablen erst nachinfoein() declariert werden
          nachteil wäre ca doppelt so viele zeilen für die selbe function

          Nachteil: Das geht evt. schief, wenn der Variablenwert ein spezielles HTML-Zeichen ("&<>) enthält. Ausserdem klappt das nicht mit Objekten.
          nachteil gilt hier nicht da meine variablen keine benutzer daten sind, sondern entweder berechnete zahlen oder fertige strings

          function htmlentities(string)
          {
          return string.replace(/&/,"&").replace(/"/,""").replace(/</,"<").replace(/>/,">");
          }

          <!-- abschreib -->

          Hoffe geholfen zu haben

          jo vielen dank  besonders zum letzten teil, das hat mich enorm weiter gebracht :)))

          Henryk Plötz

          -RB-