martins256 Posted December 4, 2005 Report Share Posted December 4, 2005 (edited) mani uztrauc tas, lai shii lapa pilniibaa atveertos, buutu vajadziigas 30 h. Taapeec varbuut juus vareetu pateikt, ko te vareetu aizvietot, paarveidot, lai lapa atveertos kaut bishku aatraak. <?php set_time_limit(99999999999); $c = -1; while ($c <= 338): $c++; $a=file('KONTI.dat'); $b=explode(' ', $a[$c]); $lietotaajs = $b[0]; $kontanr = substr("$b[1]",0,16); $bankaskodsnolietotaajanr = substr("$b[1]",0,4); echo "<BR>" . $lietotaajs . $kontanr; $d = -1; while ($d <= 100): // te jaabuut 9998 $d++; $e=file('NAUDA.dat'); $f=explode(' ', $e[$d]); $kontanrnonaudas = $f[0]; $dariijumasumma = $f[1]; $dariijumaveidsnonaudas = substr("$f[2]",0,1); //echo $kontanrnonaudas . $dariijumasumma . $dariijumaveidsnonaudas; echo "<BR>"; if ($kontanrnonaudas == $kontanr){ echo "<BR>atrasts :D"; $i = -1; while($i <= 70): $i++; $g=file('PLUSMIN.dat'); // reku reku reku reku reku reku reku reku $h=explode(' ', $g[$i]); $bankaskodsnoplusm = $h[0]; $dariijumaveidsnoplusm = $h[1]; $atlaidesprocnoplusm = $h[2]; $maksaparapkalpnoplusm = $h[3]; echo "<BR>"; echo $bankaskodsnoplusm . $dariijumaveidsnoplusm . $atlaidesprocnoplusm . $maksaparapkalpnoplusm; echo "<BR>"; echo $dariijumaveidsnoplusm . $dariijumaveidsnonaudas; echo "<BR>"; echo "<BR>"; echo $bankaskodsnoplusm . $bankaskodsnolietotaajanr; echo "<BR>"; echo "<BR>"; if (($dariijumaveidsnoplusm == $dariijumaveidsnonaudas) && ($bankaskodsnoplusm == $bankaskodsnolietotaajanr)){ echo "<BR>" . $lietotaajs; ############################## ##sheit jaabuut tai formulai## ############################## } endwhile; } endwhile; endwhile; ?> Edited December 4, 2005 by martins256 Link to comment Share on other sites More sharing options...
hmnc Posted December 4, 2005 Report Share Posted December 4, 2005 paskaidro ideju tam visam pasākumam Link to comment Share on other sites More sharing options...
bubu Posted December 4, 2005 Report Share Posted December 4, 2005 Nevajag katreiz ciklā failus lasīt ar file() fju. Bet gan nolasi vienreiz sākumā un pēc tam daries ciklā lasot no atmiņas. Link to comment Share on other sites More sharing options...
Delfins Posted December 5, 2005 Report Share Posted December 5, 2005 (edited) $e=file('NAUDA.dat'); tas arī nevajadzīgi izpildās katru reizi... pieļauju, ka tur ir tranzakcijas un aizņem īpaši daudz laika nolasīt lielo failu... $accountsArr = file('KONTI.dat'); $accountsCount = count($accountsArr); $transactionsArr = file('NAUDA.dat'); $transactionsCount = count($transactionsArr); for ( $aIdx=0; $aIdx<$accountsCount; $aIdx++ ) { for ( $tIdx=0; $tIdx<$transactionsCount; $tIdx++ ) { ..... } } Edited December 5, 2005 by Delfins Link to comment Share on other sites More sharing options...
Delfins Posted December 5, 2005 Report Share Posted December 5, 2005 un vispār, te datu struktūras un glabāšanais veids `pārspēj` paši sevi... normāli izmantojot 3 tabulas iekš DB viss būt udaudz vienkāršāk, drošāk, ātrāk... Link to comment Share on other sites More sharing options...
martins256 Posted December 5, 2005 Author Report Share Posted December 5, 2005 tas ir uzdevums, un faili ir doti. bet ar ko buus aatraak ar while vai for ? Link to comment Share on other sites More sharing options...
Delfins Posted December 5, 2005 Report Share Posted December 5, 2005 ja iekšā ir INT mainīgais, tad pofig Tewv bremze iestājas pie katras iterācijas (3-pakāpju/līmeņu) faila atvēršanas un nolasīšanas 300 * 100 * 70 = 2.100.000 faila atvēršanas, tas nozīmē to, ka HDD un RAM tiks traucēts 2 miljonus reizes.. a varēja tikai 1 reizi ;) secinājumus izdari pats... Link to comment Share on other sites More sharing options...
Recommended Posts