Foros del Web » Programando para Internet » PHP »

problema con cadena separada con comas

Estas en el tema de problema con cadena separada con comas en el foro de PHP en Foros del Web. buenas, mi problema es que tengo cadenas de este tipo: "7473465809397,0,20050305120424,-,20050305120436,16,213.201.90.138,206.165.148.64,-,1,1,-,-,1,4,-,0,0,0," y cada termino que esta separado por comas significa una cosa. He hecho un ...
  #1 (permalink)  
Antiguo 25/11/2005, 11:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 18 años, 5 meses
Puntos: 0
problema con cadena separada con comas

buenas,
mi problema es que tengo cadenas de este tipo:
"7473465809397,0,20050305120424,-,20050305120436,16,213.201.90.138,206.165.148.64,-,1,1,-,-,1,4,-,0,0,0,"
y cada termino que esta separado por comas significa una cosa.
He hecho un programa para ir guardando cada termino en una variable pero no se porque para el 3º termino no me lo hace bien ...el programa es este:

<html>

<head>
<title>cojo de archivo</title>
</head>

<body>
<?php
$archivo=fopen("datos.txt","r");
$temp=fopen("editor.txt","r+");
$linea=fgets($archivo,2000);
//print("$linea");
fwrite($temp,$linea);

fseek($temp, 0);//mando el puntero al principio pq fwrite me lo deja al fin
$busqueda=stream_get_line($temp,200,",");
print("La busqueda es: $busqueda<br>");
$posicion=(strlen($busqueda)+1);
print("La posicion del puntero es: $posicion<br>");

fseek($temp,$posicion);
$busqueda2=stream_get_line($temp,200,",");
print("La busqueda2 es: $busqueda2<br>");
$pos2=((strlen($busqueda2)+1)+$posicion);
print("La nueva posicion del puntero es: $pos2<br>");

fseek($temp,$pos2);
$busqueda3=stream_get_line($temp,200,",");
print("La busqueda3 es: $busqueda3<br>");
$pos3=((strlen($busqueda3)+1)+$pos2);
print("La nueva posicion del puntero es: $pos3<br>");



fclose($archivo);
fclose($temp);
?>
</body>
</html>



y el resultado que me da es el siguiente:
[ILa busqueda es: 7473465809397
La posicion del puntero es: 14
La busqueda2 es: 0
La nueva posicion del puntero es: 16
La busqueda3 es: 2
La nueva posicion del puntero es: 18][/I]

cuando busqueda3 deberia ser: "20050305120424"
Que estoy haciendo mal?
gracias
  #2 (permalink)  
Antiguo 25/11/2005, 13:17
Avatar de Vaalegk  
Fecha de Ingreso: abril-2005
Mensajes: 154
Antigüedad: 19 años
Puntos: 2
Si no me equivoco es donde guardas la pocision del puntero de archivo:
$posicion=(strlen($busqueda)+1);

la pocision del puntero no necesariamente es el tamano de la cadena +1 deberias usar

$posicion=ftell($tu_archivo);
  #3 (permalink)  
Antiguo 28/11/2005, 04:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 18 años, 5 meses
Puntos: 0
me sigue dasndo el mismo resultado....a $busqueda3 me la asigna un "2" en vez de "20050305120424"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:39.