tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
888
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von scadoXus
    scadoXus scadoXus ist offline Rookie
    Registriert seit
    Mar 2004
    Ort
    Bremen
    Beiträge
    6
    Hallo

    Leider hakts bei mir im Moment total
    Und zwar hab ich eine Textdatei die folgendermaßen aufgebaut ist:

    Cypher 3 27 0 0 20
    snodo 66 11 0 0 12
    Mandrick 2 9 1 0 5
    ... usw.

    Das Auslesen an sich bereitet auch keine Probleme, aber das Sortieren nach den Nicknames. Ich hab keine Ahnung, welches die richtige Methode ist. Mit ksort hab ich es wenigstens geschafft, die ersten beiden "Spalten" zu sortieren. Die Ausführungen auf http://de.php.net/ haben mich eher noch mehr verwirrt :/

    PHP-Code:
    <?php      
    $data 
    file("list.txt");   
    foreach(
    $data as $line)   {       
    list(
    $nick,$gewonnen,$verloren,$abgebrochen,$unentschieden,$revanche) = explode(" ",$line); 
      
    $bla[$nick] = trim($gewonnen);
    }
    ksort($bla);
    foreach (
    $bla as $nick => $gewonnen){      
    echo 
    "<tr>";      
    echo 
    "<td>$nick</td>";      
    echo 
    "<td>".$gewonnen."</td>";
    echo 
    "</tr>";
    }

     
    ?>
    Wie funktiert das mit der ganzen "Tabelle"? Für einen Denkanstoß wäre ich sehr dankbar.

    mfg,
    scadoXus
     

  2. #2
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Code gibt's von mir wie so oft nicht. Mit der Funktion usort() ist Dein Vorhaben auf elegante Art möglich. Für die Sortier-Regeln wird dabei an usort() eine eigene Funktion übergeben. Einfach mal durchlesen, probieren und auf Deinen Fall umschreiben.

    snuu
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  3. #3
    Avatar von scadoXus
    scadoXus scadoXus ist offline Rookie
    Registriert seit
    Mar 2004
    Ort
    Bremen
    Beiträge
    6
    Hallo

    Dankeschön, hat soweit nun super geklappt.
    Das einzige Problem ist nun, dass es bei der Groß- und Kleinschreibung hakt. Gibts einen einfachen Weg, dieses Problem zu lösen? Die Ausgabe soll wieder den Einträgen der Liste entsprechen, also wieder die dort angegebene Schreibweise beinhalten.

    Wäre dankbar, wenn mir da nochmal jemand einen Denkanstoß geben könnte.


    scadoXus
     

  4. #4
    Registriert seit
    Aug 2002
    Ort
    Hessen
    Beiträge
    693
    Sorry, ich verstehe dein Problem jetzt nicht? Was stimmt denn nicht?
    Vielleicht könntest du auch mal den Code, den du aktuell verwendest, posten.
     
    "... the KKK took my baby away ..."

  5. #5
    Avatar von scadoXus
    scadoXus scadoXus ist offline Rookie
    Registriert seit
    Mar 2004
    Ort
    Bremen
    Beiträge
    6
    Hallo,

    also hier ist der Code.. und nicht die Hände über den Kopf zusammenschlagen, weil er vermutlich voller Anfängerfehler ist.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    
    [php]<?php
     
     
    function sortbynick($a, $b) 
    { 
      list($nick,$gewonnen,$verloren,$abgebrochen,$unentschieden,$revanche) = explode(" ", $a[0]); 
      $name1 = $nick; 
     
      list($nick,$gewonnen,$verloren,$abgebrochen,$unentschieden,$revanche) = explode(" ", $b[0]); 
      $name2 = $nick; 
     
     
      if ($name1==$name2) return 0; 
      else return ($name1>$name2)? 1: -1; 
    } 
     
     
    $stats = "list1.txt"; 
    $inhalt = file($stats); 
     
     
    // jede zeile durchlaufen 
    foreach ($inhalt as $zeile) { 
      $eintrag[] = explode(" ", $zeile); 
    } 
     
    // sortieren 
    usort($eintrag, "sortbynick"); 
     
    // ausgabe 
    foreach ($eintrag as $e) { 
     
     
        echo "<tr>";
        echo "<td>".$e[0]."</td>";
        echo "<td>".$e[1]."</td>";
        echo "<td>".$e[2]."</td>";
        echo "<td>".$e[3]."</td>";
        echo "<td>".$e[4]."</td>";
        echo "<td>".$e[5]."</td>";
        echo "</tr>";
      
    }
     
     ?>
    [/php]

    Das Ergebnis wäre dann dieses hier:
    http://www.scadoxus.de/test/bla.php
    Zwar alphabetisch sortiert.. aber leider auch nach Groß- und Kleinschreibung. So war es nicht unbedingt gedacht


    scadoXus
     

  6. #6
    Registriert seit
    Aug 2002
    Ort
    Hessen
    Beiträge
    693
    //EDIT:

    Ok, hab die Lösung (hab wieder viel zu kompliziert gedacht):

    Ändere deine Funktion folgendermaßen, dann klappts:
    PHP-Code:
    function sortbynick($a$b)
    {
        list(
    $nick,$gewonnen,$verloren,$abgebrochen,$unentschieden,$revanche) = explode(" "$a[0]); 
        
    $name1 $nick;

        list(
    $nick,$gewonnen,$verloren,$abgebrochen,$unentschieden,$revanche) = explode(" "$b[0]);
        
    $name2 $nick;
        if (
    strtolower($name1) == strtolower($name2)) {
            return 
    0
        } else {
            return (
    strtolower($name1) > strtolower($name2)) ? :  -1;
        }

    Geändert von ludz (07.05.04 um 16:59 Uhr)
     
    "... the KKK took my baby away ..."

  7. #7
    Avatar von scadoXus
    scadoXus scadoXus ist offline Rookie
    Registriert seit
    Mar 2004
    Ort
    Bremen
    Beiträge
    6
    Super Ein RIESENGROSSES Dankeschön!

    Klappt einwandfrei


    scadoXus
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 14.04.10, 11:57
  2. Antworten: 3
    Letzter Beitrag: 10.12.08, 12:01
  3. Inhalt einer Textdatei sortieren
    Von d4kine im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 07.01.07, 23:49
  4. sortieren in textdatei
    Von karlo16 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 04.06.06, 19:48
  5. Textdatei oder Textfeld ordnen/sortieren....
    Von [K-DOG] im Forum Visual Basic 6.0
    Antworten: 9
    Letzter Beitrag: 07.01.02, 00:05