keiG Posted May 7, 2010 Report Share Posted May 7, 2010 (edited) Tātad no faila nolasu infu un ievietoju mainīgajā. Failā ir vairākas rindas "423" "niks ar atstarpēm" "vēl2" "vēl3" "aa" "vv" 22 88 "223" "BEZatstarpēm" "vēl2" "vēl3" "aa" "vv" 22 88 $data = file_get_contents("data.txt"); list($id, $nick, $dir, $dist, $pre, $max, $str, $s) = explode(' ', $data); ar šo nenolasa pēdējos divus skaitļus un rodas problēmas ar nikiem kam ir atstarpes. P.S. fails tiek ģenerēts no citiem resursiem, bet ir pilnībā rediģējams. Edited May 7, 2010 by keiG Quote Link to comment Share on other sites More sharing options...
Леший Posted May 7, 2010 Report Share Posted May 7, 2010 (edited) Faila ģenerēšanas laikā starp vērtībam izmanto nevis atstarpi, bet tab character (\t). Tad vieglāk explodēt. Ja ģenerēšanu mainīt nevari, tad paeksperimentē ar preg_split(). Edited May 7, 2010 by Леший Quote Link to comment Share on other sites More sharing options...
keiG Posted May 7, 2010 Author Report Share Posted May 7, 2010 Vai tiešām nav tādas f-cijas, kas paņem visu no " līdz " . Par preg_split nav nemazākās saprašanas, bet protams eksperimentēt varu mēģināt. Quote Link to comment Share on other sites More sharing options...
mounkuls Posted May 7, 2010 Report Share Posted May 7, 2010 (edited) Ja nav saprašanas, vari jau kā delimiteri izmantot "atstarpe" un beidzamos divus skaitļus ($str un $s) explodēt ar atstarpi atsevišķi no pēdējās daļas. Edited May 7, 2010 by mounkuls Quote Link to comment Share on other sites More sharing options...
Pentiums Posted May 7, 2010 Report Share Posted May 7, 2010 @Леший Vaitad viņam tur tabi ir? Quote Link to comment Share on other sites More sharing options...
Леший Posted May 7, 2010 Report Share Posted May 7, 2010 Pentiums, kāpēc es rakstīju falia ģenerēšanas laikā? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 7, 2010 Report Share Posted May 7, 2010 Neiesaku lietotājvārdos pieļaut atstarpes! =) Quote Link to comment Share on other sites More sharing options...
Леший Posted May 7, 2010 Report Share Posted May 7, 2010 daGrevis, šis laikam ir Display name, tam var būt dajebkas, kaut ASCII art :D Quote Link to comment Share on other sites More sharing options...
keiG Posted May 7, 2010 Author Report Share Posted May 7, 2010 (edited) <?php $file = "longjumps.txt"; $i=1; $lines = file($file); foreach($lines as $line_num => $line){ $rinda[$i]=$line; $i++; }; $r=1; while($r<=$i-1){ $i2 = 0; $pdl1=0; $pdl2=1; $cnt=2; while($i2<=5){ $len = strlen($rinda[$r]); $pd1 = strpos($rinda[$r], '"', $pdl1); $pd2 = strpos($rinda[$r], '"', $pdl2); $pdlen = $pd2-$pd1; $lenc = $rinda[$r]-$pdlen+1; $ri = substr($rinda[$r],$pd1+1,$pdlen-1); $dati[$i2] = $ri; $rinda[$r] = str_replace($ri,"",$rinda[$r]); $rinda[$r] = str_replace('"" ',"",$rinda[$r],$cnt); $pieces = explode(" ", $rinda[$r]); $dati[7]=$pieces[0]; $dati[8]=$pieces[1]; $i2++; }; echo "Nick: ".$dati[1]; echo "<br/>Distance: "; if($dati[3]>="250"){echo "<font color='red'>";}else if($dati[3]>="245" && $dati[3]<"250"){echo "<font color='green'>";}else{echo "<font color='black'>";}; echo "<b>".$dati[3]."</b></font>"; echo "<br/>Direction: ".$dati[2]; echo "<br/>Prestrafe: ".$dati[4]; echo "<br/>Maxspeed: ".$dati[5]; echo "<br/>Strafes: ".$dati[7]; echo "<br/>Sync: ".$dati[8]."%"; echo "<br/>"; echo "<br/>"; $r++; }; Taisīju kā mācēju! Gan jau ka var optimizēt. "Paldies" ka iedrošinājāt man pašam ar to tikt galā :P Edited May 7, 2010 by keiG Quote Link to comment Share on other sites More sharing options...
marcis Posted May 7, 2010 Report Share Posted May 7, 2010 $lines = file("data.txt"); foreach($lines as $line){ $matches = array(); if(!preg_match('/^"(\d+)"\s"(.+)"\s"(.+)"\s"(.+)"\s"(.+)"\s"(.+)"\s(\d+)\s(\d+)$/U', trim($line), $matches)) continue; print_r($matches); echo 'bla bla bla'; } Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 7, 2010 Report Share Posted May 7, 2010 Tikai vizuāli apskatot... =D Smuki izskatās - iesācējs / profesionālis (atļaušos =))! =D Quote Link to comment Share on other sites More sharing options...
keiG Posted May 7, 2010 Author Report Share Posted May 7, 2010 Tikai vizuāli apskatot... =D Smuki izskatās - iesācējs / profesionālis (atļaušos =))! =D Izskaidro man ko tu ar to domāji? Es slikti saprotu tās milijons iekaviņas un simboliņus. Nesapratu ko tu gribi atļauties? Un Mārci ko tas kods ko rakstīji tieši dara? Man pilnīgi neko neparāda. Masīvs tukšs. Tikai tas echo blablabla. Bet jā kā jau teicu tiku ar to galā un viss ir kārtībā. Quote Link to comment Share on other sites More sharing options...
codez Posted May 8, 2010 Report Share Posted May 8, 2010 Tā ir tipiska CSV faila struktūra, tad kāpēc neizmantot tam paredzēto funkciju: http://php.net/manual/en/function.fgetcsv.php $handle = fopen('longjumps.txt', 'r'); while($row = fgetcsv($handle, 1000, ' ','"')){ print_r($row); echo '<br />'; } fclose($handle); Quote Link to comment Share on other sites More sharing options...
keiG Posted May 8, 2010 Author Report Share Posted May 8, 2010 (edited) Tā ir tipiska CSV faila struktūra, tad kāpēc neizmantot tam paredzēto funkciju: http://php.net/manual/en/function.fgetcsv.php Es "zinu" visas tipiskās struktūras un "visas" funkcijas. Bet beidzot kāds tiešām kaut ko ir palīdzējis! Liels paldies! Edited May 8, 2010 by keiG Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 9, 2010 Report Share Posted May 9, 2010 Izskaidro man ko tu ar to domāji? Es slikti saprotu tās milijons iekaviņas un simboliņus. Nesapratu ko tu gribi atļauties? Un Mārci ko tas kods ko rakstīji tieši dara? Man pilnīgi neko neparāda. Masīvs tukšs. Tikai tas echo blablabla. Bet jā kā jau teicu tiku ar to galā un viss ir kārtībā. Eh... Salīdzini pēc izmēriem savu kodu ar to, ko iedeva marcis. Pieleca?? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.