Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [JavaScript]: Eine HTML-Tabelle mit QuickSort sortieren (https://www.delphipraxis.net/49328-%5Bjavascript%5D-eine-html-tabelle-mit-quicksort-sortieren.html)

yankee 9. Jul 2005 00:15


[JavaScript]: Eine HTML-Tabelle mit QuickSort sortieren
 
So, ich habe lange dran geknobelt und jetzt stelle ich euch den algo vor, der eine stinknormale statische HTML-Tabelle sortiert. Ich habe im Internet SEITENLANGE qts gefunden, die angebliche das gleiche tun... Naja, für alle, die mal vor dem gleichen Problem stehen:
Code:
function sortnumtable(tblid,spalte,lo,hi)
{
  var temp ="";
  var i=lo;
  var j=hi;
  with(document.getElementById(tblid))
  {
    if (hi ==-1) hi =rows.length-1;
    var x=parseFloat(rows[Math.floor((hi+lo)/2)+1].cells[spalte].innerHTML);
    while(i<=j)
    {
      while(parseFloat(rows[i].cells[spalte].innerHTML)<x) i++;
      while(parseFloat(rows[j].cells[spalte].innerHTML)>x) j--;
      if (i<=j)
      {
        for(var z=0; z<rows[1].cells.length; z++)
        {
          temp =rows[i].cells[z].innerHTML;
          rows[i].cells[z].innerHTML =rows[j].cells[z].innerHTML;
          rows[j].cells[z].innerHTML =temp;
        }
        i++; j--;
      }
    }
    if (lo<j) sortnumtable(tblid,spalte,lo,j);
    if (i<hi) sortnumtable(tblid,spalte,i,hi);
  }
}
Ein Beispiel:
Code:
<table id="mytable">
  <tr>
    <td>Artikel</td>
    <td>Preis in Euro/kg</td>
  </tr>
  <tr>
    <td>Kartoffeln</td>
    <td>1.50</td>
  </tr>
  <tr>
    <td>Birnen</td>
    <td>1.1</td>
  </tr>
</table>
[url="javascript:void(sortnumtable('mytable',1,1,-1));"]Sortieren[/url]
Die Tabelle kann so natürlich um ein westenliches vergrößert werden. Eine 170*8 größe Tabelle wird bei mir in ca. 0,5 Sekunden sortiert...
Zum Aufruf: sortnumtable('mytable',1,1,-1)
mytable ist einfach nur die id der table
1 (die erste) ist die Spalte, nach der sortiert werden soll. Also hier ist das die Preisspalte.
1 (die zweite) ist die untere Begrentzung, von dem zu sortierenden Feld. Das ist ein array, der mit 0 beginnt. Aber die Überschriften wollen wir mal nicht mitsortieren ;-)
-1 (letzter parameter). Dies gibt die obere Begrentzung an. Wenn der Wert -1 ist, nimmt der algo einfach die komplette Tabelle.

So, das ist zwar eigenlich ein Delphiforum, aber ihr seit einfach die größten. Ich war schon in mehreren Webdesignforen und ihr seid auch auf diesem Gebiet einfach die Besten und daher halte ich es für angebracht, webdesignsachen hier zu posten ;-)

DP-Maintenance 10. Jul 2005 14:55

DP-Maintenance
 
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Programmieren allgemein" verschoben.
Die CodeLibrary ist nur für Delphi-Sourcen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz