Newsgroup: it.comp.www.php
Titolo: leggere un file saltando le righe?

Come faccio a leggere un file... saltando delle righe?
Perchè avrei bisogno di leggere in questo ciclo:
<?
$var=file('file.txt');
foreach ($var as $riga) {
echo '<TR class="t2">
<TD width=10%>'.substr($riga,0,8).'</TD>
<TD width=50%>'.substr($riga,8,40).'</TD>
<TD width=15%>'.substr($riga,48,15).'</TD>
<TD width=10%>'.'</TD>
<TD width=10%>'
Dopo questa ' vorrei mettere l'inizio della 2° riga.. ma se faccio 
($riga,63,3) non visualizza niente.. 

 Come faccio a leggere un file... saltando delle righe?
Cerca tra i vecchi post, se ne e' gia' parlato.
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

Manuel wrote:

continue; ?
-- 
www.iuz-lab.info

non riesco!!!
con continue non funziona... e non trovo niente sul web o nei post ke mi 
possa aiutare.. ho provato anke con seek ma nn sembra funzionare...
qualche suggerimento? 









Avrei risolto il problema delle righe 
così..


 


$var=file('file.txt');


for($i=0;$i<1;$i++) {


  for($a=1;$a<2;$a++) {


    for($v=2;$v<3;$v++) {


      
$var[$i]=explode("*",$var[$i]);


      
$var[$a]=explode("*",$var[$a]);


      
$var[$v]=explode("*",$var[$v]);


      echo '<TR 
class="t2">


      <TD 
width=10%>'.$var[$i][1].'</TD>


      <TD 
width=50%>'.$var[$i][2].'</TD>


      <TD 
width=15%>'.$var[$i][3].'</TD>


      <TD 
width=10%>
'.$var[$a][1].''.$var[$a][2].<'
/TD>


      <TD 
width=10%>'.$var[$v][1].''.$var[$v][2].'</TD>


      <TD 
width=5%>'.count($var[i]).'</TD>


      </TR>';


    }


  }


}


fclose($var);


?>


 


Ma mi chiedo... c'è la possibilità sapere in quante parti 
è stato suddiviso l'array con 
explode?



 suddiviso l'array con explode?
Prova la funzione count()

 suddiviso l'array con explode?
count()
-- 
www.iuz-lab.info





Grazie mille.. mi ereo dimenticato un $ ecco perchè 
non mi andava!


 


Ma con le operazioni matematiche non è possibile 
fare come ad esempio:


 


count($var[$i])/2


 


Mi da errore..



Mi sono arenato!!
echo '<TR class="t2">
          <TD width=10%>'.$var[$i][0].'</TD>
          <TD width=50%>'.$var[$i][1].'</TD>
          <TD width=15%>'.$var[$i][2].'</TD>
          <TD width=10%>
            <select name=ACQUISTO>
              for($j=0;$j<4;$j++) {
                <option value="">'.$j.'
                </option>
              }
            </select>
         </TD>
       </TR>';
Non mi visualizza il valore di $j come mai? 

Manuel wrote:

senti ora non sono molto in grado di ragionare (hard drunk mode enabled)..
postami un esempio del file txt e di un relativo risultato desiderato..
se ce la (l'ha?) fai entro un periodo [00:00-06:00] credo di farcela prima
delle 06:30..
-- 
www.iuz-lab.info





il fle.txt è:


 


705*PROVA*54
2*35,00*1*20,00
1*40,00


 


<?


$var=file('file.txt.');


for($i=0;$i<1;$i++) {


for($a=1;$a<2;$a++) {


for($v=2;$v<3;$v++) {


$var[$i]=explode("*",$var[$i]);            

$var[$i] contiene 705*PROVA*54


$var[$a]=explode("*",$var[$a]);          
$var[$a] 
contiene 2*35,00*1*20,00


$var[$v]=explode("*",$var[$v]);           
$var[$v] 
contiene 1*40,00


echo '<TR class="t2">


<TD 
width=10%>'.$var[$i][0].'</TD>    

705


<TD 
width=50%>'.$var[$i][1].'</TD>    

PROVA


<TD 
width=15%>'.$var[$i][2].'</TD>    

54


<TD width=10%>


<select name=PROVA>


for($j=0;$j<4;$j++) {


<option value="">'.$var[$a][$j].' 
- '.$var[$a][$j+1].'        
Con 
questo ciclo dovrei visualizzare  2 - 35,00 e nell0altra option 1 - 
20,00


</option>    
                
                
                
              
ma non 
mi prende il $j+1 ma per d+ non mi prende il valore di j...


</select>                                                                  
l'unica 
cosa che mi fa pensare è che gli atri for sono al di fuori del 
echo..


</TD>   
                                                                   
questo 
è dentro.., e inoltre $j+1 non funziona? devo per forza 
associarla


                    
                                                           
ad 
un'altra variabile?



Manuel wrote:

ma con 1*40,00 cosa dovrei fare?
per il file.txt che hai postato puoi fare un esempio dell'output
desiderato..
-- 
www.iuz-lab.info

 
beh io ho assunto questo metodo..
int*string*int
int*float..
int*float || * // da tralasciare fino al prossimo match con il primo
pattern..
(codice di esempio, non sicuro e senza gestione errori)
$lines = file('./file.txt');
while(list($id, $value) = each($lines)){
  if(preg_match('/^[0-9]*\*.*\*[0-9]*$/i', $value)){
    list($code, $name, $num) = explode('*', $value);
    echo "<tr class='t2'>
            <td width='10%'>$code</td>
            <td width='50%'>$name</td>
            <td width='15%'>$num</td>
            <td width='10%'>";
    $values = each($lines);   
    $values = explode('*', $values['value']);
    echo "\n<select name='PROVA'>\n";
    for($i = 0; $values[$i]; $i += 2)
      echo "<option value=''>{$values[$i]} - {$values[$i+1]}</option>\n";
    echo "</select>\n</td>\n</tr>\n";
  }
}
-- 
www.iuz-lab.info