Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
ayuda para insercciones en php despues de descomponer un archivo .txt

buenas tardes compañeros logre separar campo a campo un archivo de txt, pero ahora me veo en la problematica de las insercciones debido a la estructura que tiene el archivo la estructura mas sencilla de este archivo es como esto lo que pinto de color rojo es lo que ira en la parte del maestro de la tabla, lo de azul va en la parte del detalle, cada booking es un registro nuevo maestro-detalle.

Código:
Comp. code : PVRTRA  Timon Tours Airport Transfers
 Category   : ALLE    Return Transfers to Club Marival Resort

 From date :  14-AUG-2010

 No          Booking             Conf Pax name
  1        607872(2)                   MR   NURANEY, NIZAR
                                       MRS  NURANEY, SALMA
                                       MS   NURANEY, NAVIDA
                                       MR   NGUYEN, KHANG QUOC
                                       MRS  VELJI, ZOREEN
                                       MR   VELJI, MEBS
     + CHLD                            MSTR VELJI, IMRAN                  Age:7
     + CHLD                            MISS VELJI, JAIDE                  Age:4

-> 7 PF 14-AUG-10 WS2306 YEG/PVR  DEP 10:45 ARR 16:46
       8 PF 21-AUG-10 WS2307 PVR/YEG  DEP 17:35 ARR 21:36

 No          Booking             Conf Pax name
  2        631974(6)                   MR   OGBEBOR, JOSEPH
                                               MRS  OGBEBOR, OYINDAMOLA
     + CHLD                            MSTR OGBEBOR, PAUL                 Age:10
     + CHLD                            MSTR OGBEBOR, JOSEPH OSASUEHI      Age:8
     + CHLD                            MISS OGBEBOR, GABRIELLE            Age:6

    -> 7 PF 14-AUG-10 WS2306 YEG/PVR  DEP 10:45 ARR 16:46
       8 PF 21-AUG-10 WS2307 PVR/YEG  DEP 17:35 ARR 21:36
para este ejemplo no tengo problemas pero ahi partes del archivo con esta estructura

Código:
 Comp. code : PVRTRA  Timon Tours Airport Transfers
 Category   : ALLE    Return Transfers to Club Marival Resort

 From date :  14-AUG-2010

 No          Booking             Conf Pax name
  1        607872(2)                   MR   NURANEY, NIZAR
                                       MRS  NURANEY, SALMA
                                       MS   NURANEY, NAVIDA
                                       MR   NGUYEN, KHANG QUOC
                                       MRS  VELJI, ZOREEN
                                       MR   VELJI, MEBS
     + CHLD                            MSTR VELJI, IMRAN                  Age:7
     + CHLD                            MISS VELJI, JAIDE                  Age:4

 No          Booking             Conf Pax name
  2        631974(6)                   MR   OGBEBOR, JOSEPH
                                               MRS  OGBEBOR, OYINDAMOLA
     + CHLD                            MSTR OGBEBOR, PAUL                 Age:10
     + CHLD                            MSTR OGBEBOR, JOSEPH OSASUEHI      Age:8
     + CHLD                            MISS OGBEBOR, GABRIELLE            Age:6

    -> 7 PF 14-AUG-10 WS2306 YEG/PVR  DEP 10:45 ARR 16:46
       8 PF 21-AUG-10 WS2307 PVR/YEG  DEP 17:35 ARR 21:36
como se ve los dos booking comparten esta informacion

Código:
-> 7 PF 14-AUG-10 WS2306 YEG/PVR  DEP 10:45 ARR 16:46
       8 PF 21-AUG-10 WS2307 PVR/YEG  DEP 17:35 ARR 21:36
es ahi el problema de que las lineas se van leyendo secuencialmente y no encuentro la forma de como parar la primera inserccion y almacenarla en alguna estructura y al detectar que que en el siguiente booking ya puedo hacer las dos insercciones recuperar la informacion y hacer las dos insercciones



gracias por cualquier comentario
Responder Con Cita
  #2  
Antiguo 31-08-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
no se... y si almacenas todo en un objeto como primer paso y luego desde el objeto haces las operaciones de inserción?
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 31-08-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
movorack gracias por la respuesta pero como que tipo de objeto se te ocurre??
Responder Con Cita
  #4  
Antiguo 31-08-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
creo que te faltan campos, lo que marcas con rojo no son candidatos a campos ya que por ejemplo, hay algunos menores que aparecen ahi y sus datos no tienen columna, eso hay que tomarlo en cuenta.

Ahora bien, tu problemas sencillo, lees todos los datos de cada reservación y los guardas momentaneamente en una estructura o archivo temporal hasta que encuentres la información que "cierra" la reservación (booking). Es decir después de leer y guardar el texto del booking esperaras encontrar como primeros caracters ya sea un "->" indicando que ahi termina ese registro con los datos de su salida y llegada o bien un "No" que indica que hay otro registro más que comparte los mismos datos.

O en términos más claros, si encuentro un "->" leo las dos líneas y grabo el registro completo con sus datos, si encuentro un "No" sigo leyendo y guardando lo que encuentre hasta que me tope con un "->", entonces guardo todo lo que haya tenido almacenado previamente y lo asocio con ese dato de salida y regreso.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 31-08-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
creo que te faltan campos, lo que marcas con rojo no son candidatos a campos ya que por ejemplo, hay algunos menores que aparecen ahi y sus datos no tienen columna, eso hay que tomarlo en cuenta.

Ahora bien, tu problemas sencillo, lees todos los datos de cada reservación y los guardas momentaneamente en una estructura o archivo temporal hasta que encuentres la información que "cierra" la reservación (booking). Es decir después de leer y guardar el texto del booking esperaras encontrar como primeros caracters ya sea un "->" indicando que ahi termina ese registro con los datos de su salida y llegada o bien un "No" que indica que hay otro registro más que comparte los mismos datos.

O en términos más claros, si encuentro un "->" leo las dos líneas y grabo el registro completo con sus datos, si encuentro un "No" sigo leyendo y guardando lo que encuentre hasta que me tope con un "->", entonces guardo todo lo que haya tenido almacenado previamente y lo asocio con ese dato de salida y regreso.

hola AzidRain gracias por la respuesta., bueno lo primero que comentas del desmenbre de los datos eso ya lo tengo solucionado y pues valla lo que describes es exactamente lo que uso para hacer le desmenbre de los datos, la cuestion es que igual y no me explique bien cada booking es una inserccion en la tabla maestros, los integrates de cada booking van al detalle, valla sera algo tan facil que mi cerebro no logra hilarlo .
Responder Con Cita
  #6  
Antiguo 01-09-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
hola que tal ya logre hacer otra cadena basado en el archivo mencionado ahora me surge otra duda de como separar la nueva cadena, he estado viendo que la funcion explode me puede ayudar pero no logro hacer la funcion que me ayude hacer dicho proceso anexo la nueva cadena que forme.

delimitadores para la nueva cadena
Código:
#****************************************************
# ¬  "separador para el hotel"                                                       *
# #  "separador del booling"                                                         *
# ;  "separador del nombre"                                                         *
# [] "separador acompañantes adulto"                                           *
# {} "separador acompañantes niños"                                            *
# °     "separador info vuelo"                                                        *
#****************************************************
Código:
Club Marival Resort ¬ 607872# MR NURANEY, NIZAR ; [ MRS NURANEY, SALMA - MS NURANEY, NAVIDA - MR NGUYEN, KHANG QUOC - MRS VELJI, ZOREEN - MR VELJI, MEBS -] { + CHLD MSTR VELJI, IMRAN Age:7 - + CHLD MISS VELJI, JAIDE Age:4 -} ° 8? 
Club Marival Resort ¬ 631974# MR OGBEBOR, JOSEPH ; [ MRS OGBEBOR, OYINDAMOLA -] { + CHLD MSTR OGBEBOR, PAUL Age:10 - + CHLD MSTR OGBEBOR, JOSEPH OSASUEHI Age:8 - + CHLD MISS OGBEBOR, GABRIELLE Age:6 -} -> 7 PF 14-AUG-10 WS2306 YEG/PVR DEP 10:45 ARR 16:46 | 8 PF 21-AUG-10 WS2307 PVR/YEG DEP 17:35 ARR 21:36 |° 5?
gracias por cualquier comentario
Responder Con Cita
  #7  
Antiguo 01-09-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Es como te digo, entiendo que en efecto cada booking te va a representar un registro maestro y los pasajeros serán el detalle del booking. Con base en el archivo txt que pones, cada booking puede compartir o no datos de salida y regreso. El algoritmo que te comenté es el correcto solo tienes que desglosarlo y aplicarlo y te va a funcionar.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 01-09-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
gracias azidrain en efecto ese es el algoritmo que uso si te fijas las nuevas cadenas que he formado ya estan listas para ser separadas e insertadas, ahora lo que pienso hacer es

1.- primeramente el caracter "?" me indica que ahi termina un booking, dicha cadena ya trae todos los datos (excepto la info de vuelo cuando es compartida entre varios booking).

2.- despues de que separe la cadena en un arreglo tengo que buscar el caracter "->" que me indica que el booking esta completa (no comparte informacion de vuelo con otro booking) y hacer la inserccion si comparte el booking tengo que recorrer el arreglo hasta que encuentre el caracter que me indica el vuelo insertoy tengo que regresar el arreglo para insertar los booking que quedaron atras.

pero el problema es que no tengo mucha experiencia con esas funciones bueno seguire investigando
Responder Con Cita
  #9  
Antiguo 01-09-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Mmm, creo que no hay necesidad de meter todo en un array y de ahi partir, lo podrías hacer con una estructura tipo record, leer las lineas, analizarlas, guardar los datos en el record y continuar.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #10  
Antiguo 01-09-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
mmm valla me empiezo confundir entones cres que es mejor leer la linea e insertarla directamente a la bd??, pero como controlarias los booking que comparten informacion de vuelo??
Responder Con Cita
  #11  
Antiguo 01-09-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Nooo...la linea la lees la analizas y la la guardas en una estructura,digamos un record o un array lo que mejor te acomode. Sigues leyendo hasta detectar si hay otro registro o bien encuentras los datos del vuelo. Si encuentras los datos del vuelo todo lo que tengas en tu estructura lo pasas a la BD asociándola con el vuelo correspondiente (pueden ser una o mas reservaciones). Está relativamente sencillo, no veo donde te atoras.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #12  
Antiguo 01-09-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
valla eso es exactemente lo que describo arriba tal ves no me explique bien, en lo que me atoro es en el manejo de arreglos jeje hace tiempo que no usaba esas estructuras de hecho nunca las he usado en php.
Responder Con Cita
  #13  
Antiguo 01-09-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Ya caigo..estaba pensando en Delphi..
jiji
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #14  
Antiguo 01-09-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
jaja si en delphi se me haria mas facil pero valla requerimiento es requerimiento asi es que lo tendre que sacar en php jaja
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Descomponer Fecha darkborrego Varios 9 26-06-2010 02:16:59
Descomponer nombre y apellidos lgarcia SQL 4 15-04-2009 22:16:37
Alguna herramienta para generar un archivo de ayuda? eldiegofg Varios 2 07-09-2007 02:19:31
Evento despues de descargar un archivo Arcioneo HTML, Javascript y otros 2 19-07-2007 19:29:19
archivo de ayuda para las RxLib 2005 Johnny Q OOP 7 09-09-2005 21:23:08


La franja horaria es GMT +2. Ahora son las 11:24:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi