Ergebnis 1 bis 5 von 5

Thema: Zeilenumbruch anbestimmter stelle

  1. #1
    Azubi(ne)
    Registriert seit
    09.04.2007
    Beiträge
    70
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Zeilenumbruch anbestimmter stelle

    Hallo Leute

    Ich lade mir eine csv mittels AJAX in ein Array.
    Das Array möchte ich dann mittels ActiveX abspeichern. Funktioniert auch alles, bis auf den Zeilenumbruch beim speichern.


    Wenn ich ein existierendes Array speichere funktioniert es wie es soll.
    nur bei einem Array, welches ich aus einer Datei gefüllt habe funktioniert es nicht. Da hab ich immer zwei zeilenumbruche drinne.

    Hier ist der Code mit dem ich die Werte aus der Datei in das Array speichere
    Code:
          function laden()
          {
            var dateiname = document.formular.datei.value;
            if (window.XMLHttpRequest) {  //Morzilla, Opera ...
              http = new XMLHttpRequest();
            }
            else if (window.ActiveXObject) { //Internet Explorer
              http = new ActiveXObject("Microsoft.XMLHTTP");
            }
            if (http != null) {
              http.open("GET", dateiname, true);
              http.onreadystatechange = array;
              http.send(null);
            }
          }
    
          //Dateiinahlt wird in ein Array abgespeichert
          function array() {
          var dateiinhalt = new Array();
            if (http.readyState == 4) {
              var buffer = http.responseText;
              var columnarray = buffer.split("\n");
              var arrName = document.formular.selection.value;
              if(isNaN(columnarray[0]))
                columnarray.splice(0,1);
              for &#40;var i = 0; i < columnarray.length; i++&#41; &#123;
    	   dateiinhalt&#91;i&#93;= new Array&#40;&#41;;
                rowarray = columnarray&#91;i&#93;.split&#40;";"&#41;;
                for &#40;var y = 0; y < rowarray.length; y++&#41; &#123;
                  dateiinhalt&#91;i&#93;&#91;y&#93;=rowarray&#91;y&#93;;
                &#125;
              &#125;
              //Array entsprechend der Auswahl füllen
              switch&#40;arrName&#41;&#123;
                case "lager"&#58;
                  for&#40;var x = 0; x<dateiinhalt.length-1; x++&#41;&#123;
                    parent.frames.lager&#91;x&#93;=dateiinhalt&#91;x&#93;;
                  &#125;
                  break;
    	   default&#58;
    	     alert&#40;"Beim füllen des Arrays ist ein Fehler aufgetreten."&#41;;
                  break;
              &#125;
            &#125;
          &#125;
    Und so sieh das Array aus wenn lager mit alert ausgebe
    Code:
    1,Eingangslager,Eingangslager,8,0.25,-12.7,3.14,5.5,0.3,-12,8,3.14
    ,2,Ausgangslager,Ausgangslager,-3.5,0.25,12.7,0,-2,0.3,12.8,0
    Gebe ich das Array lager aus, ohne das eine Datei eingelesen wurde, stehn die Einträge in einer Zeile.
    Wie bekomme ich das beim einlesen hin das die Einträge ohne Zeilenumbruch abgespeichert werden.

    Meine Funktion zum speichern sieht folgender massen aus
    Code:
          //Funktion zum speichern der JavaScript-Datein &#40;JavaScript-Array speichern&#41;
          function speichern_JS&#40;&#41;&#123;
            var fso=new ActiveXObject&#40;"scripting.filesystemobject"&#41;;
            var trenner=",";
            //Var zum Umspeichern des Arrays
            var arrayinhalt = new Array&#40;&#41;;
            //Datei öffen zum Schreiben &#40;2 == ForWriting,&#41;
            var datei=fso.OpenTextFile&#40;file_JS,2,true&#41;;
            var line ="var " + arrayname + " = new Array &#40;";
            //Arrayinhalt, des Ausgewählten Array in Hilfsarray kopieren
            switch&#40;arrayname&#41;&#123;
              case "lager"&#58;
                for&#40;var x = 0; x<parent.frames.lager.length; x++&#41;&#123;
    //              arrayinhalt.length=0;
                  arrayinhalt&#91;x&#93;=parent.frames.lager&#91;x&#93;;
                &#125;
                break;
            &#125;
            //Arrayinhalt in Variable kopieren
            for&#40;var n=0;n<arrayinhalt.length;n++&#41;&#123;
              if &#40;arrayinhalt&#91;n&#93;&#91;0&#93; != ""&#41;&#123;
                line+="&#91;\"" + arrayinhalt&#91;n&#93;&#91;0&#93;;
                for&#40;var m = 1; m < arrayinhalt&#91;n&#93;.length; m++&#41; &#123;
                  line+="\"" + trenner + "\""+ arrayinhalt&#91;n&#93;&#91;m&#93;;
                &#125;
                if &#40;n<&#40;arrayinhalt.length-1&#41;&#41;&#123;
    //              line=line + "\"&#93;,\r\n";  //hier wird vor und nach &#93; ein Zeilenumbruch eingefügt
                  line+="\"&#93;,";  //hier wird vor der &#93; ein Zeilenumbruch eingefügt 
                &#125;
                else&#123;
    //              line+="\"&#93;\r\n";  //hier wird vor und nach &#93; ein Zeilenumbruch eingefügt
                  line+="\"&#93;";  //hier wird vor der &#93; ein Zeilenumbruch eingefügt 
                &#125;
              &#125;
            &#125;
            line+="&#41;;";
            alert&#40;"line " + line&#41;;
            datei.WriteLine&#40;line&#41;;
            datei.close&#40;&#41;;
          &#125;
    Hätte gerne das nur nach der Eckigen-Klammer ein Zeilenumbruch eingefügt wird.

    Denke das ich beim einlesen der Datei ändern müsste. aber wie ist mir unkalr.

    Hoffe ihr konnt mir helfen

    Jessica
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hmm ich sehe leider nirgends einen funktions aufruf, kann von daher das ganze script nicht vollends nachvollziehen.

    aber erstmal die interessanteste frage: was hast du genau vor und was soll das "scripting.filesystemobject" ... in wie fern wird es benötigt. Das soltle doch eh nur im ie gehen?!

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    09.04.2007
    Beiträge
    70
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo

    ich mochte die Daten aus der Datei nach Bedarf in ein Array laden.
    Falls keine Datei geladen wurde, sollen die bereits im Array vorhandenen Daten verwendet werden.
    Das Array soll dann weiter verarbeitet werden.
    Wenn der Anwender den IE benutzt kann der den Verweis speichern aufrufen andernfalls nicht.

    Die Fnktion zum laden befindet sich in einer HTML-Datei und die Funktion speichern befindet sich in einer HTML-Datei.
    Hab eine HTML-Datei mit 2 Frames. In einem ist das Menü und in dem anderem werden die je nach betätigtem menü aufgerufen HTML-Datein angezeigt.

    Funktionsaufruf und der gleichen hab ich weggelassen.
    Da ich eigentlich nur den bei der funktion laden() beim laden des Arrays Zeilenumbruche vermeiden möche? Das ist das einzige Problem was bei dieser ganzen Thematik nicht rictig funktioniert.

    Glaube nicht das es jetzt verständlicher ist
    Hoffe ihr könnt mir aber trotztem Helfen

    Wie gesagt, ich möchte bei der Funktion laden() keine Zeilenumbruche haben oder gibt es irgend eine möglichkeit bei der Funktion speichern() zu überprüfen ob ein Zeilenumbruch vorhanden ist.
    Oder ich lese die Datei nochmals ein und entferne die ungewollten Zeilenumbrüche, aber wie mache ich das
    Hoff ihr habt eine Lösung, hab schon vieles probiert aber nichts klappt

    Jessica

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    naja ich sehe bloß nirgends dir verabeitung der rückgabe deines ajax objektes..

    aber du kannst einfach auf die rückgabe
    var string = string.replace(/\n|\r/g, "");

    dann werden dir alle zeilenbrüche entfernt.

  5. #5
    Jessica_Heinze
    Gast

    Standard

    Hallo

    Die Verarbeitung ist eine extra funktion, die sich wiederum in einer seperaten Datei befindet. Das speichern soll ja auch funktionieren wenn er keine Verarbeitung getan hat, deswegen hab ich die da nicht mit drinne.

    Danke für den Tip mit replace.
    Hab jetzt in der Function array noch eine for-schleife über die Länge von Columnarray eingebaut. Dort wird jetzt für jeden Eintrag von columnarray überprüft ob ein Zeilenumbruch vorhanden ist. wenn das der Fall ist wird dieser entfernt. Und erst dann generiere ich mir das Array dateiinhalt.

    Funktioniert jetzt so wie ich es mir gedacht habe
    Danknochmals für den Tip mit Replace, wäre ich sonst nicht drauf gekommen

    Jessica

Ähnliche Themen

  1. Zeilenumbruch
    Von goodn8 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 11.11.2007, 20:14
  2. Zeilenumbruch
    Von Adam2000 im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 09.10.2006, 08:59
  3. Zeilenumbruch in alt-Tag
    Von Marco25 im Forum HTML & CSS Forum
    Antworten: 6
    Letzter Beitrag: 15.12.2005, 22:24
  4. Zeilenumbruch
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 15.11.2005, 16:29
  5. zeilenumbruch verhindern
    Von Matze im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 16.06.2004, 15:29

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •