Foros del Web » Programando para Internet » PHP »

Trabajar con areatxt

Estas en el tema de Trabajar con areatxt en el foro de PHP en Foros del Web. Hola amigos, agradeceria su ayuda con las siguientes dudas: tengo un textarea en el cual tengo los siguientes datos, los cuales fueron extraidos desde un ...
  #1 (permalink)  
Antiguo 24/08/2014, 15:06
 
Fecha de Ingreso: noviembre-2012
Ubicación: chillan
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
Información Trabajar con areatxt

Hola amigos,
agradeceria su ayuda con las siguientes dudas:

tengo un textarea en el cual tengo los siguientes datos, los cuales fueron extraidos desde un txt.

Código:
SET BASICO - NUMERO DE ATENCION:  238176

CASO  238176-1
==============
DOCUMENTO	FACTURA ELECTRONICA

ITEM			CANTIDAD	PRECIO UNITARIO 
Cajón AFECTO		    183		   4342
Relleno AFECTO		     77		   7253


CASO  238176-2
==============
DOCUMENTO	FACTURA ELECTRONICA

ITEM			CANTIDAD	PRECIO UNITARIO		DESCUENTO ITEM
Pañuelo AFECTO		    933		   7184			     12%
ITEM 2 AFECTO		    883		   6231			     29%


CASO  238176-3
==============
DOCUMENTO	FACTURA ELECTRONICA

ITEM			CANTIDAD	PRECIO UNITARIO
Pintura B&W AFECTO	     88		   8287
ITEM 2 AFECTO		    265		   4483
ITEM 3 SERVICIO EXENTO	      1		  35487


CASO  238176-4
==============
DOCUMENTO	FACTURA ELECTRONICA

ITEM			CANTIDAD	PRECIO UNITARIO
ITEM 1 AFECTO		    525		   7328
ITEM 2 AFECTO		    222		   9128
ITEM 3 SERVICIO EXENTO	      2		   6855

DESCUENTO GLOBAL ITEMES AFECTOS		     28%


CASO  238176-5
==============
DOCUMENTO		NOTA DE CREDITO ELECTRONICA
REFERENCIA		FACTURA ELECTRONICA CORRESPONDIENTE A CASO  238176-1
RAZON REFERENCIA	CORRIGE GIRO DEL RECEPTOR


CASO  238176-6
==============
DOCUMENTO		NOTA DE CREDITO ELECTRONICA
REFERENCIA		FACTURA  ELECTRONICA CORRESPONDIENTE A CASO  238176-2
RAZON REFERENCIA	DEVOLUCION DE MERCADERIAS

ITEM			CANTIDAD
Pañuelo AFECTO		    342
ITEM 2 AFECTO		    599


CASO  238176-7
==============
DOCUMENTO		NOTA DE CREDITO ELECTRONICA
REFERENCIA		FACTURA ELECTRONICA CORRESPONDIENTE A CASO  238176-3
RAZON REFERENCIA	ANULA FACTURA


CASO  238176-8
==============
DOCUMENTO		NOTA DE DEBITO ELECTRONICA
REFERENCIA		NOTA DE CREDITO ELECTRONICA CORRESPONDIENTE A CASO  238176-5
RAZON REFERENCIA	ANULA NOTA DE CREDITO ELECTRONICA "


a traves de estos datos debo generar 8 nuevos txt correspondientes a los o casos indicados en el textarea, mi duda es como extraer la informacion y guardarla en variables, ya que con ellas debo trabajar y crear las facturas po ej.:

en el pimer caso tenemos:
 CASO  238176-1
==============
DOCUMENTO	FACTURA ELECTRONICA

ITEM			CANTIDAD	PRECIO UNITARIO 
Cajón AFECTO		    183		   4342
Relleno AFECTO		     77		   7253
y la idea es que los dartos como "Cajon AFECTO" se guarde en una variable $item1, 183 en $cantidad1 y 4342 en $precio1,

la idea general es esa, he intentado de varias formas pero no me ha resultado, codigo por el momento no coloco ya que debido a las pruebas que hecho esta muuuuuuuyyy desordenado.
a quin me pueda ayudar gracias. (solo necesito una idea de como hacerlo, ahora si me ayudan con un pokito de codigo mejor :))

Saludos

Última edición por Triby; 25/08/2014 a las 20:55 Razón: Texto como código
  #2 (permalink)  
Antiguo 25/08/2014, 22:25
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Trabajar con areatxt

Si estás leyendo el archivo completo, se me ocurre que podría ser algo como:

1- Separas la cadena con $casos = explode('CASO', $cadena)
- El primer elemento ($casos[0]) sería lo que está al prinicipo: "SET BASICO - NUMERO..." y no lo tomas en cuenta

2- A partir del segundo elemento, con un bucle foreach o for:
- Separas cada caso con $lineas = explode("\n", $casos[$n]) para analizar línea por línea

3- La primera línea tiene un tabulador y después el número de caso

4- La segunda línea tiene información del documento, desechas la tercera y cuarta línea

5- A partir de esta encuentras los productos con cantidad y precio, separados por tabulador; necesitarás otro bucle:
- Separas cada dato con $producto = explode("\t", $lineas[$n])
- $producto[0] es el nombre del producto
- $producto[1] es "AFECTO"
- $producto[2] es cantidad
- $producto[3] es precio

6- Al encontrar una línea en blanco sabrás que terminaron los productos y, si requieres analizar el resto de contenido como lo que encuentras en "DESCUENTO GLOBAL ITEMES AFECTOS 28%" el proceso sería muy similar al paso anterior

Intenta iniciar con estas sugerencias y, si algo falla, regresa con el código para ver de qué forma podemos ayudarte.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 08/09/2014, 20:57
 
Fecha de Ingreso: noviembre-2012
Ubicación: chillan
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Trabajar con areatxt

Estimado Triby,
Gracias por tu idea, comenzare a tirar lineas y en cuanto tenga algo lo publicare y ver como vamos :)
Enserio muchas Gracias

Etiquetas: variable
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 00:42.