Foros del Web » Programando para Internet » PHP »

ayuda creando un txt y campos inicio y fin

Estas en el tema de ayuda creando un txt y campos inicio y fin en el foro de PHP en Foros del Web. buenas a todos, tengo una aplicacion y necesito enviar un archivo txt para que una empresa la procese en su sistema. el problema es que ...
  #1 (permalink)  
Antiguo 06/11/2009, 06:47
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
ayuda creando un txt y campos inicio y fin

buenas a todos,

tengo una aplicacion y necesito enviar un archivo txt para que una empresa la procese en su sistema.

el problema es que su sistema funciona aun con txt, y con unas caracteristicas bastante peculiares.

necesito guardar unas variables tales como:

numpedido,cliente,nombre,direccion,cp,poblacion,pr ovincia,pais

y yo genero este report con variables: $numpedido,$cliente,$nombre....

el problema, es que el txt tiene que crear una linea, donde los campos han de tener un nº de caracteres, y me lo cuentan por posiciones. por ejemplo:

numpedido, tamaño 10, inicio 1, fin 10
cliente, tamaño 10, inicio 11, fin 21
.... y asi sucesivamente

y otra cosa, si por ejemplo mi variable tiene 5 caracteres y el sistema tiene 10 posiciones guardadas, tengo que completar hasta los 10 caracteres con espacios...

alguien puede echarme un cable???

saludos!
  #2 (permalink)  
Antiguo 06/11/2009, 09:52
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: ayuda creando un txt y campos inicio y fin

utiliza las funciones sprintf o printf según el caso:
Código PHP:
<?php
//manual de php
$s 'mono';
$t 'varios monos';

printf("[%s]\n",      $s); // salida de cadena estándar
printf("[%10s]\n",    $s); // alineación a derecha con espacios
printf("[%-10s]\n",   $s); // alineación a izquierda con espacios
printf("[%010s]\n",   $s); // el relleno con ceros funciona con cadenas también
printf("[%'#10s]\n",  $s); // usar el caracter de relleno '#'
printf("[%10.10s]\n"$t); // alineación a izquierda pero con un corte de 10 caracteres
?>
La salida de este programa sería:
Código:
[mono]
[      mono]
[mono      ]
[000000mono]
[######mono]
[varios mon]
  #3 (permalink)  
Antiguo 06/11/2009, 10:40
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: ayuda creando un txt y campos inicio y fin

gracias maycolalvarez

funciona muy bien. una cosa solo, dos preguntas:

-como hago la concatenacion de variables, es decir, tengo que poner todas las variables en la misma linea.

-guardarlo en un texto. hasta ahora abria el fichero con a+, y iiba guardando por lineas. pero me pierdo ahora con esto. he probado algo asi:
Código:
				$fichero = fopen("fichero.txt","a+"); 
				$prueba=printf("%-10s*\n", $nombre
				fputs($fichero,$prueba."\r\n");
				fclose($fichero);
y como hago lo de las posiciones? necesito:

nombre(pos 1 a 10) direccio (11 a 30)...... y que me quede todo en la misma linea?

esperando tu respuesta,

saludos
  #4 (permalink)  
Antiguo 06/11/2009, 13:09
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: ayuda creando un txt y campos inicio y fin

maycolalvarez,

tas por ahi? puedes ayudarme?
  #5 (permalink)  
Antiguo 07/11/2009, 11:05
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: ayuda creando un txt y campos inicio y fin

alguna sugerencia? no consigo lo que quiero

saludo
  #6 (permalink)  
Antiguo 07/11/2009, 11:11
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda creando un txt y campos inicio y fin

Pues si quieres hacer concatenacion usa el ( . )

$nombre = 'Ejemplo';
$apellido = 'Ejemplo 2';

$final = $nombre . $apellido;

Asi ?
Danos un ejemplo de esto nombre(pos 1 a 10) direccio (11 a 30)...... y que me quede todo en la misma linea?
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #7 (permalink)  
Antiguo 07/11/2009, 16:29
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: ayuda creando un txt y campos inicio y fin

lo de concatenar de esa forma ya lo tengo claro acoevil.

el problema es lo de las posiciones.tengo que pintar, en un txt, una linea y cada campo tiene unas posiciones.

hago un ejemplo de las posiciones

nombre(char10,1,10), apellidos(10,11,21), direccion(20,22,42)....

y en caso de que por ejemplo, el nombre tenga solo 8caracteres, pinte 2 espacios.

y guardarlo todo en un txt.

saludos!
  #8 (permalink)  
Antiguo 08/11/2009, 11:23
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: ayuda creando un txt y campos inicio y fin

buenas mayco,

no me sale lo que tu dices. es por eso que creo que no puedo avanzar. el caso es que tu ejemplo, y los ejemplos que salen en el manual de php de printf, no hacen lo que tu me comentas.

el ejemplo del manual:

printf("%6s", 'foo'); # prints ' foo'

como dice pintaria ' foo'

y a mi me pinta foo. que hago mal?

saludos!
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 22:12.