Problemas para escribir en archivo
Publicado por jose (33 intervenciones) el 15/02/2018 08:59:58
Hola,
Necesito ayuda con un pequeño código. Hace años que no programo y se me ocurrio ponerlo en práctica con una pequeña necesidad que tenemos en mi empresa.
Quisiera crear que el programa cree un archivo por variables.
En el form_load la aplicación comprueba que si no existe el directorio lo crea, lo lee hasta el final y añade lo leído a un valor que pinta en un label, y lo utiliza un webbrowser.
En esta otra parte del código escribimos la nueva dirección, añadiendo al archivo del texto y volviendolo a leer.
Error: Todo bién execpto, a la hora de darle al textbox para que me escriba el nuevo texto en el texto me dice: "El proceso no puede obtener acceso al archivo porque está siendo utilizado en otro proceso."
Alguna idea de como solucionar esto.
Muchas gracias,
Jose Luis.
Necesito ayuda con un pequeño código. Hace años que no programo y se me ocurrio ponerlo en práctica con una pequeña necesidad que tenemos en mi empresa.
Quisiera crear que el programa cree un archivo por variables.
1
2
3
4
5
6
7
8
9
Public Class frmWeb
Dim ipvar As String
':::Ruta donde crearemos nuestro archivo txt
Dim DirStrPath As String = "C:\Tutoriales\"
':::Nombre del archivo
Dim FileStrPath As String = "Prueba.txt"
Dim StrPath As String = DirStrPath & FileStrPath
En el form_load la aplicación comprueba que si no existe el directorio lo crea, lo lee hasta el final y añade lo leído a un valor que pinta en un label, y lo utiliza un webbrowser.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Try
If Not File.Exists(FileStrPath) Then
' Try to create the directory.
Dim di As DirectoryInfo = Directory.CreateDirectory(DirStrPath)
':::Si la carpeta existe creamos o sobreescribios el archivo txt
fs = File.Create(FileStrPath)
fs.Close()
MsgBox("Archivo creado correctamente" & vbNewLine & "Añadir nueva dirección del dispensador principal", MsgBoxStyle.Information, "")
Else
Try
':::Creamos nuestro objeto de tipo StreamReader que nos permite leer archivos
Dim leer As New StreamReader(StrPath)
leer.Close()
' Apuntador libre a archivo
Dim Apunt As Integer = FreeFile()
' Variable donde guardamos cada línea de texto
Dim Texto As String
' Abrimos el archivo y lo recorremos hasta el final línea por línea
FileOpen(Apunt, StrPath, OpenMode.Input, OpenAccess.Read)
Do While Not EOF(Apunt)
' Leemos la línea de texto del archivo
Texto = LineInput(Apunt)
':::Agregramos los registros encontrados
TxtIP.Text = "La dirección actual del dispensador es: " + Texto
ipvar = Texto
WebBrowser1.Refresh()
WebBrowser1.Navigate("http://" + ipvar + "terminal/terminal.html")
Loop
' Cerramos el archivo
FileClose(Apunt)
Catch ex As Exception
MsgBox("Se presento un problema al leer el archivo: " & ex.Message, MsgBoxStyle.Critical, "Qmatic Terminal")
End Try
End If
Catch ex As Exception
MsgBox("Se presento un problema al momento de crear el archivo: " & ex.Message, MsgBoxStyle.Critical, "")
End Try
En esta otra parte del código escribimos la nueva dirección, añadiendo al archivo del texto y volviendolo a leer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub TxtIpChange_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtIpChange.KeyDown
If e.KeyCode = Keys.Enter Then
Dim escribir As New StreamWriter(StrPath)
Try
':::Creamos nuestro objeto de tipo StreamReader que nos permite leer archivos
Dim leer As New StreamReader(StrPath)
leer.Close()
':::Escribimos una linea en nuestro archivo TXT con el formato que este separado por coma (,)
escribir.WriteLine(TxtIpChange.Text)
MsgBox("Registro guardado correctamente", MsgBoxStyle.Information, "")
':::Limpiamos los TextBox
TxtIpChange.Clear()
'TxtIP.Text = TxtIpChange.Text
escribir.Close()
':::Llamamos nuestro procedimiento para leer el archivo TXT
' Apuntador libre a archivo
Dim Apunt As Integer = FreeFile()
'' Variable donde guardamos cada línea de texto
Dim Texto As String
' Abrimos el archivo y lo recorremos hasta el final línea por línea
FileOpen(Apunt, StrPath, OpenMode.Input, OpenAccess.Read)
Do While Not EOF(Apunt)
' Leemos la línea de texto del archivo
Texto = LineInput(Apunt)
':::Agregramos los registros encontrados
TxtIP.Text = "La dirección actual del dispensador es: " + Texto
ipvar = Texto
WebBrowser1.Refresh()
WebBrowser1.Navigate("http://" + ipvar + "terminal/terminal.html")
Loop
' Cerramos el archivo
FileClose(Apunt)
TxtIpChange.Visible = False
Catch ex As Exception
MsgBox("Se presento un problema al escribir en el archivo: " & ex.Message, MsgBoxStyle.Critical, "")
End Try
End If
End Sub
Error: Todo bién execpto, a la hora de darle al textbox para que me escriba el nuevo texto en el texto me dice: "El proceso no puede obtener acceso al archivo porque está siendo utilizado en otro proceso."
Alguna idea de como solucionar esto.
Muchas gracias,
Jose Luis.
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0