none
Guardar y reemplazar linea en archivo txt RRS feed

  • Pregunta

  • Buenas a todos, 

    Me encuentro haciendo una aplicación en la cual de acuerdo a esta interfaz se almacena la información.

    botón_nombre1        Botón_Buscar

    botón_nombre2        Botón_Buscar...

    En total son 12 botones buscar y de nombres.

    Necesito guardar el nombre desde el botón nombre 1,2,3.., la url que es generada desde el botón buscar, la linea que se almacenaría en el archivo txt sería de la siguiente forma:

    Ejemplo1    C:\Users\User\Desktop\WindowsApplication1\WindowsApplication1

    Si solo fue utilizado 2 al almacenaria 2 de la siguiente forma:

    Ejemplo1    C:\Users\User\Desktop\WindowsApplication1\WindowsApplication1

    Ejemplo2    C:\Users\User\Desktop\WindowsApplication1\WindowsApplication1

     

    Respetando los espacios de lineas de las vacías, y posteriormente que se edite reemplazaría la linea o en caso de estar vacía la llenaría. Les agradezco si me pueden ayudar o dar alguna idea. Muchas gracias.

    miércoles, 7 de junio de 2017 21:48

Todas las respuestas

  • [...]  Necesito guardar el nombre desde el botón nombre 1,2,3..la url que es generada desde el botón buscar

    Aquí no entiendo, ¿guardar el nombre desde el botón Nombre_x generado desde el botón Buscar_x?, es decir, ¿primero pinchas sobre el botón Buscar_x, generas la url y luego pinchas sobre el botón Nombre_x para guardar la url generada? ¿por qué no el botón Buscar_x se encarga de generar y escribir sobre el archivo?

    No entiendo, te agradeceré si puedes dar algo mas de claridad al requerimiento.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 7 de junio de 2017 22:26
  • Gracias por su colaboración.

    Tengo 12 botones de nombres y otros 12 de buscar:

    boton1      boton1

    boton2      boton2

    boton3      boton3

    boton4      boton4

    boton5       boton5

    boton6      boton6

    boton7     boton2

    boton_guardar  boton_cancelar

    cada vez que doy clic en 1 botón me guarda en un arreglo independiente la información del nombre y en otro la url, arregloNombres y arregloUrl, después desde el botón guardar recorro los arreglos para almacenarlos, conformando una linea. Supongamos que cada posición del arreglo es un fragmento de una linea. ejemplo: 

    nombre                     url   'esta sería la linea 1

    nombre2                     url2   'esta sería la linea 2

    lo que necesito es que pueda almacenar de esa forma la información y aparte que me respete los espacios de cada linea en caso de que el usuario no seleccione nada en un botón, siguiendo el ejemplo anterior, digamos que no seleccionaron el resto de botones. Muchas gracias por tu colaboración.

    viernes, 9 de junio de 2017 17:32
  • Para continuar esto es lo que llevo hasta el momento, pero no me funciona, por eso preguntaba si había otra forma más eficiente de hacerlo:

    ////////////INTERFAZ //////////////////////7

    Imports System.IO
    Public Class EditarRepdRap

        Public rutamp3 As String
        Public nombre(11) As String
        Public url(11) As String

        Private Sub Buscar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar1.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar2.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar3.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar4.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar5.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar6.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar7.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar8.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar9.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar10.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar11.Click
            BuscarArchivo.ShowDialog()
        End Sub
        Private Sub Buscar12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar12.Click
            BuscarArchivo.ShowDialog()
        End Sub

        Private Sub BuscarArchivo_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles BuscarArchivo.FileOk
            For Each track As String In BuscarArchivo.FileNames
                rutamp3 = (track)
            Next
        End Sub


        Private Sub ControlbotonesBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buscar1.Click, Buscar2.Click, Buscar3.Click, Buscar4.Click, Buscar5.Click, Buscar6.Click, Buscar7.Click, Buscar8.Click, Buscar9.Click, Buscar10.Click, Buscar11.Click, Buscar12.Click

            Select Case DirectCast(sender, Button).Name
                Case Buscar1.Name
                    url(0) = rutamp3

                Case Buscar2.Name
                    url(1) = rutamp3

                Case Buscar3.Name
                    url(2) = rutamp3

                Case Buscar4.Name
                    url(3) = rutamp3

                Case Buscar5.Name
                    url(4) = rutamp3

                Case Buscar6.Name
                    url(5) = rutamp3

                Case Buscar7.Name
                    url(6) = rutamp3

                Case Buscar8.Name
                    url(7) = rutamp3

                Case Buscar9.Name
                    url(8) = rutamp3

                Case Buscar10.Name
                    url(9) = rutamp3

                Case Buscar11.Name
                    url(10) = rutamp3

                Case Buscar12.Name
                    url(11) = rutamp3
            End Select


        End Sub

        Private Sub ControlbotonesNombre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nombre1.Click, nombre2.Click, nombre3.Click, nombre4.Click, nombre5.Click, nombre6.Click, nombre7.Click, nombre8.Click, nombre9.Click, nombre10.Click, nombre11.Click, nombre12.Click

            Dim myValue As Object
            myValue = InputBox("Ingresa el nombre del archivo", "Cambiar nombre archivo audio", ModProgramacionEvento.rutaArchivoSonido, 100, 100)
            If myValue Is "" Then myValue = "Ninguno"

            Select Case DirectCast(sender, Button).Name
                Case nombre1.Name
                    nombre(0) = myValue
                    nombre1.Text = myValue

                Case nombre2.Name
                    nombre(1) = myValue
                    nombre2.Text = myValue

                Case nombre3.Name
                    nombre(2) = myValue
                    nombre3.Text = myValue

                Case nombre4.Name
                    nombre(3) = myValue
                    nombre4.Text = myValue

                Case nombre5.Name
                    nombre(4) = myValue
                    nombre5.Text = myValue

                Case nombre6.Name
                    nombre(5) = myValue
                    nombre6.Text = myValue

                Case nombre7.Name
                    nombre(6) = myValue
                    nombre7.Text = myValue

                Case nombre8.Name
                    nombre(7) = myValue
                    nombre8.Text = myValue

                Case nombre9.Name
                    nombre(8) = myValue
                    nombre9.Text = myValue

                Case nombre10.Name
                    nombre(9) = myValue
                    nombre10.Text = myValue

                Case nombre11.Name
                    nombre(10) = myValue
                    nombre11.Text = myValue

                Case nombre12.Name
                    nombre(11) = myValue
                    nombre12.Text = myValue
            End Select

        End Sub

        Private Sub Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Guardar.Click
            Dim archivo As StreamWriter
            Dim LectorString As String = ""
            Dim columna As Integer = 0
            Dim path As String = Directory.GetCurrentDirectory()
            archivo = New StreamWriter(path + "\archivos\ReproduccionRapida.txt", True)

            Reproduccion_rapida.reemplazaLineaNombre(nombre)
            Reproduccion_rapida.reemplazaLineaUrl(url)

            Try
                If (Reproduccion_rapida.arrayTempUrl.Length > 0) Then
                    For fila = 0 To 11

                        LectorString = Reproduccion_rapida.arrayTempNombre(fila) & vbTab & Reproduccion_rapida.arrayTempUrl(fila)
                        archivo.WriteLine(LectorString)
                    Next

                Else
                    MsgBox("NO hay elementos para guardar")
                End If

            Finally
                archivo.Close()
            End Try

            Me.Close()

        End Sub

        Private Sub Cancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancelar.Click
            Me.Close()
        End Sub

        Private Sub EditarRepdRap_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        End Sub
    End Class

    /////////////////MODULO ////////////////////////////

    Module Reproduccion_rapida

        Public arrayTempUrl As String()
        Public arrayTempNombre As String()

        Sub reemplazaLineaUrl(ByVal matriz() As String)

            Dim path As String = Directory.GetCurrentDirectory()
            Dim lineas() As String = File.ReadAllLines(path + "\archivos\ReproduccionRapida.txt")
            Dim list As List(Of String) = lineas.ToList()
            Dim delimiter As Char = vbTab
            Dim contrucLinea As String

            If (list.Count() > 0) Then

                For i = 0 To 11

                    Dim arregloPalabras() As String = list.Item(i).Split(delimiter)
                    arregloPalabras(1) = matriz(i)
                    contrucLinea = arregloPalabras(0) & vbTab & arregloPalabras(1)
                    list.Add(contrucLinea)

                    list.Add("")

                Next
            Else
                For j = 0 To 11

                    list.Add(matriz(j))

                    list.Add("")


                Next
            End If

            arrayTempUrl = list.ToArray

        End Sub
        Sub reemplazaLineaNombre(ByVal matriz() As String)

            Dim path As String = Directory.GetCurrentDirectory()
            Dim lineasnombre() As String = File.ReadAllLines(path + "\archivos\ReproduccionRapida.txt")
            Dim listNombre As List(Of String) = lineasnombre.ToList()
            Dim delimitador As Char = vbTab
            Dim contrucLineaNombre As String

            If (listNombre.Count() > 0) Then

                For i = 0 To 11

                    Dim arregloPalabras() As String = listNombre.Item(i).Split(delimitador)
                    arregloPalabras(1) = matriz(i)
                    contrucLineaNombre = arregloPalabras(0) & vbTab & arregloPalabras(1)
                    listNombre.Add(contrucLineaNombre)

                    listNombre.Add("")

                Next
            Else

                For j = 0 To 11

                    listNombre.Add(matriz(j))
                    listNombre.Add("")

                Next
            End If

            arrayTempNombre = listNombre.ToArray

        End Sub

    End Module

    Gracias por su tiempo.!!

    viernes, 9 de junio de 2017 17:43
  • Hola gracias por su respuesta.

    La finalidad es poder modificar los nombres de los botones y escoger las url de archivos de audio, para posteriormente cargarlos en otra interfaz y tener una lista de 12 botones que solo se dará clic y reproducen el archivo de audio. 

    Imagina una lista de reproducción de música, es similar solo que dispondrás de 12 botones para reproducir tu música al instante sin volver a buscar o cargar el archivo. Por esta razón no utilizo un listbox, por que todos van a estar disponibles para ser editados y eso fue lo que me solicito la persona en esa interfaz. Pero si hay otra forma escucharé sugerencias, por eso fue mi consulta.

    Muchas gracias.






    sábado, 10 de junio de 2017 2:53