[VB.Net] Problema con textchanged y archivo

Iniciado por Scratz, 29 Agosto 2008, 16:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Scratz

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.
\\... The Revolution Is Comming ...//

Scratz

Acabo de probar de que cada vez el archivo tenga un número diferente (FileOpen(x,...) y el error que da ahora es:

CitarEl proceso no puede obtener acceso al archivo 'C:\Documents and Settings\Scratz\Escritorio\Pig Grunts\Pig Grunts\Pig Grunts\bin\Debug\sounds.txt' porque está siendo utilizado en otro proceso.

Tampoco es verdad. Pero está claro que, por alguna razón que desconozco, el archivo no se cierra cuando borro el texto del TextBox.

Es raro... a ver si alguien sabe q pasa ;/
\\... The Revolution Is Comming ...//