Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox


Objetivo: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
Hola compañeros programadores, como están, espero que bien y saludos.

Quiero comentarles que tengo una lista en un combobox pero quisiera guardar esa misma lista en un txt o conf no importa la manera y que desde luego yo pueda agregarla o cargarla de nuevo al combobox, he visto en muchos hilos la manera pero de un textarea o textbox y no encuentro la manera en un combobox, si analizamos el combobox es como un vector y pensé en recorrerlo con un ciclo for pero me doy cuenta que logro recorrerlo pero no capto cada una de las palabras agregadas en la lista del mismo solamente agrega la ultima de la lista, por lo que si me podrían explicar un ejemplo mas o menos y gracias por sus ayudas.

Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
jousseph:
Deberias usar la propiedad .list

http://gambaswiki.org/wiki/comp/gb.qt4/combobox/list?l=es

Esta devuelve un array de string[] con los datos que almacena en la lista del combobox.


Luego usas el método .join() para unir todas las cadenas en una, unado el caracter separador "|", por ejemplo:

contenido=(combobox.list).join("|")

Ese contenido lo guardas en un archivo

Luego lees el archivo, y usas split, para separar la cadena en array de cadenas.

Luego recorres el array de cadenas, añadiendo cada cadena al combobox, usando el método .add.

Ese es mas o menos el proceso...

Saludos

Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
buenas, jousseph hice este ejemplo creo que es lo que buscas.

guardarcargarlistacombobox


ejemplo aquí: Manipulando datos de un combobox

Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
Holas como estan, saludos

señor jsbsan

Citar:
Esta devuelve un array de string[] con los datos que almacena en la lista del combobox.

Luego usas el método .join() para unir todas las cadenas en una, unado el caracter separador "|", por ejemplo:

contenido=(combobox.list).join("|")

Ese contenido lo guardas en un archivo


Señor jsbsan lo hice asi y me guarda bien muchas gracias

Public Sub Button_guardar_archivo_txt_Click()
Dim contenido As String
contenido = (ComboBox_comandos.list).join(",")
'Guarda el archivo en un .txt
Dialog.Filter = ["*.txt", "Archivo txt"]
If Dialog.SaveFile() Then Return
File.Save(Dialog.Path, contenido)
Catch
Message.Info("Cannot save list:\\n" & Dialog.Path & "\\n " & Error.Text)


Ahora la parte que si me tiene atrapado es:

Citar:
Luego lees el archivo, y usas split, para separar la cadena en array de cadenas.

Luego recorres el array de cadenas, añadiendo cada cadena al combobox, usando el método .add


Yo me lo imagino asi:

Public Sub Button_cargar_archivo_txt_Click()
Dim ArrayContenido As String[]
Dim ar As Integer
Dialog.Filter = ["*.txt", "Archivo txt"]
If Dialog.OpenFile() Then Return

ArrayContenido = Split(file.load(Dialog.Path), "|")
For ar = 0 To ArrayContenido.count - 1 'recorro todo el contenido del array
ComboBox_comandos.text = ArrayContenido[ar]
'ArrayContenido.Add(ComboBox_comandos.Text)
ComboBox_comandos.Add(ComboBox_comandos.Text)
Catch
Message.Info(Error.Text)
Next
End


El problema es que no logro listar lo que encontré en el txt y que tome cada una de las palabras listadas del txt y las agregue a tiempo en que corro el array.


v3ector

Citar:
Off topic
buenas, jousseph hice este ejemplo creo que es lo que buscas.

guardarcargarlistacombobox


ejemplo aquí: Manipulando datos de un combobox


Ese tema esta tremendo usa la gb.settings si me fijio en el split("|") tambien tiene un ordenador de palabras agarra lo que estaba en el split y lo lista, voy a probarlos ahorita.

última edición por jousseph el Martes, 09 Septiembre 2014, 20:36; editado 2 veces
Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
jousseph escribió: [Ver mensaje]
El problema es que no logro listar lo que encontré en el txt y que tome cada una de las palabras listadas del txt y las agregue a tiempo en que corro el array.


Hola Jousseph

Claro, porque estás usando un símbolo diferente para unir lo que guardas en el fichero, que el que usas luego para separarlo en el Split. (primero usas la coma "," y luego usas la barra vertical "|".)

Tienes que usar el mismo en los dos casos. Además, aunque no lo he probado, la propiedad .List del combobox es de tipo array de cadena, es decir String[] que es lo mismo que devuelve la función Split, por lo tanto para cargar el combo de nuevo no hace falta crear ni recorrer el array; bastaría con hacer:

Combobox_comandos.List = Split(file.load(Dialog.Path), "|")



Nota para jousseph: Veo que has usado para el nombre del combobox el guión bajo en "Combobox_comandos". Esto no es recomendable, porque puede dar conflicto con algún evento, ya que el símbolo "_" se usa para declarar los manejadores de eventos.

Saludos

Perfil MP  
Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
Señor jguardon

Citar:
Claro, porque estás usando un símbolo diferente para unir lo que guardas en el fichero, que el que usas luego para separarlo en el Split. (primero usas la coma "," y luego usas la barra vertical "|".)


Tiene razón lo arregle y si me acomodo todo!

Citar:
Tienes que usar el mismo en los dos casos. Además, aunque no lo he probado, la propiedad .List del combobox es de tipo array de cadena, es decir String[] que es lo mismo que devuelve la función Split, por lo tanto para cargar el combo de nuevo no hace falta crear ni recorrer el array; bastaría con hacer:

También tiene razón es un array estaba haciendo doble trabajo!

Código: [Ocultar] [Seleccionar]
Combobox_comandos.List = Split(file.load(Dialog.Path), "|")


Esa forma simple me funciono! no hubo que hacer mas arrays!

Ahora viendo el tema tanto de split con el ["|"] del señor jbsan como el de v3ctor para guardar agregar al txt son tan buenos que ni supe por cual decidirme realidad los queria usar todos jajajaja

1- El del compañero v3ctor usa un create write y read para gestionar el txt fuera de eso usa un acomodador para listar las palabras en un txt, tengo que mencionar que este no molesta mucho porque guarda directo ya con nombre el archivo y lo agrega rápidamente de la ruta, pero debido a que usa una unica ruta que sucederia si no esta el archivo o tiene otro nombre? pues lo acomode para que si no lo consiguiera dijera no esta el archivo y quedo deee lujo.

Codigos de ejemplos:

Public Sub btnGuardarLista2_Click()
Dim ArchivoX As File
Dim dato, lista As String
For Each dato In ComboBox1.List
lista &= dato & gb.NewLine
Next
ArchivoX = Open User.Home & "/Lista de comandos.txt" For Write Create
Write #ArchivoX, lista
Close ArchivoX
btnCargarLista2_Click()
End


La parte que acomode al cargar el txt

Public Sub btnCargarLista2_Click()
Dim ArchivoX As File
Dim LineaX As String
Dim encontrar As String
ComboBox1.Clear
TextArea2.Clear
encontrar = User.Home &/ "Lista de comandos.txt"
If Not Exist(encontrar) Then
Message.Warning("NO PUEDE CARGAR LA LISTA PORQUE NO SE ENCUENTRA O DEBERIA DE CREAR UNA NUEVA!")
Else
ArchivoX = Open User.Home & "/Lista de comandos.txt" For Read
While Not Eof(ArchivoX)
Line Input #ArchivoX, LineaX
TextArea2.Text &= LineaX & gb.NewLine
ComboBox1.Add(LineaX)
Wend
Close ArchivoX
Endif
End



2-El del señor jsbsan tambien es buenísimo la diferencia es que da la opción de guardar el archivo en una carpeta y con que nombre y que se usa mucho ["|"] para separar las palabras.

Entonces el código me quedo así:

Public Sub Button_guardar_archivo_txt_Click()
Dim contenido As String
contenido = (ComboBox_comandos.list).join("|")
'Guarda el archivo en un .txt
Dialog.Filter = ["*.txt", "Comandos.txt"]
If Dialog.SaveFile() Then Return
File.Save(Dialog.Path, contenido)
Catch
Message.Info("Cannot save list:\\n" & Dialog.Path & "\\n " & Error.Text)
End


Y el de cargar el txt asi:

Public Sub Button_cargar_archivo_txt_Click()
Dim ArrayContenido As String[]
Dim leer_archivo As String
Dim ar As Integer
Dialog.Filter = ["*.txt", "Comandos.txt"]
If Dialog.OpenFile() Then Return
Combobox_comandos.List = Split(file.load(Dialog.Path), "|")
Catch
Message.Info(Error.Text)
End


Tal como lo menciono el señor jguardon!.

Ahora esta función la necesito porque estoy desarrollando una consola de comandos con multifunciones, personalizaciones y ayudas lo cual me interesa guardar mas comandos para cargarlos, tambien se me ocurre crear una base de datos sqlite para guardarlos y traerlos en la form.open en los combobox

gestor_jou_nuevo

Otra cosa que estoy pensando es que el reproductor de gambas no tiene una lista de musicas al menos para el de audio porque desgraciadamente muchos no podemos usar la gb.media en debian, entonces seria bueno al menos crearle al reproductor de audio una lista de musicas y guardar la lista.

Ustedes dirán que para que le di temas a la consola como el cambio de color y agregarle un imagen? bueno porque como la terminal toda la vida ha estado negreada y que muchos usuarios les da miedo usarla seria bueno que se animaran y se familiarizaran con ella

Bueno ante todo muchas gracias por sus ayudas y espero pronto publicarlos por aquí, un abrazo

Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
jousseph escribió: [Ver mensaje]


Bueno ante todo muchas gracias por sus ayudas y espero pronto publicarlos por aquí, un abrazo



eso espero, ya que he visto el egoísmo de muchos que no suben sus códigos, cosa que va en contra de la esencia del software libre

Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
V3ctor

Citar:
eso espero, ya que he visto el egoísmo de muchos que no suben sus códigos, cosa que va en contra de la esencia del software libre



Eso no es nada vector estuve hace días analizando las licencias de software libre y me cayo como un baldado de agua cuando leí esta licencia que trae gambas al crear el paquete instalador, la licencia non-free lo que significa para debian y para gnu linux

En debian

main

En este directorio se encuentran los paquetes 100% libres, esto quiere decir que cumplen o estan deacuerdo con lasdirectivas de Debian, en donde marcan cuando un paquete se le puede considerar que es 100% software libre.

non-free

Aquí se encuentran paquetes que no pueden considerarse software libre según las directivas de Debian, por dar un ejemplo, hay software que puede ser distribuido e instalado, pero no se tiene acceso a su código fuente (No todos de esta sección son así hay software que si se proporciona su código fuente), simplemente por la licencia que trae el software de este paquete no cuadra con las directivas de Debian, debido a eso se decide alogarlo en esta sección. Ver Pólemica …

contrib

En este directorio se pueden encontrar software libre, pero depende de alguna forma de un paquete que no es 100% libre

fuente: http://manchitrax0.wordpress.com/20...list-en-debian/
Fuente: http://www.debian.org/doc/manuals/r...l#s-ftparchives

Para gnu linux:

La expresión software no libre (en inglés non-free software) es usado por la FSF para agrupar todo el software que no es libre, es decir, incluye al llamado en inglés "semi-free software" (software semilibre) y al "propietary software".7 Asimismo, es frecuentemente utilizado para referirse al software que no cumple con las Directrices de software libre de Debian, las cuales siguen la misma idea básica de libertad en el software, propugnada por la FSF, y sobre las cuales está basada la definición de código abierto de la Open Source Initiative.

Fuente: http://es.wikipedia.org/wiki/Software_propietario

Sino me equivoco creo que non-free es un software semi libre que puedes crearlo, venderlo y permitir que los usuarios lo usen y lo copien pero sin derecho a modificarlo, perdonen por caer en otro tema pero quería mostrarlo para que supiesen.

Objetivo: Re: Como Guardar La Lista De Un Combobox En Un Txt Y Volver A Cargar El Txt Al Combobox
jousseph

cuando dije: he visto el egoísmo de muchos que no suben sus códigos

me referí exclusivamente a programadores que usan lenguajes de programación libres, y con eso me refiero a todas las libertades del software libre y sobre todo a una obligación igual de importante como lo son las 4 libertades del software libre, que es subir las modificaciones o hacer publico el código fuente.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4536s (PHP: -59% SQL: 159%)
Consultas SQL: 46 - Debug off - GZIP Activado