Neues Text Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Neues Text Problem

    Moin Leute

    Ich spiele da ein Spiel welches sonnensysteme hat diese sonnensysteme sehen etwa so aus:

    Code:
    Nr	TF	Allianz		Planet			Spieler [S] 
    1	�			Klasse M		 
    2	�	.TKOD.		Sony			Banditfox1 
    3	�	.TKOD.		Kleiner Punkt		Karl0 (iu) 
    4	�	TKOD²		Flieribud		Nightwalker (iu) 
    5	�			Klasse N		 
    6	�	.TKOD.		tetra			scerba 
    7	�	* CT³ *		Dumemap			Truble 
    8	�	* CT³ *		Wenauwu			Truble 
    9	�	* CT³ *		Areuma			Truble 
    10	�	.TKOD.		Tristat			scerba 
    11	�			Klasse P		 
    12	�	.TKOD.		Eeyore			Maggot2084 
    13	�	FotNR³		Doggy Style Planet	Jack-O 
    14	�	.TKOD.		NR1			Karl0 (iu) 
    15	�			Klasse N		  
    16	�	.TKOD.		NR2			Karl0 (iu)
    jetzt möchte ich die einzelnen zeilen in mehrere variablen schrieben, dazu habe ich das was man hier sieht verwendet nur kommt dabei nichts gute raus, obendrein wird die letzte die zeile 16 nicht mit ausgegeben, aber auch wenn die daten müssen besser formatiert werden, nur wie weiss ich leider nicht.

    PHP-Code:
       for ( $i 1$i 16$i++)
       {
          
    $n $i 1;
          
    preg_match_all('!'.$i.'(.*)'.$n.'!sU'$data$ausgabe);
          
    $text .= '<tr><td><pre>'.print_r($ausgabe[0],true).'</pre></td></tr>';
       } 
    wäre es möglich das mir jemand dabei helfen könnte?

  • #2
    Hallo Meisterpz,

    Wenn du die textdatei folgendermassen aufbaust:

    Code:
    1;?;;Klasse M;;
    2;?;.TKOD.;Sony;BanditFox1;
    ...	  
    16;?;?.TKOD.;NR2;Karl0 (iu);
    könntest du einfach folgendes machen:
    PHP-Code:
    <?php
    $data 
    file('pfad/zur/datei.txt');
    foreach (
    $data as $zeile) {
        list(
    $nr$tf$allianz$planet$spieler) = explode(';'$zeile);
    }
    ?>

    Forumregeln!

    Gute PHP-(tutorial-)Seiten

    Kommentar


    • #3
      for ( $i = 1; $i < 16; $i++)
      Deine Schlefe läuft auch nur 15 mal - also wunder dich nicht, das die letzte Zeile fehlt.

      i ist 15 wenn es kleiner als 16 ist, und da du bei 1 anfängst zu zählen...

      Kommentar


      • #4
        davidovich@
        Wenn du die textdatei folgendermassen aufbaust:
        Leider ist es mir nicht möglich diesen text vorher zuverändern, da ich diesen durch Alles markieren erhalte und da wäre es umständlich diesen text noch extra in einen text editor zubearbeiten.
        d.h. so wie er kommt bleibt er und soll so verarbeitet werden.

        und deshalb wird mir deine variante nicht weiter helfe denn die haben ich schon so in etwa probiert

        prego@
        Deine Schlefe läuft auch nur 15 mal - also wunder dich nicht, das die letzte Zeile fehlt.
        ja du hast recht ist mir aufgefallen aber wenn ich den wert auf 17 setze musst ich noch eine zeile hinzufügen, was ich auch gemacht habe und dann wird mir auch diese zeile ausgegeben, nur leider immernoch mit dem falschen ergebnis.

        Wichtig ist da bei das jede einzelne zeile ab der 1 in einen eigenen array oder in eine eingene variable geschrieben wird die ich dann wieder zerlegen kann um die einzelnen teile zu bekommen, aber da fällt mir gerade nichts ein

        Kommentar


        • #5
          sind die Spalten Tab-getrennt? Wenn ja dann kannst du "\t" als Trennzeichen in explode verwenden.

          Kommentar


          • #6
            bin mir da nicht ganz sicher ob das der fall ist ok nehmen wir mal an das es so ist, nur wie weise ich die einzelnen zeilen array's oder variablen zu, denn das was ich habe macht eigenartige sachen

            Kommentar


            • #7
              ok noch ne andere sache, habe das hier

              $data = str_replace("Nr", "", $data);
              $data = str_replace("TF", "", $data);
              $data = str_replace("Allianz", "", $data);
              $data = str_replace("Planet", "", $data);
              $data = str_replace("Spieler", "", $data);
              $data = str_replace("[S]", "", $data);

              würde das aber gerne in einem befehl haben

              Kommentar


              • #8
                str_replace() akzeptiert auch Arrays, also versuchs mal so:
                PHP-Code:
                $data str_replace(array('Nr','TF','Allianz','Planet','Spieler','[S]'), ''$data); 

                Kommentar


                • #9
                  Du solltest bei 0 (!!!) anfangen zu zählen.

                  Kommentar


                  • #10
                    ich versuche gerade den text...

                    Code:
                    1	�			Klasse M		 
                    2	�	.TKOD.		Sony			Banditfox1 
                    3	�	.TKOD.		Kleiner Punkt		Karl0 (iu) 
                    4	�	TKOD²		Flieribud		Nightwalker (iu) 
                    5	�			Klasse N		 
                    6	�	.TKOD.		tetra			scerba 
                    7	�	* CT³ *		Dumemap			Truble 
                    8	�	* CT³ *		Wenauwu			Truble 
                    9	�	* CT³ *		Areuma			Truble 
                    10	�	.TKOD.		Tristat			scerba 
                    11	�			Klasse P		 
                    12	�	.TKOD.		Eeyore			Maggot2084 
                    13	�	FotNR³		Doggy Style Planet	Jack-O 
                    14	�	.TKOD.		NR1			Karl0 (iu) 
                    15	�			Klasse N		  
                    16	�	.TKOD.		NR2			Karl0 (iu)
                    von den tab's zu befreien und ein Leerzeichen einzusetzen, aber ich versuche auch zur gleichen zeit einen zeilenumbruch in form von <br> einzubauen, nur wenn ich das eine mache geht das andere nicht mehr.

                    denn das \t+ nimmt die tab's weg aber wie setze ich dann das leerzeichen ein, drehe ich das um kann ich ein leerzeichen einsetzen aber keinen umbruch

                    PHP-Code:
                    $zeilen array_unique(preg_split('/\t+/'preg_replace("/\n+/""<br>"trim($data))));

                       foreach(
                    $zeilen as $keys)
                       {
                             
                    $text .= $keys;
                       } 
                    und das kommt dabei raus wenn es mit umbruch ist, was auch soweit richtig ist nur fehlen mir halt die leerzeichen

                    Code:
                    1
                    2.TKOD.SonyBanditfox1
                    3Kleiner PunktKarl0
                    4TKOD²FlieribudNightwalker
                    5
                    6tetrascerba
                    7* CT³ *DumemapTruble
                    8WenauwuTruble
                    9AreumaTruble
                    10Tristatscerba
                    11
                    12EeyoreMaggot2084
                    13FotNR³Doggy Style Jack-O
                    14NR1Karl0
                    15
                    16NR2Karl0

                    Kommentar

                    Lädt...
                    X