APPEND FROM (rutaf) DELIMITED WITH ";"

Post Reply
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

APPEND FROM (rutaf) DELIMITED WITH ";"

Post by leandro »

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


  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 ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Amigo

Use SET DEMILITER TO ";" no cabecalho do programa e veja se funciona.
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Noppp

Post by leandro »

Nop :(

Rochinha:

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

Un abrazo.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

OK

Try

Code: Select all

APPEND FROM (rutaf) DELIMITED WITH chr(59)
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

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 _.

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

Manuel
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Gracias...

Post by leandro »

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 ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
jacgsoft
Posts: 96
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Post by jacgsoft »

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
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

Amigo Leandro,

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

Manuel
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

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.
User avatar
jose_murugosa
Posts: 943
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Post by jose_murugosa »

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
FWH + Harbour + Bcc7. Una seda!
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Obrigado Jose, no podemos vencer sempre, mas lutar sempre!
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Gracias....

Post by leandro »

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

De nuevo Muchas Gracias
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Post Reply