elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  escritura concurrente en un fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: escritura concurrente en un fichero  (Leído 1,518 veces)
OssoH


Desconectado Desconectado

Mensajes: 868


Ver Perfil
escritura concurrente en un fichero
« en: 11 Mayo 2006, 13:04 pm »

Tengo varios clientes que escriben de vez en cuando sobre EL MISMO fichero txt. Todos no escriben a la vez, pero podría darse la casualidad que si. Cada vez que desea escribir uno de ellos algo, lo que hago es abrir el fichero, lo escribo y a continuación cierro el fichero. Pero, ¿ que pasaría si la escritura se realizara al mismo tiempo por dos clientes? ¿que pasaria si un cliente cerrará el fichero, cuando otro cliente esta escribiendo en él?
En definitiva, quiero solucionar la escritura concurrente de datos en un fichero. Alguien se le ocurre alguna idea ?
Gracias


En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: escritura concurrente en un fichero
« Respuesta #1 en: 11 Mayo 2006, 15:08 pm »

No se puede...si uno intenta abrir el archivo mienras otro lo tiene habierto saldra un kartelito del tipo:

Otro programa esta utilizando este archivo

Prueba a hacer esto:

en el form_load pon esto:

Private Sub Form_Load()
Open "C:\Windows\regedit.exe" For Binary As #1
End Sub

Ahora ve a Inicio/ejecutar y escribe esto: regedit.exe

Veras lo que te sale... ;) ;) ;)

Salu2



En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
OssoH


Desconectado Desconectado

Mensajes: 868


Ver Perfil
Re: escritura concurrente en un fichero
« Respuesta #2 en: 11 Mayo 2006, 15:18 pm »

ajá
entonces se me ocurre que lo mejor será que cada usuario escriba su propio fichero txt, en lugar de todos los clientes el mismo.
Gracias
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: escritura concurrente en un fichero
« Respuesta #3 en: 11 Mayo 2006, 15:26 pm »

O puedes hacer un Bucle....mira, declara esta funcion:

Private Sub Wait(ByVal nSec As Integer)
    'Esperar un número de segundos
    Dim t1 As Date, t2 As Date

    t1 = Second(Now)
    t2 = t1 + nSec
    Do
        DoEvents
    Loop While t2 > Second(Now)
End Sub

Y luego en sub que se lean pon esto:

On error goto Fallo:

y luego al final del sub pon esto:

Fallo:
wait (2) ' espera 2 segundos
Command1_Click

Asi lo que ara sera esperar dos segundos y volvera a entrar al sub....

Pero si lo eskriben por separado tambien esta bien....

Salu2

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
OssoH


Desconectado Desconectado

Mensajes: 868


Ver Perfil
Re: escritura concurrente en un fichero
« Respuesta #4 en: 11 Mayo 2006, 15:55 pm »

Muchas gracias, capto la idea :)
En línea

Eternal Idol
Colaborador
***
Desconectado Desconectado

Mensajes: 5.852


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: escritura concurrente en un fichero
« Respuesta #5 en: 11 Mayo 2006, 16:08 pm »

Si usas la API de Windows (CreateFile) podes especificar los permisos para compartir los archivos.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PROGRAMACION CONCURRENTE
Java
maii210890 0 1,936 Último mensaje 11 Abril 2013, 01:55 am
por maii210890
Programación Concurrente (Intro)
Programación General
edr89 4 1,856 Último mensaje 28 Diciembre 2014, 01:25 am
por edr89
Conceptos de Programación Concurrente
Programación General
edr89 0 905 Último mensaje 25 Enero 2015, 03:17 am
por edr89
Escritura usb
Hardware
Spalco 2 1,891 Último mensaje 4 Junio 2017, 20:36 pm
por Randomize
Problema en un programa de escritura de fichero
Programación C/C++
ferchundo9 0 1,036 Último mensaje 23 Diciembre 2017, 23:09 pm
por ferchundo9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines