Borsti: !!! only4Pofis !!! - Wer kennt sich mit strings aus.

Leute ich habe ein ernsthaftes Problem. Ich erkläre ersteinmal mein Vorhabe.

Ich habe eine Textarea, welche ich nutze um werte einzulesen. Diese Werte sollen mit <enter> [also einen '\n'] getrennt werden. Dies kann dann wie folgt aussehen:

1. Wert\n
2. Wert\n
.
.
.

Das ist auch alles so in ordnung. das funktioniert ja auch ohne probleme. ich kann im weiteren verlauf meines skriptes nun dieses feld auslesen und in eine variable lesen. OK, das klappt auch. Nun trenne ich dieses Werte anhand diesen '\n' - das mache ich mit:

var Werte = Eingabe.split("\n");

Ein Wunder es klappt, ich habe nun ein Array, welches alle meine Werte, aufgelistet in die einzelnen Felder, hat. Was ja auch so gewollt ist. Nun sagt mir meine Kenntniss, dieses '\n' [nach welchen ich ja getrennt habe] ist nicht mehr in den einzelnen Elementen des Strings vorhanden. Meine Felder MÜSSTEN also wie folgt aussehen.

Werte[0] = "1. Wert"
Werte[1] = "2. Wert"
.
.
.

Ok, wenn ich diese Werte mit einem alert ausgeben, dann mag das sogar auch stimmen. Dort ist kein zeilenumbruch mehr zu sehen, doch sobald ich die werte in eine neue textarea-umgebung einbinden möchte... Tata, ist überall dort wo ich das '\n' hatte ein Zeilen umbruch, was aber nicht sein soll! ...

kann mir da irgendjemand helfen?
mfg Borsti

PS: beim link kann man das problem selber testen!!!

    1. sorry, das wuste ich nicht! ...

      1. sorry, das wuste ich nicht! ...

        </faq/#Q-24> 3.

  1. hi cowboy,

    Nun trenne ich dieses Werte anhand diesen '\n' - das mache ich mit: var Werte = Eingabe.split("\n");

    Ein Wunder es klappt, ich habe nun ein Array, welches alle meine Werte, aufgelistet in die einzelnen Felder, hat. Was ja auch so gewollt ist. Nun sagt mir meine Kenntniss, dieses '\n' [nach welchen ich ja getrennt habe] ist nicht mehr in den einzelnen Elementen des Strings vorhanden. Meine Felder MÜSSTEN also wie folgt aussehen.

    nicht ganuz korrekt, spit() teil nämlich nur an der begrenzung, entfernt diese aber nicht, demnach hast du korrekterweise

    Werte[0] = "1. Wert\n"
     Werte[1] = "2. Wert\n"
     .
     .
     .

    sobald ich die werte in eine neue textarea-umgebung einbinden möchte... Tata, ist überall dort wo ich das '\n' hatte ein Zeilen umbruch, was aber nicht sein soll! ...

    doch, hast du ja nicht weggemacht.

    kann mir da irgendjemand helfen?

    deine werte müssten dann noch mal
    var neuerWert = Werte[x].substring(0,Werte[x].length-2);
    durchlaufen, denke ich zumindest so auf die schnelle. probier es wenigstens mal aus.

    PS: beim link kann man das problem selber testen!!!

    geht bei mir nicht.

    mfg

    1. deine werte müssten dann noch mal
      var neuerWert = Werte[x].substring(0,Werte[x].length-2);
      durchlaufen, denke ich zumindest so auf die schnelle. probier es wenigstens mal aus.

      nunja, ich habe diese idee auch schon gehabt, aber es klappt nicht! :-(( # fällt jemand noch etwas anderes ein? .. gibt es denn nicht soetwas wie in php? dort gibt es einen Befehl, welchen ich benutzen kann, um soetwas direkt herauszufiltern! ich verstehe nicht, warum es nicht gehen soll! ...

      das der link bei dir nicht geht, liegt daran, das ich den falschen link genommen habe! ...der richtige link ist jetzt dabei! ...

      1. naja, hast du vielleicht etwas mehr quelltext? ich würde es gern mal in aktion sehen.

        das der link bei dir nicht geht, liegt daran, das ich den falschen link genommen habe! ...der richtige link ist jetzt dabei! ...

        ich sehe nur eine wirklich fette botschaft, an wen man sich wenden kann, aber die hilft hier wohl nicht. übersehe ich was?

        mfg

        1. function aufz() {
           var AddTxt = "";
           var Eingabe = Aufz.document.Eingabe.liste.value;

          if (Eingabe.search(/\n/) > 0) {
            var Werte = Eingabe.split("\n");

          //Steht schon was im Textfeld?!?
            Textbox = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value");

          //AddText - zusammenschustern
            if (!(Textbox == '')) {
             if (mode == 4) AddTxt += "\r\n<ol>\n";  //sortierte Aufz
             else    AddTxt += "\r\n<ul>\n";  //unsortierte Aufz
            } else {
             if (mode == 4) AddTxt += "<ol>\n";   //sortierte Aufz
             else    AddTxt += "<ul>\n";   //unsortierte Aufz
            }

          for (var i=0; i <= (Werte.length-1); i++) {
             var Wert2 = Werte[i].substring(0,Werte[i].length);
             AddTxt += "  <li>"+Wert2+"</li>\n";  //Einzelne Werte hinzufügen
            }

          if (mode == 4) AddTxt += "</ol>\n";   //sortierte Aufz
            else    AddTxt += "</ul>\n";   //unsortierte Aufz
            //AddText - zusammengeschustert*/
           }
           else {
            var Werte = Eingabe;

          //Steht schon was im Textfeld?!?
            Textbox = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value");

          //AddText - zusammenschustern
            if (!(Textbox == '')) {
             if (mode == 4) AddTxt += "\r\n<ol>\n";  //sortierte Aufz
             else    AddTxt += "\r\n<ul>\n";  //unsortierte Aufz
            } else {
             if (mode == 4) AddTxt += "<ol>\n";   //sortierte Aufz
             else    AddTxt += "<ul>\n";   //unsortierte Aufz
            }

          AddTxt += "  <li>"+Werte+"</li>\n";    //Einzelne Werte hinzufügen

          if (mode == 4) AddTxt += "</ol>\n";   //sortierte Aufz
            else    AddTxt += "</ul>\n";   //unsortierte Aufz
            //AddText - zusammengeschustert
           }

          alert (AddTxt);
           AddText(AddTxt);
           window.Aufz.close();
          }

          1. unter http://www.thueringenweb.de/php/seba/ kann man sich das ganze mal anschauen! ..

            zuerst klickt man auf das textareafeld, um diesen dann einen focus zu geben! ... dann klickt man im oberen frame auf den (un)sortierten Listen - button und legt los!

            der quelltext für die js datei sieht wie folgt aus (komplettes Listing)

            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //                                         Toolbox V1.0         //scripted by Borsti //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // //Wichtige Punkte für die Benutzung: //Es können nur ausgewählte Felder angewählt werden. Dies müssen folgende Tag-Parameter besitzen: // //   onClick  = "parent.toolbox.storeCaret(this);" //   onKeyUp  = "parent.toolbox.storeCaret(this);" //   onChange = "parent.toolbox.storeCaret(this);" //   onFocus  = "parent.toolbox.fieldChange(this.name, this.form.name, [Parameter]);" // //   [Parameter] - hier kann angegeben werden, welche funktion ausgeschaltet ist // //        b :: Fett-Tag     NICHT möglich //        k :: Kursiv Tag     NICHT möglich //        u :: Unterstrichen Tag   NICHT möglich //        s :: (Un-)Sort Aufz. Tag   NICHT möglich //        f :: Schriftarten Tag   NICHT möglich //        c :: Farb Tag     NICHT möglich //        l :: Link Tag     NICHT möglich // //        Beispiel: //        parent.toolbox.fieldChange(this.name,'sfl'); // //        Die Parameter sind freiwillig, und können in beliebiger reihenfolge //        verwendet werden. // //Mögliche Felder sind <INPUT> und <TEXTAREA> - Felder // //Containervariablen

            var NameFrame = 'textframe';  //Wie heisst der Frame auf dem Zugegriffen werden soll var Freiraum  = ' ';    //Geben Sie hier das/die Zeichen an was zwischen den beiden Tag's          //stehen soll, wenn kein markierter Wert übergeben wird

            //--------------------------------------------------------------------------------------------------------- //                          !!! Ab hier keine Variablen mehr ändern !!! //--------------------------------------------------------------------------------------------------------- var name, Form, mode, Aufz;     //Globale Variablen var lastfield = 'no';    //Variable für das letzte Feld was benutzt wurde (no = undefined) var Para      = '';    //verwaltung der Parameter

            //hier wird die Ausgewertet welches Format ausgeführt werden soll function format(typ) {  if (lastfield != 'no') {   typ=parseInt(typ);   switch(typ) {   case 1:    // Fett    if (!(Para.search(/b/) != -1)) {     AddTxt="<b>%TEXT%</b>";     AddText(AddTxt);    }    break;   case 2:    // Kursiv    if (!(Para.search(/k/) != -1)) {     AddTxt="<i>%TEXT%</i>";     AddText(AddTxt);    }    break;   case 3:    // Unterstrichen    if (!(Para.search(/u/) != -1)) {     AddTxt="<u>%TEXT%</u>";     AddText(AddTxt);    }    break;   case 4:    //Sortierte Aufzählung    if (!(Para.search(/s/) != -1)) {     mode = 4;     Aufz = window.open("aufz.htm","Aufz","width=350,height=230,left=0,top=0");    }    break;   case 5:    //Unsortierte Aufzählung    if (!(Para.search(/s/) != -1)) {     mode = 5;     Aufz = window.open("aufz.htm","Aufz","width=350,height=230,left=0,top=0");    }    break;   case 6:    //Arial    if (!(Para.search(/f/) != -1)) {     AddTxt="<font face="Arial, Helvetica, sans-serif">%TEXT%</font>";     AddText(AddTxt);    }    break;   case 7:    //Times New Roman    if (!(Para.search(/f/) != -1)) {     AddTxt="<font face="Times New Roman, Times, serif">%TEXT%</font>";     AddText(AddTxt);    }    break;   case 8:    //Courier New    if (!(Para.search(/f/) != -1)) {     AddTxt="<font face="Courier New, Courier, mono">%TEXT%</font>";     AddText(AddTxt);    }    break;   case 9:    //Georgia    if (!(Para.search(/f/) != -1)) {     AddTxt="<font face="Georgia, Times New Roman, Times, serif">%TEXT%</font>";     AddText(AddTxt);    }    break;   case 10:    //Verdana    if (!(Para.search(/f/) != -1)) {     AddTxt="<font face="Verdana, Arial, Helvetica, sans-serif">%TEXT%</font>";     AddText(AddTxt);    }    break;   case 11:    //Geneva    if (!(Para.search(/f/) != -1)) {     AddTxt="<font face="Geneva, Arial, Helvetica, san-serif">%TEXT%</font>";     AddText(AddTxt);    }    break;   }  } }

            //Hier wird die Position & der marktierte Bereich verarbeitet function storeCaret(text) {  if (text.createTextRange) {   text.caretPos = parent.textframe.document.selection.createRange().duplicate();  } }

            function AddText(text) {  //Hat das Feld einen Parameter für den Markierten Text zurückgegeben (also ist es ein IE)  //dann ersetzte den markierten Text mit dem in der von der Variable "text"  if (eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".createTextRange") &&   eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".caretPos"))  {   var caretPos = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".caretPos");   caretPos.text = text.replace(/%TEXT%/,caretPos.text);  }

            //Ansonsten hänge den Text von "text" an die letzte Position an  //Mit der oben definierten Variable "Freiraum" kann man einstellen ob ein Zeichen zwischen dem  //Angehängten folgen soll! Z.Bsp: Ein Freizeichen oder ein Semikolon oder was auch immer!  else   eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value += text.replace(/%TEXT%/,""+Freiraum+"")");

            //Focus wieder auf das letzt feld setzten  eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".focus(caretPos)") }

            //hier kann eingestellt werden, was passiert, wenn das Feld gewechselt wird. Hier wird auch angegeben, //welches Feld zuletzt den Focus hatte. Hierbei ist zu beachten , das hier nur Felder zählen welche //dafür deklariert wurden. [Sie Head-Info für genaue Details] function fieldChange(name, form, parameter) {  var PreLastField;

            //Variableninitialisierung  PreLastField = lastfield;  lastfield    = name;  Form   = form;

            if (parameter) Para = parameter;  else   Para = '_';

            if (lastfield != PreLastField) {   //hier kann etwas beliebiges ausgeführt werden, was einmalig beim wechsel in ein neues Feld   //passieren soll   var i=0; //Diesen Befehl nicht löschen, da sonst ein Fehler wegen der if-Schleife kommt  } }

            function aufz() {  var AddTxt = "";  var Eingabe = Aufz.document.Eingabe.liste.value;

            if (Eingabe.search(/\n/) > 0) {   var Werte = Eingabe.split("\n");

            //Steht schon was im Textfeld?!?   Textbox = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value");

            //AddText - zusammenschustern   if (!(Textbox == '')) {    if (mode == 4) AddTxt += "\r\n<ol>\n";  //sortierte Aufz    else    AddTxt += "\r\n<ul>\n";  //unsortierte Aufz   } else {    if (mode == 4) AddTxt += "<ol>\n";   //sortierte Aufz    else    AddTxt += "<ul>\n";   //unsortierte Aufz   }

            for (var i=0; i <= (Werte.length-1); i++) {    var Wert2 = Werte[i].substring(0,Werte[i].length);    AddTxt += "  <li>"+Wert2+"</li>\n";  //Einzelne Werte hinzufügen   }

            if (mode == 4) AddTxt += "</ol>\n";   //sortierte Aufz   else    AddTxt += "</ul>\n";   //unsortierte Aufz   //AddText - zusammengeschustert*/  }  else {   var Werte = Eingabe;

            //Steht schon was im Textfeld?!?   Textbox = eval("parent."+NameFrame+".document.forms[""+Form+""]."+lastfield+".value");

            //AddText - zusammenschustern   if (!(Textbox == '')) {    if (mode == 4) AddTxt += "\r\n<ol>\n";  //sortierte Aufz    else    AddTxt += "\r\n<ul>\n";  //unsortierte Aufz   } else {    if (mode == 4) AddTxt += "<ol>\n";   //sortierte Aufz    else    AddTxt += "<ul>\n";   //unsortierte Aufz   }

            AddTxt += "  <li>"+Werte+"</li>\n";    //Einzelne Werte hinzufügen

            if (mode == 4) AddTxt += "</ol>\n";   //sortierte Aufz   else    AddTxt += "</ul>\n";   //unsortierte Aufz   //AddText - zusammengeschustert  }

            alert (AddTxt);  AddText(AddTxt);  window.Aufz.close(); }