Page 1 of 1

Abrir TXT solo en modo lectura

PostPosted: Mon Jun 16, 2014 9:23 pm
by Loren
compañeros, buenas:

He creado un TXT mediante Fcreate, Fwrite y Fclose, pero ahora necesito abrirlo y mostrarlo al usuario pero SOLO en modo lectura.
He probado con:
Winexec( "NotePad.exe TEXTO.TXT") --> pero NO se abre en modo lectura

¿Como hacerlo?

Mil gracias.
Un saludo, desde Cádiz, España
LORENZO

Re: Abrir TXT solo en modo lectura

PostPosted: Tue Jun 17, 2014 5:29 am
by Manuel Valdenebro
¿No funciona con MEMOREAD?

Re: Abrir TXT solo en modo lectura

PostPosted: Tue Jun 17, 2014 5:33 am
by Antonio Linares
Lorenzo,

Cuando llames a FCreate() usa el segundo parámetro que admite para especificar que el fichero se crea solo en modo lectura:

http://www.fivetechsoft.com/harbour-docs/api.html#fcreate

FCreate( ..., FC_READONLY )

/* File create flags */
#define FC_NORMAL 0 /* No file attributes are set */
#define FC_READONLY 1 /* Read-only file attribute is set */
#define FC_HIDDEN 2 /* Hidden file attribute is set */
#define FC_SYSTEM 4 /* System file attribute is set */

Re: Abrir TXT solo en modo lectura

PostPosted: Tue Jun 17, 2014 10:00 am
by Loren
Compañeros, buenas:

Antonio, siguiendo tus indicaciones ya logré generar un TXT de solo lectura y ahora intento mostrarlo de manera facil así:

Winexec( "NotePad.exe FILE.TXT" )

Sin embargo cuando lo abre, permite modificarlo.
He intentado migrar el TXT a DBF temporal y mostrarlo mediante un listbox (ocultando las lineas de celdas), pero las lineas son mayores a 250 caracteres y desvirtua la presentación del texto.
La única opción que me queda es mediante un memoedit(memoread('file.txt')), pero....

¿Hay alguna manera facil de hacerlo? Algo así como NOTEPAD.exe pero con algún parámetro de solo lectura.

Mil gracias.
Un saludo.

Re: Abrir TXT solo en modo lectura

PostPosted: Tue Jun 17, 2014 10:27 am
by Antonio Linares
http://answers.microsoft.com/en-us/windows/forum/windows_7-files/notepadexe-command-line-options/810760c1-a45a-4013-9544-1c1208e1b389

Lo más sencillo es que tu lo muestres en un diálogo con un GET ... MEMO y que sea de sólo lectura. Eso lo tienes hecho en un rato :-)