Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2007, 04:29
Avatar de dogduck
dogduck
 
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Almacenar campos de fichero en vector

Hola a todos. Ando atascado con el siguiente tema.
Deseo abrir un fichero leer sus lineas y almacenar los campos separados por ~ en un vector.
El fichero con extensión txt, tiene el siguiente formato:

Cita:
0~Cena de sábado~1134342001~-40
1~Compras supermercado~959983201~-100,2
2~Nómina trabajo~1117749601~1000.99
0~Regalo cumpleaños Alicia~1110236401~-199.66
Tengo el siguiente código, pero no hace lo que deseo

Código PHP:
<?PhP
require('monedero.php');



// implementamos el objeto mi_monedero en la clase cmonedero
    
$mi_monedero=new cmonedero();
    
//abrimos el fichero
    //establecemos el directorio de trabajo
    
chdir("C:\CursoPHP5\curso\Alumnos\xxxxxxxx\ud4\ud4");
    
$fichero="monedero.txt";
    
//abrimos monedero.txt como solo lectura y puntero al comienzo del fichero
    
$id_fichero= @fopen($fichero,"r")
                or die(
"<B>Error, El fichero \"$fichero\" no se ha podido
                        abrir.</B><P>"
);

    
//inicializamos variables
    
$caracter="";
    
$palabra[0]="";$palabra[1]="";$palabra[2]="";$palabra[3]="";$palabra[4]="";
    
$cuentac=0;$cuentap=1;
    
//ponemos puntero al comienzo (no hace falta, ya lo estaba)
    
rewind($id_fichero);
    
//leemos el fichero linea a linea
    
while (!feof($id_fichero)){
      
// para pasarlo a variable tipo string fgets()
        //para pasarlo a array fgetcsv()
        
$linea=fgets($id_fichero,256);
        
//echo "<B>$linea </B><P>";
        
$longitud=strlen($linea);
        while (
$cuentac<=$longitud) {
            
$caracter=$caracter+substr($linea,$cuentac,1);
            
$cuentac++;
            echo 
"<br> caracter=",$caracter,"</br>";
            if (
$caracter!="~") {
                
$palabra[$cuentap]=$palabra[$cuentap]+$caracter;
            } else 
$cuentap=$cuentap+1;
            echo 
"<br> palabra=",$palabra[$cuentap],"</br>";
        }
//fin while
        
$cuentac=0;
        
        
//$mi_monedero->add_entrada($palabra[0],$palabra[1],$palabra[2],$palabra[3]);
    
}//fin while feof
    /*for ($i=1;strlen($linea);$i++) {
            $caracter=$caracter+substr($linea,$i,1);
            echo "longitud linea=",strlen($linea)," caracter=",$caracter,"</br>";
            //if ($caracter!="~") {
                //$palabra[$cuenta]=$palabra[$cuenta]+$caracter;
            //} else $cuenta=$cuenta+1;
    }*///fin for
    //while (!feof("monedero.txt")){
        //$linea= fgetcsv("monedero.txt",256,"~");
        //echo "<B>$linea </B><P>";
    
        /*
        for ($i=1;strlen($linea);$i++) {
            $caracter=$caracter+substr($linea,$i,1);
            if ($caracter!="~") {
                $palabra[$cuenta]=$palabra[$cuenta]+$caracter;
            } else $cuenta=$cuenta+1;
        }//fin for
        
        $mi_monedero->add_entrada($palabra[0],$palabra[1],$palabra[2],$palabra[3]);
        */
    //}    //fin while
    

?>
A ver si alguien puede iluminarme un poco.
Salu2