Hola.
Estoy haciendo un pequeño programa que reproduce sonidos asignados a comandos. Algo muy sencillo. Quiero hacer un sistema de autocompletado de los comandos. Para ello, en cada cambio de texto (textchanged) abro el archivo que contiene los comandos y busco coincidencias (eso es lo de menos, sabré hacerlo). El problema que tengo es que cuando borro el texto del TextBox, me tira error diciendo que el archivo ya está abierto, cuando todo el rato lo estoy cerrando.
Aquí va el código (chapuza, lo sé, soy principiante):
Private Sub txt_command_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_command.TextChanged
Dim sTmp As String
If txt_command.Text = "add" Then
ofd_add.Title = "Selecciona un sonido:"
ofd_add.ShowDialog()
txt_command.Text = txt_command.Text & " " & ofd_add.FileName & " " & InputBox("Introduce el comando con el que se reproducirá el sonido:", "Introduce el comando")
txt_command.Select(Len(txt_command.Text), 1)
SetActive()
End If
FileOpen(1, My.Application.Info.DirectoryPath & "\sounds.txt", OpenMode.Input)
While EOF(1) = False
sTmp = LineInput(1)
If Mid(sTmp, 1, 1) = "/" Then
If Mid(txt_command.Text, 1, Len(txt_command.Text)) = Mid(sTmp, 2, Len(txt_command.Text)) Then
txt_command.Text = sTmp
End If
End If
End While
FileClose(1)
End Sub
La parte del
If txt_command.Text = "add"... no es importante. Como veis, cada vez que acaba la Sub el fichero debería haberse cerrado.
No abro el archivo en ninguna otra parte del programa. El error de "El archivo ya está abierto." sólo me lo da cuando el TextBox queda vacío (cuando elimino el ultimo carácter).
No encuentro el fallo =S
A ver si alguien me puede echar una mano.
Gracias, saludos.