Foros del Web » Programando para Internet » PHP »

Insertar Coma

Estas en el tema de Insertar Coma en el foro de PHP en Foros del Web. Com pudo hacer esto: tengo en un txt los siguientes valores 13216549 joakisjdoasijdasoijd 444asd4555as6 quiero separar esos tres valores por como en ese archivo, tengo ...
  #1 (permalink)  
Antiguo 24/05/2003, 15:12
Avatar de davidMS  
Fecha de Ingreso: abril-2003
Ubicación: Chepe
Mensajes: 202
Antigüedad: 21 años
Puntos: 0
Insertar Coma

Com pudo hacer esto:
tengo en un txt los siguientes valores
13216549 joakisjdoasijdasoijd 444asd4555as6

quiero separar esos tres valores por como en ese archivo, tengo una breve idea, pero la verdad es que no se!!!
  #2 (permalink)  
Antiguo 24/05/2003, 15:19
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
con la funcion explode

en tu caso seria haci
Código PHP:
$variable explode(" ""13216549 joakisjdoasijdasoijd 44asd4555as6"
y los datos quedarian en un array
que para verlos tendrias que poner haci

Código PHP:
echo "$variable[0]"//aqui mostraria  13216549
echo "$variable[1]"//aqui mostraria  joakisjdoasijdasoijd
echo "$variable[2]"//aqui mostraria  44asd4555as6 
SALU2
  #3 (permalink)  
Antiguo 24/05/2003, 15:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues con explode() al caracter " " (espacio) y línea por línea .. de tu txt (si es que guardas como "registro" una línea de tu txt .. y los registros separados por espacio como así parece ..)

$campos=explode(" ",$linea_de_tu_txt);

En $campos tendras un array con tantos elementos como "bloques" de esa cadena tienes ..

Puedes usar un each() y list() para separarlo en variables o accediendo directamente a cada elemento del array $campos[0] .. $campos[1] .. etc ... (o en un bucle foreach() ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 24/05/2003, 15:37
Avatar de davidMS  
Fecha de Ingreso: abril-2003
Ubicación: Chepe
Mensajes: 202
Antigüedad: 21 años
Puntos: 0
y que pasa si en los mismos valores hay espacios ejemplo
4654a 654a y quiero poner la coma despus de la ultima a, no hay una forma de mover un puntero por el archivo, los valores tienen espacio limitado que es 12 30 y 62
  #5 (permalink)  
Antiguo 24/05/2003, 16:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues pasa que tu "algoritmo" ya no será tan simple de implementar que con una sóla función de PHP (como la implode()) ..

Te va a tocar pensar un poco y usar funciones como strpos() y/o substr() (tal vez alguna mas sobre el tema "string") .. y conforme detectes tus "bloques de datos" con esas funciones te lo puedes ir almacenando temporalmente en un array para que luego lo leas secuencialmente y lo proceses como corresponda ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 24/05/2003, 16:17
Avatar de davidMS  
Fecha de Ingreso: abril-2003
Ubicación: Chepe
Mensajes: 202
Antigüedad: 21 años
Puntos: 0
que te parece asi cluster, se me acaba de ocurrir, tengo el archivo, lo meto en un array con la funcion file, entonces la primera posicion del array me quedaria asi:
asdasd45 45465a dasd54654asd a6sd5465as4d 54654
Con toda la linea, pues me hace otra posicion en el arreglo con la siguiente linea pues tiene el \n.
Entonces con ciclos puedo decir $arreglo[0][$i]
me va a recorrer cada sub arreglo del arreglo entonces lo que puedo hacer es asignarle este a una variable + la coma, entonces irian ciclos dentro de ciclos mas conocido a qui en costa rica como el ciclo burbuja.
que dices?
  #7 (permalink)  
Antiguo 24/05/2003, 16:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Y no será mejor:

Código PHP:
$arreglo[0]=str_replace(" ",",",$arreglo[0]); 
Osease, str_replace .. sustituye las apariciones de la cadena que indiques en la cadena origen por el caracter que indiques ..

Repasa www.php.net/manual/es .. y sus numerosas funciones para trabajar con cadenas (string) .. veras que mas de una te hace lo que pensabas hacer "a mano" ..

Por cierto .. si quieres acceder a un caracter de una cadena .. usa:
Código PHP:
$arreglo[0]{$i
en lugar de [] que convierte tipos .. usa {} ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 24/05/2003, 16:34
Avatar de davidMS  
Fecha de Ingreso: abril-2003
Ubicación: Chepe
Mensajes: 202
Antigüedad: 21 años
Puntos: 0
me parece exelente, pero vuelvo a lo mismo, hay valores que tienen espacios, entonces no puedo usar str_replace, pero me parece que para otras cosas si lo puedo usar, lo que ocupo es pasar este arreglo a sql, pero por rendimiento mejor me creo mi propio archivo delimitado por comas, pero de ante mano muchas gracias!

de echo, una pregunta, como puedo saber cuantas lineas hay en un archivo?
  #9 (permalink)  
Antiguo 24/05/2003, 16:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si el archivo lo lees con file() te devuelve un array .. asi que puedes contar sus elementos como con cualquier otro array ..

usando:
count($array)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 25/05/2003, 03:26
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 6 meses
Puntos: 6
Bueno segun entendi, tu archivo se escribe como un archivo de acceso directo es decir tiene reservados x numero de bytes para cada elemento en una linea. Si es asi puedes hacer algo como esto.
Código PHP:
<?php
     $lineas 
file$archivo );
     
     function 
separar$elem )
     {
         
$arr = array( 'uno' => substr$elem010 ),
                       
'dos' => substr$elem,11,10 ),
                       
'tres' => substr$elem22,10 ) );
         return 
implode(",",$arr);
     }
     
     
$nlineas array_map"separar"$lineas );

?>
Lo que hace es leer y guardar cada linea del archivo en un arreglo usando file ese arreglo lo reacomodamos usando array_map y una funcion definida por mi que separa cada elemento del arreglo en los tamaños que requier que este caso es de 10 bytes y los almacena en otro arreglo, al final hace un implode del arreglo separando por comas. y el resultado es un nuevo arreglo que ya esta separado como tu querias ya lo demas es volver a escribir el archivo.
Espero que sea eso lo que necesitabas.
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 10:49.