APPEND FROM (rutaf) DELIMITED WITH ";"

APPEND FROM (rutaf) DELIMITED WITH ";"

Postby leandro » Mon Feb 19, 2007 10:15 pm

Amigos del foro....

Resulta y pasa que tengo que convertir un archivo txt a una dbf lo estoy haciendo de la siguiente manera:

Code: Select all  Expand view  RUN

  rutaf:=LFN2SFN(ruta)
  USE (oLamcla:tSube) ALIAS tSube NEW EXCLUSIVE
  ZAP
  dbgotop()
  APPEND FROM (rutaf) DELIMITED WITH ";"
  dbgotop()



El problema es que no vale el WITH ";" no valida el punto y coma, solo recibe lo que este delimitado por comas ",".

Alguien me puede indicar por que sucede esto, o que debo hacer para que si tome el valor de punto y coma ";".

De antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1682
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Postby Rochinha » Tue Feb 20, 2007 4:06 am

Amigo

Use SET DEMILITER TO ";" no cabecalho do programa e veja se funciona.
Rochinha
 
Posts: 310
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo

Noppp

Postby leandro » Tue Feb 20, 2007 7:37 pm

Nop :(

Rochinha:

No me funciono... de todas formas muchas gracias por la respuesta.

Un abrazo.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1682
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Postby Rochinha » Wed Feb 21, 2007 12:19 am

OK

Try
Code: Select all  Expand view  RUN
APPEND FROM (rutaf) DELIMITED WITH chr(59)
Rochinha
 
Posts: 310
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo

Postby Manuel Valdenebro » Wed Feb 21, 2007 4:17 am

Amigo Leandro,

Yo lo hago de la siguiente forma:

1) Creo un fichero temporal, con un solo campo (muy grande)
DbCreate( "tFichero.dbf",{ {"NOMBRE", "C", 256, 0} } )

2) Hago el Append From a este fichero temporal :
USE tFichero new EXCLUSIVE
APPE FROM (cFichero) SDF
DBGOTOP()

3) Abro el fichero definitivo y voy copiando la información desde el fichero temporal al definitivo, usando la claúsula SUBSTRING para cada uno de los campos.

definitivo->NOMBRE:= SUBS(tFichero->NOMBRE, 1, 24)
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Gracias...

Postby leandro » Wed Feb 21, 2007 4:54 pm

Rochinha de Nuevo gracias por tu respuesta hice el intento pero no funca..

jejeje

Manuel.. muchas gracias por tu respuesta creo que es lo que voy a hacer... voy a dejar la pereza y montar la rutina... De paso te hago una preguntica... ¿Como detecto si hay un tab ?, en caso que el archivo no venga separado por ";" si no por "tab"? Valga la rebusnancia.

y de Nuevo gracias por la ayuda.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1682
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Postby jacgsoft » Wed Feb 21, 2007 5:24 pm

Solo se acepta como delimitador la COMA "," , asi que para otro tipo de caracter delimitador diferente a la COMA"," solo te queda crear una funcion para leer tu archivo que contenga otro tipo de delimitadores, no hay otra.


Jaime
User avatar
jacgsoft
 
Posts: 105
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Postby Manuel Valdenebro » Wed Feb 21, 2007 5:27 pm

Amigo Leandro,

Cuando al mandato APPEND FROM le añade la claúsula SDF los registros y los campos tienen una longitud fija. De esa forma, es facil saber donde empieza cada campo y donde termina.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Rochinha » Wed Feb 21, 2007 10:35 pm

No me do por vencido.

Amigo usa la solucion de Manuel Valdenebro para cada linha del fichero.

Usa mi funcion em http://www.pctoledo.com.br/forum/viewtopic.php?t=5306 asi:

aArrayObtido := StringToArray( "O|Rochinha|es|tu|amigo", ";" )

Resultado:

? aArrayObtido[1] // Mostra O
? aArrayObtido[2] // Mostra Rochinha
? aArrayObtido[3] // Mostra Es
? aArrayObtido[4] // Mostra Tu
? aArrayObtido[5] // Mostra Amigo

Fica por tu conta ahora.
Rochinha
 
Posts: 310
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo

Postby jose_murugosa » Thu Feb 22, 2007 3:53 am

Rochinha,

Excelente función, verdaderamente combinándola con la idea de Manuel se logra un "append from" cualquier cosa, sin bases intermedias y con excelente desempeño!!!
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby Rochinha » Thu Feb 22, 2007 4:38 am

Obrigado Jose, no podemos vencer sempre, mas lutar sempre!
Rochinha
 
Posts: 310
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo

Gracias....

Postby leandro » Thu Feb 22, 2007 3:53 pm

Muchas Gracias Rochinha, de verdad que me uno a las felicitaciones de jose excelente funcion, problema solucionado......

De nuevo Muchas Gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1682
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests