20. september 2005 - 23:35Der er
14 kommentarer og 1 løsning
Parsing af tekstfil
Hejsa,
Først er her lige et exempel på den tekstfil jeg skal have parset: ------- tekst fil begynd ------ 487587391 SWG.Starsider.auctioner Vendor Sale Complete TIMESTAMP: 1126729113 Vendor: Looted and special made furniture has sold A Camera to Malichai for 5000 credits. The sale took place at Tatooine, on Tatooine. ------- tekst fil slut ------
Umiddelbart er det jo meget simpelt, jeg skal bruge enkelte data fra teksten.
som resultat skal jeg have en variable med en brugbar dato (taget fra timestamp), navnet på tingen solgt (i dette exempel "A Camera", prisen ("5000") samt navnet på personen det købte det ("Malichai").
Jeg er ret sikkert på at det er er forholdsvis nemt, jeg kan sagtens se strukturen i det, men mig og Ereg er ikke gode venner, og da jeg prøvede at konverete timestamp fik jeg underlige datoer :)
dmdisco: Det er den ikke.. jeg forestillede mig noget med at bruge ereg på at finde det. Fx. prisen ligger ALTID mellem "for" og "credits" navnet altid mellem "to" og "for" og navnet på tingen der er solgt ligger altid mellem "sold" og "to". med det information burde man kunne bruge ereg, desværre magter jeg altså ikke at fatte noget af ereg syntax.
kjulius: Kigger lige på de links du har givet når jeg er lidt mere vågen.
kønt er det ikke men det virker (og jeg er ikke stærk nok i regex endnu)
<pre> <?php $var = "487587391 SWG.Starsider.auctioner Vendor Sale Complete TIMESTAMP: 1126729113 Vendor: Looted and special made furniture has sold A Camera to Malichai for 5000 credits. The sale took place at Tatooine, on Tatooine."; $ts = explode("TIMESTAMP: ", $var); print_r($ts); $ts = explode("\n", $ts[1]); $item = explode("has sold ", $ts[1]); $item = explode(" to ", $item[1]); $name = explode(" for ", $item[1]); print $item[0]."\n"; print $name[0]."\n"; print $ts[0]."\n"; ?></pre>
hmm det virkede fint for mig har du skrevet det som det står her?
$var = "487587391 SWG.Starsider.auctioner Vendor Sale Complete TIMESTAMP: 1126729113 Vendor: Looted and special made furniture has sold A Camera to Malichai for 5000 credits. The sale took place at Tatooine, on Tatooine.";
Ja, tror der måske ligger en forskel i at have teksten i en variable, og så som jeg gør, henter den ind fra en fil, betyder ikke noget - explode virker, scriptet virker, jeg er glad - hvis jeg bare kunne få lov at give dig dine point hehe, men der sker nada når jeg trykker accepter.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.