Clipper/FiveWin - Importar desde un fichero txt

 
Vista:

Importar desde un fichero txt

Publicado por David (40 intervenciones) el 21/02/2008 14:22:35
Hola amigos, necesito importar los datos desde un fichero txt a campos tratarlos y después grabarlos en un registro. No se como hacerlo, ni las setencias, ni nada. Alguien me podría ayudar.

Gracias,
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Importar desde un fichero txt

Publicado por leandro alfonso (121 intervenciones) el 21/02/2008 18:29:31
Amigo lo puedes hacer asi, cuando el texto esta separado por comas..

rutaf:=C:MIBASE.DBF

USE ".dbfslamsysciudad" ALIAS Ciudad NEW EXCLUSIVE
ZAP
DbGotop()
APPEND FROM (rutaf) DELIMITED WITH ,
Dbgotop()

O lo puedes hacer asi.. cuando este definido por los espacios de los campos

USE ".dbfslamsysciudad" ALIAS Ciudad NEW EXCLUSIVE
ZAP
DbGotop()
APPEND FROM (rutaf) SDF
Dbgotop()

Espero te sirva

Saludos

LEANDRO ALFONSO
Bogotá (colombia)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar desde un fichero txt

Publicado por Gabriel Martin (41 intervenciones) el 22/02/2008 10:29:22
Muy buenas:

Voy a ver si por una vez, puedo dar ayuda y no como hago siempre, pedirla.
Quizas mi solucion, como mi 'admirado' tocayo dice, es matar moscas a cañonazos, pero a veces los menos 'pudientes' son las unicas armas con las que contamos.

Una manera y siempre y cuando los datos a tomar del TXT vengan linea a linea, y esta no supere un tamaño, muy grande si, creo que unas 1200 posiciones, es leer esa linea y guardarla en un campo DBF. A partir de ahí ese campo lo maneja a tu gusto.

LOCAL cFile:="*.txt"
LOCAL cFichero

cFichero:=cGetFile(cFile,"Seleccione el Fichero")

DBSelectArea(50)
DBUseArea(,,"Importa",,.F.)

APPEND FROM &cFichero SDF

de esta manera la DBF Importa contendrá un registro con cada linea del TXT.

Otra manera, un poco mas profesional y por si la liena es larga, larga.

LOCAL nManejador
LOCAL cFichero
LOCAL cFile:= "*.txt"
LOCAL cDatos // Donde guardaremos los datos
LOCAL nPos // Posicion de la cadena de
// donde extraer el dato

cFichero:=cGetFile(cFile,"Seleccione el Fichero")

IF (nManejador:=fOpen(cFichero))>=0 // No sea que este vacio !!
fSeek(nManejador,nDespl,0) // Para desplazarse
fRead(nManejador,@cDatos,9) // Leer 9 posiciones

ENDIF

Tu mism@, muy a tener en cuenta la estructura del TXT, que seguramente la empresa que te lo envia podrá facilitartelo.

Espero que te sea de ayuda, lo cual me hará sentir bien

Saludos
Gabriel Martin
Mataró, Spain
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar desde un fichero txt

Publicado por David (40 intervenciones) el 24/02/2008 17:49:08
Gracias por la repuestas, el fichero txt los danos a extraer vienen separados por ; y no se como separarlos para extraerlos.

Gracias,
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar desde un fichero txt

Publicado por Gabriel Martin (41 intervenciones) el 25/02/2008 17:11:13
Buenas David:

la verdad me resulta un poco dificil darte una respuesta, si lo deseas y sin compromiso alguno, me envias un txt e intento ver como extraerte esos datos

Saludos

Gabriel Martin
Mataró Spain
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar desde un fichero txt

Publicado por Mauricio Arevalo (152 intervenciones) el 25/02/2008 18:10:18
David:

Ahi va:

NUEVO:=""
USE SUBEART NEW
DBGOTOP()
do whil .not. eof()
VARI:=ALLTRIM(VALOR)
TAM:=LEN(VARI)

FOR I := 1 TO TAM
EXTRAE:=SUBS(VARI,I,1)
IF EXTRAE=";"
* NO HACE NADA
ELSE
NUEVO:=NUEVO+EXTRAE
ENDIF
NEXT
REPL NUMERO WITH VAL(NUEVO)
SKIP
NUEVO:=""
end

Lo que necesites escribeme a mi correo, o mss hymplus.hotmail.com

Saludos

Mauricio Arevalo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar desde un fichero txt

Publicado por RpgR-Soft (1 intervención) el 12/02/2009 17:06:17
Tienes que sacarlos con :

leer CampoContienDAtos desde archivo subidos a dbf

el SUBSTR saca datos con 1er numero como posicion y 2do numero largo del dato a extraer

( VariablePaso = SUBSTR(CampoContieneDatos,1,20) )

VariablePaso = SUBSTR(CampoContieneDatos,POSICION,LARGO)


ó

Ejemplo :

LINEA REGISTRO dice "Nombre;Apellidos;direccion,pais"

use ARCHIVO
go top
puntero=1
fin=recc()
do while puntero<=fin
use ARCHIVO
go puntero
LARGO=LENGTH(CAMPOCONTIENDATOS)
FOR X = 1 TO LARGO
SEPARADOR=SUBSTR(CampoContieneDatos,X,1)
DATOS=DATOS+SEPARADOR
IF SEPARADOR=";".
X=X+1 // para saltar el caracter";" sigo leyendo el registro
ENDIF
NEXT X
PUNT2=PUNT2+1
enddo

ayuda :

// obtengo el largo del campoContienDatos
// va leyendo el caracter del registro de uno en uno para encontrar el caracter ";"
// va juntando los caracteres hasta encontrar el caracter " ;"
// copia el contenido de DATOS en una variable para mover el dato
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar