buenas tardes como hacer esto, gracias

338 views
Skip to first unread message

Jose Mario

unread,
Jul 17, 2025, 4:22:35 PM7/17/25
to Comunidad de Visual Foxpro en Español
primera="30072025"
dd1=LEFT(primera,2)
mm1=SUBSTR(primera,3,2)
aa1=RIGHT(primera,4)
prime="pplanilla&aa1&mm1&dd1"

este archivo lo genero quincenalmente
quiero validar si existe
if not file('&prime')  if ! file('prime')  if ! file('&prime'+'.dbf')
    archivo no existe
endif
USE &prime IN 0 AGAIN ALIAS prime
no me funciona, de ninguna forma

gracias

Jose Mario

unread,
Jul 17, 2025, 4:35:44 PM7/17/25
to Comunidad de Visual Foxpro en Español
de todo solo esto no me funciona lo demas todo funciona

if not file('&prime')  if ! file('prime')  if ! file('&prime'+'.dbf')
    archivo no existe
endif

Octavio Rodriguez

unread,
Jul 17, 2025, 4:41:50 PM7/17/25
to publice...@googlegroups.com
y si lo usas de la siguiente forma:

if file(lc)
    use &lc
else
    mensaje " archivo no existe  "
endif

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/bac661b5-5a92-418e-8427-3fe2c658c4ddn%40googlegroups.com.

Gerardo Cagnola

unread,
Jul 17, 2025, 5:12:52 PM7/17/25
to publice...@googlegroups.com
revisaste la ayuda de macrosustitución al menos una vez???

no llego a entender porque complicas lo fácil

primera="30072025"
prime='pplanilla' + RIGHT(primera,4) + SUBSTR(primera,3,2) + LEFT(primera,2) + '.dbf'
if file(prime)
   use (prime) in 0 alias prime
endif

falta lectura de la ayuda...



--

Edwin Duran

unread,
Jul 17, 2025, 7:14:17 PM7/17/25
to Comunidad de Visual Foxpro en Español
Una duda, donde colocas la ruta del archivo

Zarlu

unread,
Jul 17, 2025, 7:31:23 PM7/17/25
to Comunidad de Visual Foxpro en Español
Buenas tardes José!

Qué es lo que no funciona?...la sintáxis?..no encuentra el archivo?

Aquí hay que revisar como pasas la variable y falta "AND" para los "IF"
" if not file('&prime')  if ! file('prime')  if ! file('&prime'+'.dbf')"

Sugerencia:
prime="c:\tempo\pplanilla&aa1&mm1&dd1.dbf"
if !file(prime)
    ? "archivo no existe"
endif

Suerte
zarlu
Chetumal, Quintana Roo, México

Victor Espina

unread,
Jul 18, 2025, 9:49:56 AM7/18/25
to Comunidad de Visual Foxpro en Español
Eso pasa cuando no entiendes bien los conceptos.   Tu codigo es el correcto; el original era una abominacion (solo estoy bromeando, por si acaso) :D 

Victor Espina

Jose Mario

unread,
Jul 18, 2025, 10:29:13 AM7/18/25
to Comunidad de Visual Foxpro en Español
tenes razon
yo me incluyo no entender la ayuda
lo que pasa que como me habria el archivo 
pero ya para evaluar si existe o no existe
no pude hacerlo
prime="pplanilla&aa1&mm1&dd1"
if  not file('prime')
    archivo no existe
endif

prime='pplanilla' + RIGHT(primera,4) + SUBSTR(primera,3,2) + LEFT(primera,2) + '.dbf'
if ! file(prime)
  archivo no existe
   else
use (prime) in 0 alias prime
endif

buenos gracias y disculpa
me sirvió muchisimo

Jose Mario

unread,
Jul 18, 2025, 10:29:55 AM7/18/25
to Comunidad de Visual Foxpro en Español
es un gusto saludarte victor

Alex Correa

unread,
Jul 18, 2025, 7:04:32 PM7/18/25
to publice...@googlegroups.com
primera = "30072025"
dd1 = LEFT(primera, 2)
mm1 = SUBSTR(primera, 3, 2)
aa1 = RIGHT(primera, 4)

prime = "pplanilla" + aa1 + mm1 + dd1 && genera: pplanilla20250730

IF NOT FILE(prime + ".dbf")
    ? "Archivo no existe"
    RETURN
ENDIF

USE (prime + ".dbf") IN 0 ALIAS prime


Alex Correa

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Victor Espina

unread,
Jul 19, 2025, 9:43:11 AM7/19/25
to Comunidad de Visual Foxpro en Español
Ahora , solo por diversion:

SET DATE ITALIAN
SET CENTURY ON
primera = "30072025"
file = STRT("pplanilla{0}.dbf", "{0}", DTOC(CTOD(TRANSFORM(primera, "@R 99-99-9999")),1))
IF NOT FILE(file)
  ? "Archivo no existe". 
  RETURN
ENDIF
USE (file) IN 0 ALIAS prime

Paso a paso seria:
1) TRANSFORM(primera, "@R 99-99-9999")   && "30072025" -> "30-07-2025"
2) CTOD(...)   &&  "30-07-2025" -> {30-07-2025}
3) DTOC(...,1). && {30-07-2025}  -> "20250730"
4) STRT("pplanilla{0}.dbf","{0}",...).  -> "planilla{0}.dbf". -> "pplanilla20250730.dbf"


Victor Espina

Victor Espina

unread,
Jul 19, 2025, 9:43:31 AM7/19/25
to Comunidad de Visual Foxpro en Español
Igual Jose!.  Un abrazo :)

Victor Espina

Zarlu

unread,
Jul 19, 2025, 10:29:57 AM7/19/25
to Comunidad de Visual Foxpro en Español
Buenos días!

Saludos maestro Víctor!

Divirtámonos!...aunque ya no sea viernes
Las 1001 maneras del zorro....

CLEAR
primera="30072025"
primera=STUFF(STUFF(primera,3,0,"/"),6,0,"/")
primera=GETWORDNUM(primera,3,"/")+GETWORDNUM(primera,2,"/")+GETWORDNUM(primera,1,"/")
lcFile= "pplanilla"+primera+".dbf"
? lcFile


Suerte
zarlu
Chetumal, Quintana Roo, México



Jose Mario

unread,
Jul 21, 2025, 10:57:34 AM7/21/25
to Comunidad de Visual Foxpro en Español
EN ESTE CASO EL ARCHIVO ESTA EN LA MISMA CARPETA
COMO ESTO SE COLOCA EN UN APLIICACION
AHI DEPENDE DE LA RUTA DE TUS DATOS 

Zarlu

unread,
Jul 21, 2025, 11:10:48 AM7/21/25
to Comunidad de Visual Foxpro en Español
Buenos días José!

Puedes usar esto para obtener el directorio del ejecutable y de ahí partir a las subcarpetas.
lcPathExe=LEFT(sys(16,1),RAT("\",sys(16,1))-1)&&directorio del ejecutable
lcDirDatos=ADDBS(lcPathExe)+"Data"
lcFile= ADDBS(lcDirDatos)+"elarchivo.dbf"

Suerte
zarlu
Chetumal, Quintana Roo, México

Victor Espina

unread,
Jul 21, 2025, 3:38:25 PM7/21/25
to Comunidad de Visual Foxpro en Español
LEFT(sys(16,1),RAT("\",sys(16,1))-1) = JUSTPATH(SYS(16))

Victor Espina

Walter Salcedo

unread,
Aug 6, 2025, 11:00:13 PM8/6/25
to Comunidad de Visual Foxpro en Español
Estimados Les agradeceré su ayuda por favor,
Soy programador empírico, siempre he trabajado con tablas .dbf, se me ha presentado la oportunidad de trabajar con un cliente que tiene su sistema en tablas de access *.mdb.

Necesito me ayuden a accesar a la base de datos, abrir una tabla y agregar registros y/o modificar datos en ella desde visualfoxpro 9 usando ODCBC, o si fuera posible me indiquesn si existe algún manual para hacer esto. 

Atte,

Walter Salcedo




Sergio Rojas

unread,
Aug 7, 2025, 7:08:27 AM8/7/25
to publice...@googlegroups.com

Hola Walter, acá te paso un extracto de lectura de MDB y copia a DBF, solo para que te sirva de guía.


lnConnHandle = SQLSTRINGCONNECT('DRIVER=MICROSOFT ACCESS DRIVER (*.MDB);DBQ=' + lcMyFile +';uid='+i_usu+';pwd='+i_pas)

lnResult = SQLTABLES(lnConnHandle, 'TABLE')

lcSQLCommand = "SELECT * FROM [checkinout]"
lnGetData = SQLEXEC(lnConnHandle, lcSQLCommand, 'newdata')

COPY TO (lcNewName) FOR LEFT(DTOS(TTOD(checktime)),8) >= DTOS(i_fec)

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages