Crear un fichero de más de 8 letras

Crear un fichero de más de 8 letras

Postby Andrés G. » Wed Apr 30, 2008 2:00 pm

Hola a todos,

Tengo que crear un fichero con un nombre largo (más de 8 carácteres).

¿Con que comando puedo crearlo? El comando FCREATE() no funciona.

Gracias.

Andrés
User avatar
Andrés G.
 
Posts: 33
Joined: Fri Jun 29, 2007 7:38 am
Location: Tarragona, Catalunya

Postby Antonio Linares » Wed Apr 30, 2008 11:01 pm

Andrés,

Usa la función LFN2SFN( cNombreLargo ) --> cNombreCorto y crea ese nombre corto (que corresponde al nombre largo que deseas)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41312
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés G. » Mon May 05, 2008 9:33 am

Gracias Antonio.

Esto ya lo probé y lo que consigo es acortar el nombre a 8 caracteres no crear un fichero de mas de 8 caracteres, que es lo que yo necesito.

¿Hay alguna solución?

Recuerdos,

Andrés
User avatar
Andrés G.
 
Posts: 33
Joined: Fri Jun 29, 2007 7:38 am
Location: Tarragona, Catalunya

Postby Antonio Linares » Tue May 06, 2008 6:46 am

Andrés,

Revisa samples\longname.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41312
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés G. » Tue May 06, 2008 10:14 am

Antonio,

He probado el ejemplo, lo he compilado tal cual y el resultado es un archivo con solo los 8 primeros carácteres del nombre, obvía el resto.

¿Sabes a que puede deberse?

Recuerdos,

Andrés
User avatar
Andrés G.
 
Posts: 33
Joined: Fri Jun 29, 2007 7:38 am
Location: Tarragona, Catalunya

Postby Antonio Linares » Tue May 06, 2008 11:51 am

Andrés,

Tienes razón, discúlpame

Ese ejemplo funciona correctamente con Harbour y FWH 32 bits, pero no con Clipper y FW 16 bits.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41312
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés G. » Wed May 07, 2008 7:21 pm

Gracias por tu interés Antonio.

Saludos,

Andrés
User avatar
Andrés G.
 
Posts: 33
Joined: Fri Jun 29, 2007 7:38 am
Location: Tarragona, Catalunya

Postby Sebastián Almirón » Mon May 12, 2008 8:57 am

Hola, yo utilizo las siguientes funciones para crear y manipular los ficheros con nombres largos:

DLL32 FUNCTION FCreate32( lpPathName AS STRING, iAttribute AS LONG ) AS LONG PASCAL FROM "_lcreat" LIB "KERNEL32"
DLL32 FUNCTION FWrite32( hFile AS LONG, lpBuffer AS STRING, wBytes AS LONG ) AS LONG PASCAL FROM "_lwrite" LIB "KERNEL32"
DLL32 FUNCTION FClose32( hFile AS LONG ) AS LONG PASCAL FROM "_lclose" LIB "KERNEL32"
DLL32 FUNCTION FErase32( lpFileName AS STRING ) AS LONG PASCAL FROM "DeleteFileA" LIB "KERNEL32"
DLL32 FUNCTION FOpen32( lpPathName AS STRING, iReadWrite AS LONG ) AS LONG PASCAL FROM "_lopen" LIB "KERNEL32"
DLL32 FUNCTION FRead32( hFile AS LONG, @lpBuffer AS LPSTR, wBytes AS LONG ) AS LONG PASCAL FROM "_lread" LIB "KERNEL32"
DLL32 FUNCTION FSeek32( hFile AS LONG, lOffset AS LONG, iOrigin AS LONG ) AS LONG PASCAL FROM "_llseek" LIB "KERNEL32"

Es decir copias todo esto en tu programa y luego utilizar FCreate32 en vez de FCreate, lo mismo para FOpen, FWrite, FClose, FErase, FRead y Fseek.

Saludos
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Postby Andrés G. » Mon May 12, 2008 10:04 am

Sebastián,

Funciona perfectamente, muchísimas gracias.

Recuerdos.

Andrés
User avatar
Andrés G.
 
Posts: 33
Joined: Fri Jun 29, 2007 7:38 am
Location: Tarragona, Catalunya


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 5 guests