Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: Mantener un archivo en ejecucion desde visual basic
Experto: avleyva
Valoración: 4
Fecha: 25/01/2008


Mantener un archivo en ejecucion desde visual basic
Hola, experto... estoy haciendo una aplicacion que me lee datos de un archivo desde visual basic 6.0, pero necsito saber como mantener en ejecucion tal archivo... haber si me dejo entender ... algo como si fuese un archivo de word que cuando lo abres no puedes eliminarlo ni cambiarle el nombre mientras este abierto, o tambien como si fuese una base de datos de access ke cuando esta en consulta no se puede modificar el nombre ni eliminarlo pues algo asi necsito hacer pero con un archivo de donde me leera la informacion, puesto ke por el momento toda la informacion esta dentro de la aplicacion, y como veran no seria necsario hacer tal cosa pero el detalle es que tengo ke actualizar la informacion asi ke tengo ke adicionarlo y que mejor solo reemplazando el archivo de la data y ya no estaria volviendo a compilar la aplicaion con la nueva informacion. cualkier sugerencia y ayuda es bienvenida... Salu2.

Mantener un archivo en ejecucion desde visual basic
Que tal Byway.   Antes que nada te ofrezco una disculpa por no contestar con anticipación, pero estuve fuera por causas de fuerza mayor. Ojala que aún te sirva mi respuesta. Programáticamente Visual Basic no puedes proteger muchos archivos contra escritura o borrado, solo algunos de ellos, por ejemplo puedes abrir una base de datos de Access en modo exclusivo y entonces nadie podrá borrar o abrir el archivo al mismo tiempo que tú. Con otros archivos como por ejemplo .txt, .dat, etc., no puedes hacer lo mismo, por lo una sugerencia sería crear un archivo temporal, por ejemplo a través del API de Windows. A continuación un fragmento de código para crear un archivo temporal en el directorio temporal del sistema operativo: Private Declare Function GetTempPath Lib "kernel32" _          Alias "GetTempPathA" (ByVal nBufferLength As Long, _          ByVal lpBuffer As String) As Long Private Declare Function GetTempFileName Lib "kernel32" _          Alias "GetTempFileNameA" (ByVal lpszPath As String, _          ByVal lpPrefixString As String, ByVal wUnique As Long, _          ByVal lpTempFileName As String) As Long Dim sTmpPath As String * 512 Dim sTmpName As String * 576 Dim nRet As Long nRet = GetTempPath(512, sTmpPath) If (nRet > 0 And nRet 0 Then         CreateTempFile = Left$(sTmpName, InStr(sTmpName, vbNullChar) - 1)     End If End If Una vez creado el archivo temporal, lee tu archivo original y escribe su contenido en el temporal, trabaja en éste último todo lo que desees y al final sobre escribe el archivo original con el contenido de tu archivo temporal. De esta manera no importará si otra persona abre tu archivo original y cambia su contenido, así como tampoco importará si lo borra. Espero que esta sugerencia te sea de utilidad y que de ser así, aún estés en tiempo de implementarla. Saludos.

Pregunta finalizada. Valoración: 4
gracias .. ya solucione este impase hace tiempos ... y estuve un tiempo alejado y no respondi ... la solucion simple ke use fue abrir el archivo con open y no cerrarlo hasta cuando cerraba la aplicacion .. pero esto de crear archivo temporal si ke me suena interesante para otras ideas ke tengo.


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/visual-basic/respuestas/1777707/mantener-un-archivo-en-ejecucion-desde-visual-basic