Foros del Web » Programando para Internet » PHP »

Dividir cadenas de caracteres???

Estas en el tema de Dividir cadenas de caracteres??? en el foro de PHP en Foros del Web. Hola a todos, tengo un txt con varias de estas cadenas una bajo la otra: 000719730002702040604075300100100 000719730010608040604075700100100 000719730006908040604075700100100 y me gustaria dividir a cada cadena ...
  #1 (permalink)  
Antiguo 22/06/2004, 09:45
 
Fecha de Ingreso: abril-2004
Ubicación: Tucuman
Mensajes: 15
Antigüedad: 13 años, 8 meses
Puntos: 0
Exclamación Dividir cadenas de caracteres???

Hola a todos, tengo un txt con varias de estas cadenas una bajo la otra:

000719730002702040604075300100100
000719730010608040604075700100100
000719730006908040604075700100100

y me gustaria dividir a cada cadena en 4 cadenas mas pequeñas de 15, 6, 4 y 8 caracteres respectivamente.
Alguien me puede ayudar?, gracias desde ya.
  #2 (permalink)  
Antiguo 22/06/2004, 10:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm y no usas ningún separador "característico" salto ese "salto de línea" que "se deduce" que hay entre esos "bloques" (registros?) ..

(Te lo comento por qué si esos datos los generas tu mismo .. sería ideal que usass algún separador (un caracter) tipo "|" o una coma .. o lo que gustes .. así podrías aplicar en PHP la función explode() y tendrías resuelto el problema comodamente y fiable que sea el dato que buscas tenga la longitud que quieras ..)

Por lo demás .. puedes usar la función:
substr()
www.php.net/substr

Así tomas los bloques de caracteres que quieras desde la posición que quieras.

(supongo que ya sabras leer ese archivo en sus N "cadenas" que contiene. Si no es así podrías usar file() para obtener las "cadenas" y luego substr() para el otro tema).

Un saludo,
  #3 (permalink)  
Antiguo 23/06/2004, 08:51
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 15 años, 11 meses
Puntos: 0
Hola esas cadena metiendolas un un array y utilizando la funcion de abajo puede serte util.
En la Variable $texto es donde esta la cadena
En la Variable $cortar le dices en cuantos trozos quieres cortar la cadena
En la Variable $breakStr le dices que signo o simbolo quieres que introduzca
El resultado lo puedes partir facilmente con explode.

Código PHP:
<? 
$texto 
"Hay que tener en cuenta queforeach trabaja con una copia de la matriz especificada y no la lista en si, por ello el puntero de la lista no es modificado como en la función each(), y los cambios en el elemento de la matriz retornado no afectan a la matriz original. De todas maneras el puntero interno a la matriz original avanza al procesar la matriz. suponiendo que bucle foreach se ejecuta hasta el final, el puntero interno a la matriz estar/aacute; al final de la matriz"


function 
new_textwrap ($String$cortar 19$breakStr "\n"$cut $padStr="<br>") { 
   
   
$newString=""
   
$lines=explode($breakStr$String); 
   
$cnt=count($lines); 
   for(
$x=0;$x<$cnt;$x++){ 
     if(
strlen($lines[$x])>$cortar){ 
       
$str=$lines[$x]; 
       while(
strlen($str)>$cortar){ 
         
$find 
        
         
$pos=strrpos(substr($str0$cortar+1), ""); 
         if (
$pos == false) { 
             If(
$cut) { 
                 
$pos $cortar 
                 
$find 
             } else { 
                 
$posstrpos($str""); 
                 if (
$pos == false
                     break; 
             } 
         } 
         
$newString.=$padStr.substr($str0$pos).$breakStr
         
$str=(substr($str$pos $find)); 

       } 
       
$newString.=$padStr.$str.$breakStr
     } 
     else{ 
       
$newString.=$padStr.$lines[$x].$breakStr
     } 
   } 

   return 
substr ($newString,0, -(strlen($breakStr))); 


echo 
new_textwrap($texto); 

?>
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
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:44.