Archiv verlassen und diese Seite im Standarddesign anzeigen : Neues Text Problem
Meisterpz 24-08-2005, 05:35 Moin Leute
Ich spiele da ein Spiel welches sonnensysteme hat diese sonnensysteme sehen etwa so aus:
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.
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?
davidovich 24-08-2005, 07:17 Hallo Meisterpz,
Wenn du die textdatei folgendermassen aufbaust:
1;?;;Klasse M;;
2;?;.TKOD.;Sony;BanditFox1;
...
16;?;?.TKOD.;NR2;Karl0 (iu);
könntest du einfach folgendes machen:
<?php
$data = file('pfad/zur/datei.txt');
foreach ($data as $zeile) {
list($nr, $tf, $allianz, $planet, $spieler) = explode(';', $zeile);
}
?>
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...
Meisterpz 24-08-2005, 15:23 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
sind die Spalten Tab-getrennt? Wenn ja dann kannst du "\t" als Trennzeichen in explode verwenden.
Meisterpz 24-08-2005, 16:08 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
Meisterpz 24-08-2005, 16:43 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
onemorenerd 24-08-2005, 16:47 str_replace() akzeptiert auch Arrays, also versuchs mal so:
$data = str_replace(array('Nr','TF','Allianz','Planet','Spieler','[S]'), '', $data);
Du solltest bei 0 (!!!) anfangen zu zählen.
Meisterpz 25-08-2005, 02:23 ich versuche gerade den text...
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
$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
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
|
|