Romero: Sortierung nach bestimmten Muster

Ich hab da wieder mal eine Frage an euch.

Ich bräuchte bei der Sortierung folgendes Muster:

E258_70426_000A_10s.nc
E258_70426_000A_10k.nc
E258_70426_000A_11k.nc
E258_70426_000A_12k.nc
E258_70426_000A_11b.nc
E258_70426_000A_22b.nc

Die Sortierung, wie man sie vom Computersystem her kennt, sie da wie folgt aus:

E258_70426_000A_10k.nc
E258_70426_000A_10s.nc
E258_70426_000A_11b.nc
E258_70426_000A_11k.nc
E258_70426_000A_12k.nc
E258_70426_000A_22b.nc

Das ist die ganz normale Sortierung laut dem Auszug aus meinem Script.

...  
			out.sort( sort );  
...  
			function sort( a, b )  
			{  
				var i;  
				a = a.n;  
				b = b.n;  
				for( i = 0; i < a.length; i++ )  
				{  
					if( !b[i] ) return 1;  
					if( a[i].length > b[i].length ) return 1;  
					if( a[i].length < b[i].length ) return -1;  
					if( a[i] > b[i] ) return 1;  
					if( a[i] < b[i] ) return -1;  
	                        }  
				return 0;  
  
			//--> Liste sortieren  
  
	                };

Wie also bekomme ich die Sortierung so hin, dass es nach dem folgenden Muster (siehe oben) aussieht. Habe dazu schon die Seiten zu sort() durchgelesen, habe aber nichts Passendes gefunden. Geht es über substr.( ??,??), so dass ich sage, dass er den kleinen Buchstaben als Kennung nehmen soll?

Bitte um Hilfe.

LG Romero

  1. Ich hab da wieder mal eine Frage an euch.

    Ich bräuchte bei der Sortierung folgendes Muster:

    E258_70426_000A_10s.nc
    E258_70426_000A_10k.nc
    E258_70426_000A_11k.nc
    E258_70426_000A_12k.nc
    E258_70426_000A_11b.nc
    E258_70426_000A_22b.nc

    Die Sortierung, wie man sie vom Computersystem her kennt, sie da wie folgt aus:

    E258_70426_000A_10k.nc
    E258_70426_000A_10s.nc
    E258_70426_000A_11b.nc
    E258_70426_000A_11k.nc
    E258_70426_000A_12k.nc
    E258_70426_000A_22b.nc

    Das ist die ganz normale Sortierung laut dem Auszug aus meinem Script.

    Genauso sortiert sort()

    Wie also bekomme ich die Sortierung so hin, dass es nach dem folgenden Muster (siehe oben) aussieht. Habe dazu schon die Seiten zu sort() durchgelesen, habe aber nichts Passendes gefunden. Geht es über substr.( ??,??), so dass ich sage, dass er den kleinen Buchstaben als Kennung nehmen soll?

    In dem du das Array einfach sortierst.

    var x = [  
    'E258_70426_000A_10s.nc',  
    'E258_70426_000A_10k.nc',  
    'E258_70426_000A_11k.nc',  
    'E258_70426_000A_12k.nc',  
    'E258_70426_000A_11b.nc',  
    'E258_70426_000A_22b.nc'  
    ];  
      
    alert(x.sort().join('\n'));  
      
    
    

    Struppi.

    1. @@Struppi:

      nuqneH

      Genauso sortiert sort()

      Genauso will Romero ja nicht sortiert haben. Gehe zurück zu „Ich bräuchte bei der Sortierung folgendes Muster“.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Genauso will Romero ja nicht sortiert haben. Gehe zurück zu „Ich bräuchte bei der Sortierung folgendes Muster“.

        Romero hat immer so ein Art sein Problem zu beschrieben, die mir schwer fällt. In dem Fall hab ich aber wohl das ganze etwas zu schnell gelesen. Vermutlich weil ich erst den soll Zustand beschrieben hätte und dann das was ich möchte. Vor allem hätte ich ein lauffähiges Beispiel gezeigt.

        OK, eine Lösung mit einer sort Funktion:

        var x = [  
        'E258_70426_000A_10s.nc',  
        'E258_70426_000A_10k.nc',  
        'E258_70426_000A_11k.nc',  
        'E258_70426_000A_12k.nc',  
        'E258_70426_000A_11b.nc',  
        'E258_70426_000A_22b.nc'  
        ];  
          
        x.sort(function(a, b) {  
        	var c1 = a.substr(18, 1);  
        	var c2 = b.substr(18, 1);  
        	return c1 > c2 ? 1 :  
        	c1 < c2 ? -1 :  
        	a < b ? 1 :  
        	a < b ? -1 :  
        	0;  
        	  
        });  
          
        alert(x.join('\n'));
        

        Struppi.

        1. OK, eine Lösung mit einer sort Funktion:

          mit einem kleinen Fehler:
           ~~~javascript var x = [
           'E258_70426_000A_10s.nc',
           'E258_70426_000A_10k.nc',
           'E258_70426_000A_11k.nc',
           'E258_70426_000A_12k.nc',
           'E258_70426_000A_11b.nc',
           'E258_70426_000A_22b.nc'
           ];

          x.sort(function(a, b) {
            var c1 = a.substr(18, 1);
            var c2 = b.substr(18, 1);
            return c1 > c2 ? 1 :
            c1 < c2 ? -1 :
            a > b ? 1 : // Hier war der falsche Operator
            a < b ? -1 :
            0;
           
           });

          alert(x.join('\n'));

            
            
          Struppi.
          
          1. @@Struppi:

            nuqneH

            x.sort(function(a, b) {
            var c1 = a.substr(18, 1);
            var c2 = b.substr(18, 1);
            return c1 > c2 ? 1 :
            c1 < c2 ? -1 :
            a > b ? 1 : // Hier war der falsche Operator
            a < b ? -1 :
            0;

            });

            Warum so kompliziert?

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. 			function sortieren( a , b )  
              			{  
                
              				if( a.substr(5, 10) > b.substr(5, 10) ) return 1;  
              				if( a.substr(5, 10) < b.substr(5, 10) ) return -1;  
                
              				if( a.substr(18, 2) < b.substr(18, 2) ) return 1;  
              				if( a.substr(18, 2) > b.substr(18, 2) ) return -1;  
                
              				if( a.substr(16, 2) > b.substr(16, 2) ) return 1;  
              				if( a.substr(16, 2) < b.substr(16, 2) ) return -1;  
                
              				return 0;  
                
              			};
              

              ich hab die lösung für mein problem gefunden.danke an alle, vorallem aber auch an dich struppi,hast mir die entsprechenden zeilen geliefert.

              lg romero

          2. OK, eine Lösung mit einer sort Funktion:

            mit einem kleinen Fehler:

            var x = [

            'E258_70426_000A_10s.nc',
            'E258_70426_000A_10k.nc',
            'E258_70426_000A_11k.nc',
            'E258_70426_000A_12k.nc',
            'E258_70426_000A_11b.nc',
            'E258_70426_000A_22b.nc'
            ];

            x.sort(function(a, b) {
            var c1 = a.substr(18, 1);
            var c2 = b.substr(18, 1);
            return c1 > c2 ? 1 :
            c1 < c2 ? -1 :
            a > b ? 1 : // Hier war der falsche Operator
            a < b ? -1 :
            0;

            });

            alert(x.join('\n'));

            
            >   
            >   
            > Struppi.  
              
            soweit hat es erstmal geklappt, vielen dank dafür.  
              
            aber bei einer liste die wie folgt aussieht,sortiert er alles nach den buchstaben,sprich so:  
              
            ausgangsdatei:  
              
            E258\_70426\_000A\_10k.nc  
            E258\_70426\_000A\_10s.nc  
            E258\_70426\_000A\_11b.nc  
            E258\_70426\_000A\_11k.nc  
            E258\_70426\_000A\_12k.nc  
            E258\_70426\_000A\_22b.nc  
            E258\_70427\_000B\_10s.nc  
            E258\_70427\_000B\_11k.nc  
            E258\_70427\_000B\_12k.nc  
            E258\_70427\_000B\_20b.nc  
            E258\_70428\_000A\_10k.nc  
            E258\_70428\_000A\_10s.nc  
            E258\_70428\_000A\_11b.nc  
            E258\_70428\_000A\_11k.nc  
            E258\_70428\_000A\_12k.nc  
            E258\_70428\_000A\_22b.nc  
              
            sortierung durch x.sort()  
              
            E258\_70426\_000A\_11b.nc  
            E258\_70426\_000A\_22b.nc  
            E258\_70427\_000B\_20b.nc  
            E258\_70428\_000A\_11b.nc  
            E258\_70428\_000A\_22b.nc  
              
            E258\_70426\_000A\_10k.nc  
            E258\_70426\_000A\_11k.nc  
            E258\_70426\_000A\_12k.nc  
            E258\_70427\_000B\_11k.nc  
            E258\_70427\_000B\_12k.nc  
            E258\_70428\_000A\_10k.nc  
            E258\_70428\_000A\_11k.nc  
            E258\_70428\_000A\_12k.nc  
              
            E258\_70426\_000A\_10s.nc  
            E258\_70427\_000B\_10s.nc  
            E258\_70428\_000A\_10s.nc  
              
              
            soll-sortierung:  
              
            E258\_70426\_000A\_10s.nc  
            E258\_70426\_000A\_10k.nc  
            E258\_70426\_000A\_11k.nc  
            E258\_70426\_000A\_12k.nc  
            E258\_70426\_000A\_11b.nc  
            E258\_70426\_000A\_22b.nc  
              
            E258\_70427\_000B\_10s.nc  
            E258\_70427\_000B\_11k.nc  
            E258\_70427\_000B\_12k.nc  
            E258\_70427\_000B\_20b.nc  
              
            E258\_70428\_000A\_10s.nc  
            E258\_70428\_000A\_10k.nc  
            E258\_70428\_000A\_11k.nc  
            E258\_70428\_000A\_12k.nc  
            E258\_70428\_000A\_11b.nc  
            E258\_70428\_000A\_22b.nc  
              
            lg romero
            
            1. Moin!

              soweit hat es erstmal geklappt, vielen dank dafür.
              aber bei einer liste die wie folgt aussieht,sortiert er alles nach den buchstaben,sprich so:
              ausgangsdatei:
              sortierung durch x.sort()
              soll-sortierung:

              Wieso mutest Du uns zu, dass wir die Sortiervorschrift (welche Dir vorlegen sollte, denn bei jedem Programm muss zuerst einmal feststehen, was es tun soll) aus den Beispielen erraten?

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix

            2. @@Romero:

              nuqneH

              soll-sortierung:

              Wird ja immer bunter. Würdest du bitte erstmal erklären, wie nun genau sortiert werden soll?

              Erst nach allem bis zum letzten '_' (E258_70426_000A_), dann abwärts nach dem Buchstaben hinter der letzten Zahl (s vor k vor b – gibt es da noch andere?), dann nach der lezten Zahl (10 vor 11 vor 12 usw.)?

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. Wird ja immer bunter. Würdest du bitte erstmal erklären, wie nun genau sortiert werden soll?

                Wie gesagt, das ist typisch für ihn.

                Aber er hat ja eigentlich alles bekommen, um es selbst zu lösen. Ich werd mich auf jeden Fall nicht jetzt hinsetzen und ihm noch eine Lösung schreiben.

                Struppi.

              2. @@Romero:

                nuqneH

                soll-sortierung:

                Wird ja immer bunter. Würdest du bitte erstmal erklären, wie nun genau sortiert werden soll?

                Erst nach allem bis zum letzten '_' (E258_70426_000A_), dann abwärts nach dem Buchstaben hinter der letzten Zahl (s vor k vor b – gibt es da noch andere?), dann nach der lezten Zahl (10 vor 11 vor 12 usw.)?

                Qapla'

                ja genau so sollte es sein.

                sorry das ich mich nicht deutlich genug ausgedrückt habe.

                @struppi,

                schön das du mich kennst, ich kenn dich nicht.
                ich habe leider nicht so viel ahnung wie du oder andere hier. mag sein, das meine beschreibungen manchmal etwas undurchschaubar sind,aber ich nehme das von dir mal als kritikpunkt und werde dran arbeiten um bessere lösungsvorschläge oder ansätze zu bekommen.

                ps: würde mich trotzdem über lösungsansätze freuen.

                lg romero

  2. Hallo,

    Ich bräuchte bei der Sortierung folgendes Muster:

    E258_70426_000A_10s.nc
    E258_70426_000A_10k.nc
    E258_70426_000A_11k.nc
    E258_70426_000A_12k.nc
    E258_70426_000A_11b.nc
    E258_70426_000A_22b.nc

    also zum Beispiel 's' vor 'k'? Da wirst du wohl kaum drumherum kommen, die sort-Methode von JS mit einer Callback-Funktion zu nutzen (siehe Beispiel in SELFHTML).

    Das Beispiel nutzt allerdings eine Trivialversion als Callback, die im Endeffekt die normale Sortierreihenfolge nicht verändert. Du müsstest stattdessen für jedes Zeichen, das bei der Sortierung berücksichtigt werden soll, eine Art Stellenwert speichern, und in der Callback-Funktion dann diesen Stellenwert angeben.

    Das nachfolgende Beispiel verwendet eine willkürliche Sortierfolge, bei der Vokale grundsätzlich vor Konsonanten sortiert werden:

    var sequence = "aeioubcdfghjklmnpqrstvwxyz";  
      
    function Callback(a,b)  
     { return (sequence.indexOf(a) - sequence.indexOf(b));  
     }  
      
    var demo = ["abc", "def", "rst", "opq", "uvw", "mno"];  
    demo.sort(Callback);
    

    Ergebnis: "abc", "opq", "uvw", "def", "mno", "rst"

    Wie also bekomme ich die Sortierung so hin, dass es nach dem folgenden Muster (siehe oben) aussieht.

    Wichtig ist, dass du dein Sortiermuster zunächst eindeutig beschreiben kannst. Und dann brauchst du ein Rechenverfahren für die Callback-Funktion, das abhängig von der gewünschten Sortierung zweier Einträge entweder 0 (a==b), oder -1 (a<b) oder +1 (a>b) herausbekommt. Anstatt -1 und +1 darf es auch jeder andere negative bzw. positive Wert sein.

    Habe dazu schon die Seiten zu sort() durchgelesen, habe aber nichts Passendes gefunden.

    Wie kann das sein?

    So long,
     Martin

    --
    Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
    Außer bei Microsoft. Da ist es umgekehrt.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi,

      Das nachfolgende Beispiel verwendet eine willkürliche Sortierfolge, bei der Vokale grundsätzlich vor Konsonanten sortiert werden:

      var sequence = "aeioubcdfghjklmnpqrstvwxyz";

      function Callback(a,b)
      { return (sequence.indexOf(a) - sequence.indexOf(b));
      }

      var demo = ["abc", "def", "rst", "opq", "uvw", "mno"];
      demo.sort(Callback);

      
      >   
      > Ergebnis: "abc", "opq", "uvw", "def", "mno", "rst"  
        
      kann es sein, dass ich da gestern einen ziemlichen Stuss verzapft habe? Hoffentlich merkt's keiner.  
        
      Ciao,  
       Martin  
      
      -- 
      Die letzten Worte der Challenger-Crew:  
      Lasst doch mal die Frau ans Steuer!  
        
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      
  3. @@Romero:

    nuqneH

      	out.sort( sort );  
    

    Ich glaube nicht, dass es eine gute Idee ist, die Funktion wie die Methode "sort" zu benennen. Sie kann auch durchaus anonym bleiben:

    out.sort(function (a, b) {});

    Geht es über substr.( ??,??), so dass ich sage, dass er den kleinen Buchstaben als Kennung nehmen soll?

    Ja, aber du nur ein Zeichen (das 18. von 0 beginnend) haben willst, tut es auch [ref:self812;javascript/objekte/string.htm#char_at@title=charAt](18).

    Wenn das 18. Zeichen von zwei Strings unterschiedlich ist, sortierst du nach ebendiesem in umgekehrter Reihenfolge (s vor k vor b). Wenn zwei Strings im 18. Zeichen übereinstimmen, sortierst du sie alphanumerisch:

    out.sort(function (a, b)  
    {  
      if (a.charAt(18) == b.charAt(18)) return (a > b);  
      else return (a.charAt(18) < b.charAt(18));  
    });
    

    Oder http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder@title=kürzer geschrieben:

    out.sort(function (a, b)  
    {  
      return (a.charAt(18) == b.charAt(18)) ? (a > b) : (a.charAt(18) < b.charAt(18));  
    });
    

    Zweimal a.charAt(18) und b.charAt(18) ist natürlich nicht elegant. Und auch bei Verwendung von [ref:self812;javascript/objekte/string.htm#char_code_at@title=charCodeAt]() und ||-Operator auch nicht nötig:

    out.sort(function (a, b)  
    {  
      return b.charCodeAt(18) - a.charCodeAt(18) || a > b;  
    });
    

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. <html>  
      <head>  
      	<title></title>  
      	<HTA:APPLICATION ID="xyzabc" APPLICATIONNAME="asgasd" SCROLL="yes" SINGLEINSTANCE="yes"/>  
        
      	<style type="text/css">  
      		* { font-family:courier new; font-size:14px; }  
      	</style>  
        
      	<script type="text/jscript">  
        
      		//-----------------------------  
      		function getCommandline()  
      		{  
      			var cmln = xyzabc.commandLine.replace(/ /g,"").split("-");  
      			if( cmln.length == 3 )  
      			{  
      				locations.infile_1  = cmln[1];  
      				locations.infile_2  = cmln[2];  
      			}  
                      };  
        
      		//-----------------------------  
      		var locations = {  
      			infile_1:	"c:/test/STL_A320_D080_OUT.txt",  
      			infile_2:	"c:/test/STL_A320_D080_IN.txt"  
                      };  
        
      		//-----------------------------  
      		function init()  
      		{  
      			var infile_1, infile_2;  
        
      			getCommandline();  
        
      			infile_1 = loadFile_1( locations.infile_1 ).replace(/\r\n/g,"\n").split("\n");  
      			infile_2 = loadFile_2( locations.infile_2 ).replace(/\r\n/g,"\n").split("\n");  
        
      			vergleich( infile_1 );  
        
      		}  
        
      		//-----------------------------------------------------------------------  
      		function vergleich( out )  
      		{  
      			out.sort( sortieren )  
        
      			function sortieren(a, b)  
      			{  
      				var i;  
      				a = out;  
      				b = out;  
      				for( i = 0; i < a.length; i++ )  
      				{  
        					if (a[i].charAt(18) == b[i].charAt(18)) return (a[i] > b[i]);  
        					else return (a[i].charAt(18) < b[i].charAt(18));  
      	                        }  
      			};  
        
        
      			for( var i = 0; i < out.length; i++ )  
      			{  
      				msg( out[i] + "<br>" );  
      			};  
        
      		}  
        
      		//-----------------------------------------------------------------------  
      		function loadFile_1( FileName_1 )  
      		{  
      			var fso,f1;  
      			var FileStr_1 = "";  
      			fso = new ActiveXObject("Scripting.Filesystemobject");  
        
      			if( fso.FileExists(FileName_1) )  
      			{  
      				f1 = fso.OpenTextFile(FileName_1, 1);  
      				if(f1.AtEndOfStream) msg("(!) Die Datei ist leer<br>", true); else FileStr_1 = f1.ReadAll();  
      				f1.close();  
      			}  
      			else { msg("(!) Datei nicht gefunden! --->" + FileName_1 + "<br>", true); }  
      			return FileStr_1;  
      		}  
        
      		//-----------------------------------------------------------------------  
      		function loadFile_2( FileName_2 )  
      		{  
      			var fso,f2;  
      			var FileStr_2 = "";  
      			fso = new ActiveXObject("Scripting.Filesystemobject");  
        
      			if( fso.FileExists(FileName_2) )  
      			{  
      				f2 = fso.OpenTextFile(FileName_2, 1);  
      				if(f2.AtEndOfStream) msg("(!) Die Datei ist leer<br>", true); else FileStr_2 = f2.ReadAll();  
      				f2.close();  
      			}  
      			else { msg("(!) Datei nicht gefunden! --->" + FileName_2 + "<br>", true); }  
      			return FileStr_2;  
      		}  
        
      		//-----------------------------  
      		function msg( s ) { document.getElementById("msgs").innerHTML += s; };  
        
      	</script>  
        
      </head>  
        
      <body onLoad="init()">  
        
      	<div id="msgs"></div>  
      </body>  
        
      </html>
      

      ich hab das ganze mal eingebunden. aber irgendwie sortiert er es nicht richtig. was mache ich falsch?

      infile_1 ist die einzulesende *.txt-datei, welche dann sortiert werden soll.
      out ist dann die auszugebende datei. aber wenn ich das script starte,bleibt die sortierung so, wie sie in der infile_1 abgespeichert ist.

      lg romero

      1. @@Romero:

        nuqneH

          	function sortieren(a, b)  
          	{  
          		var i;  
          		a = out;  
          		b = out;  
        

        Hier überschreibst du die als Parameter übergebenen Werte für a und b. Das dürfte kaum sinnvoll sein.

          		for( i = 0; i < a.length; i++ )  
          		{  
        

        Nein, in der Funktion musst du nur die beiden Werte a und b miteinander vergleichen, keine Schleife durchlaufen.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
  4. Moin!

    Mal quer gedacht:

    Was hindert Dich daran, den Buchstaben an Position 19(?) auszutauschen (a->z; b->y), die Daten "ganz normal" zu sortieren und dann wieder den Buchstabe zurück zu tauschen und auszugeben?

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. @@fastix®:

      nuqneH

      Mal quer gedacht:

      Wahrlich quer.

      Was hindert Dich daran, den Buchstaben an Position 19(?) auszutauschen (a->z; b->y), die Daten "ganz normal" zu sortieren und dann wieder den Buchstabe zurück zu tauschen und auszugeben?

      Warum sollte man seine Daten an die Sortierfunktion anpassen anstatt die Sortierfunktion an die Daten?

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Moin!

        Warum sollte man seine Daten an die Sortierfunktion anpassen anstatt die Sortierfunktion an die Daten?

        Weil die Sortierfunktion anzupassen möglicherweise ungleich aufwendiger ist?

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

        1. @@fastix®:

          nuqneH

          Warum sollte man seine Daten an die Sortierfunktion anpassen anstatt die Sortierfunktion an die Daten?

          Weil die Sortierfunktion anzupassen möglicherweise ungleich aufwendiger ist?

          Glaub ich nicht, ist ja ein Einzeiler.

          Und selbst wenn, ist es wohl keine gute Idee, seine Daten zu verfälschen oder zu kopieren, um sie zu verfälschen.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
  5. Moin!

    Nochmal quer gedacht:

    Muss es Javascript sein? Oder kann das auch serverseitig passieren? Das Unix/Linux-Programm sort kann jedenfalls in einer pipe nach mehrfachen Schlüsseln (auch durch Zeichenpositionen bestimmten) numerisch, alphabetisch (auch unter ignorierung von Groß- und Kleinschreibung) und revers sortieren.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Moin!

      Nochmal quer gedacht:

      Muss es Javascript sein? Oder kann das auch serverseitig passieren? Das Unix/Linux-Programm sort kann jedenfalls in einer pipe nach mehrfachen Schlüsseln (auch durch Zeichenpositionen bestimmten) numerisch, alphabetisch (auch unter ignorierung von Groß- und Kleinschreibung) und revers sortieren.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix

      sollte javascript sein, weil mein ganzer script auf js aufgebaut ist.

      1. Moin!

        Deiner anderen Nachricht nach läuft das lokal. Also kannst Du auch lokal Programme/Shellskripte ausführen und Javascript nur als Oberfläche verwenden.  An Deiner Stelle würde ich die CoreUtils für Windows mal runterladen, installieren (entpacken, und zwar so, dass diese wunderbaren Programme im Suchpfad liegen - optimal: %windir%), mir die Hilfe zu den Programmen anschauen.

        Ich persönlich empfehle diese leistungsstarken Programme immer wieder gerne. Hier sparen diese eine Menge Entwicklungszeit und sind zudem auch schneller als eine Umsetzung in Javascript.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix