Autor
|
Tema: escritura concurrente en un fichero (Leído 2,544 veces)
|
OssoH
Desconectado
Mensajes: 911
|
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
|
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
Mensajes: 911
|
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
|
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
Mensajes: 911
|
Muchas gracias, capto la idea
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Colaborador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
PROGRAMACION CONCURRENTE
Java
|
maii210890
|
0
|
2,646
|
11 Abril 2013, 01:55 am
por maii210890
|
|
|
Programación Concurrente (Intro)
Programación General
|
edr89
|
4
|
3,493
|
28 Diciembre 2014, 01:25 am
por edr89
|
|
|
Conceptos de Programación Concurrente
Programación General
|
edr89
|
0
|
1,779
|
25 Enero 2015, 03:17 am
por edr89
|
|
|
Problema en un programa de escritura de fichero
Programación C/C++
|
ferchundo9
|
0
|
2,010
|
23 Diciembre 2017, 23:09 pm
por ferchundo9
|
|
|
Necesito ayuda con RandomAccessFile escritura Fichero
Java
|
SonnyCrockett
|
3
|
3,797
|
10 Octubre 2022, 15:41 pm
por Danielㅤ
|
|