shordi escribió: [Ver mensaje]De todas formas, siempre he creído que el formato XML es demasiado engorroso. ¿Por qué no pruebas con CSV?
Supón que tienes un fichero llamado archivo.txt que contiene:
etiqueta1;valor1
etiqueta2;valor2
etiqueta3;valor3
etiqueta4;valor4
etc.
Crea un proyecto nuevo con el nombre que quieras. En el formulario principal coloca un panel llamado Panel1 que ocupe casi todo el formulario y debajo de él un botón llamado Button1.
Luego inserta éste código:
' gambas class file
Private Seleccionado As String
Public Sub Form_Open()
Dim fichero As String
Dim afichero, alinea As String[]
Dim linea As String
Dim txtbx As Textbox
Dim lbl As Label
Dim anchocontrol, altocontrol, n As Integer
anchocontrol = (Me.width / 2) - 2
altocontrol = 28
Dialog.Filter = ["*", ("All files"), "*.txt", ("Proyecto de WebCPGet")]
If Dialog.OpenFile() Then Return
seleccionado = Dialog.Path 'guardamos el path en la variable private para poder grabar luego los resultados con el mismo nombre
fichero = File.Load(Dialog.Path)
afichero = Split(fichero, "
", "\", True) 'dividimos el fichero leído en un array de cadenas
For Each linea In afichero
alinea = Split(linea, ";") 'dividimos cada línea de leída en sus dos valores y los guardamos en variables
n += 30 'variable incremental que da el valor y para posicionar el control
lbl = New Label(Panel1) 'creamos la etiqueta y alimentamos sus propiedades
lbl.y = n
lbl.width = anchocontrol / 2
lbl.x = 0
lbl.Alignment = Align.Right
lbl.Height = altocontrol
lbl.text = alinea[0]
lbl.visible = True
txtbx = New Textbox(Panel1) 'creamos el textbox y alimentamos sus propiedades
txtbx.name = cnombre
txtbx.y = n
txtbx.x = lbl.width + 2
txtbx.Width = anchocontrol
txtbx.Height = altocontrol
txtbx.Text = alinea[1]
txtbx.visible = True
Next
End
Public Sub Button1_Click()
Dim obj As Object
Dim cContenido As String
For Each obj In Panel1.Children 'recorremos todos los controles de Panel1 recuperando su propiedad text y almacenándolas en una variable
cContenido &= obj.text
If obj Is Textbox Then cContenido &= gb.NewLine
Next
File.Save(seleccionado, cContenido) 'guardamos esa variable en el fichero
End
Más sencillo que todo el XML ese.
gracias por el consejo pero no es lo que necesito igual el problema de que no me reconociera el archivo ya lo solucione, en vez de poner File.load puse Dialog.Path ya que File.Load te carga el archivo y te devuelve el contenido de este, encambio Dialog.Path te devuelve la ruta del archivo.
ahora solo me queda la duda de el xmlreader que no la entiendo muy bien