Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Bloquear registro en fichero binario (https://www.clubdelphi.com/foros/showthread.php?t=50264)

jonmendi 13-11-2007 15:20:37

Bloquear registro en fichero binario
 
Hola,
estoy haciendo una pequeña aplicación en la que tengo un fichero binario del que voy leyendo escribiendo (blockread / blockwrite). En este mismo archivo escribe otra aplicación (que no puedo controlar, no tengo fuente). Esa otra aplicación y la mía comparten información a través de este fichero. Lo que quiero es bloquear el registro en el que voy a a escribir para asegurarme que no lo hace la otra aplicación.
Sé que puedo bloquear el fichero entero al abrirlo con filemode = fmShareExclusive , pero no sé como hacerlo para limitar el bloqueo a un único registro y que los demás puedan seguir escribiendo en el fichero.

¿Agluna idea?
Muchas gracias!
Jon

PD: algo del estilo lock / unlock de visualbasic: http://msdn2.microsoft.com/es-es/lib...wf(VS.80).aspx

Neftali [Germán.Estévez] 13-11-2007 16:30:57

En la sección de ejemplos de esta página, hay uno titulado "API LockFile para detectar instancias de aplicación activas en red"; Aunque en ese ejemplo esta API se usa para este fin concreto, en realidad lo que hace es detectar accesos concurrentes a posiciones de un fichero.

Está con todo el código disponible, así que puedes echarle un vistazo a ver si te es útil.

jonmendi 13-11-2007 16:57:50

muchísimas gracias neftali!
me pongo a ello ya. Si consigo algo lo pongo aquí.

Un saludo,
Jon

PD: por cierto, ¿los moderadores dormís? contestáis tan rápido que empieza a dar miedo....:D

Neftali [Germán.Estévez] 13-11-2007 17:16:31

Cita:

Empezado por jonmendi (Mensaje 245781)
¿los moderadores dormís? contestáis tan rápido que empieza a dar miedo...

Noooooo; Cuando te haces moderador te dan un reloj que te suena una alarma cuando alguien postea un mensaje....:D:D:D:D


La franja horaria es GMT +2. Ahora son las 11:45:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi