|
Página 1 de 2
|
Buscar Datos Dentro De Un Archivo?
Autor |
Mensaje |
arglinux
Usuario
Registrado: May 2013
Mensajes: 10
Edad: 34
|
Buscar Datos Dentro De Un Archivo?
hola amigos miren lo que quiero es lo siguiente, supongamos que tengo un archivo llamado config.dat y dentro de este tengo el siguiente texto:
[texto1]texto uno[/texto1] [texto2]texto dos[/texto2]
bien lo que quiero saber es si hay alguna forma de abrir el archivo config.dat y luego que tanto lo que se encuentra entre [texto1] y [texto2] se escriban en un textarea, pero solamente lo que esta entre esos dos sin el texto:
[texto1][/texto1] [texto2][/texto2]
en resumen quiero que en el textarea solamente aparezca:
|
#1 Domingo, 26 May 2013, 23:47 |
|
|
sebikul
Sebastian
Programador
Registrado: Julio 2012
Mensajes: 113
Edad: 30 Ubicación:
|
Re: Buscar Datos Dentro De Un Archivo?
El siguiente codigo puede no estar bien, pero algo de este estilo deberia ser:
Dim iStart, iEnd as Integer
dim sTexto, sContenido as String
sTexto="[texto1]texto uno[/texto1] [texto2]texto dos[/texto2]"
iStart= InStr(sTexto, "[texto1]")
iEnd=InStr(sTexto, "[/texto1]", iStart)
sContenido=Mid(sTexto, iStart+1, iEnd-iStart)
Queda en ti implementar una función que lo haga de forma recursiva. Lee la documentación de todas las funciones que aparecen, e intenta entender el algoritmo que use. Si tienes alguna duda o necesitas ayuda solo vuelve a preguntar en este hilo.
Saludos!
última edición por sebikul el Lunes, 27 May 2013, 03:51; editado 2 veces
Editado por sebikul, Lunes, 27 May 2013, 03:51: Arreglado pequeño error en código
|
#2 Lunes, 27 May 2013, 03:49 |
|
|
arglinux
Usuario
Registrado: May 2013
Mensajes: 10
Edad: 34
|
Re: Buscar Datos Dentro De Un Archivo?
El siguiente codigo puede no estar bien, pero algo de este estilo deberia ser:
Dim iStart, iEnd as Integer
dim sTexto, sContenido as String
sTexto="[texto1]texto uno[/texto1] [texto2]texto dos[/texto2]"
iStart= InStr(sTexto, "[texto1]")
iEnd=InStr(sTexto, "[/texto1]", iStart)
sContenido=Mid(sTexto, iStart+1, iEnd-iStart)
Queda en ti implementar una función que lo haga de forma recursiva. Lee la documentación de todas las funciones que aparecen, e intenta entender el algoritmo que use. Si tienes alguna duda o necesitas ayuda solo vuelve a preguntar en este hilo.
Saludos!
gracias man me re sirvió, una ultima dudita, hay alguna forma de agregarle un progressbar a un comando shell, es decir por ejemplo coloco un shell para convertir un vídeo con ffmpeg, hay alguna forma de colocar un progressbar mientras este comando se esta ejecutando?, de ultima hay alguna forma de que mientras el video se esta comvirtiendo aparesca un label que diga "trabajando" y cuando termine diga "terminado" ??
|
#3 Lunes, 27 May 2013, 04:26 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Buscar Datos Dentro De Un Archivo?
Citar: , hay alguna forma de colocar un progressbar mientras este comando se esta ejecutando?
Si mirate este ejemplo, que analiza la salida que este generando el comando, para ir aumentando el valor del progressbar:
http://sologambas.blogspot.com.es/2...-2-version.html
Citar: hay alguna forma de que mientras el video se esta comvirtiendo aparesca un label que diga "trabajando" y cuando termine diga "terminado" ?
Si, mirate el libro de gambas (lo puedes descargar en la sección de documentacion del foro), donde explica como usar procesos.
|
#4 Lunes, 27 May 2013, 07:20 |
|
|
arglinux
Usuario
Registrado: May 2013
Mensajes: 10
Edad: 34
|
Re: Buscar Datos Dentro De Un Archivo?
Citar: , hay alguna forma de colocar un progressbar mientras este comando se esta ejecutando?
Si mirate este ejemplo, que analiza la salida que este generando el comando, para ir aumentando el valor del progressbar:
http://sologambas.blogspot.com.es/2...-2-version.html
Citar: hay alguna forma de que mientras el video se esta comvirtiendo aparesca un label que diga "trabajando" y cuando termine diga "terminado" ?
Si, mirate el libro de gambas (lo puedes descargar en la sección de documentacion del foro), donde explica como usar procesos.
gracias por sus respuestas, voy a ser un poco pesado pero es que recien entro en esto de gambas y quiero aprender, decidí remplazar el archivo de configuración por un xml que me lo genera el siguiente código:
Dim writer As XmlWriter
writer = New XmlWriter
dSelect = Inicio.psavechoser.SelectedPath
pnames = Inicio.pnombre.Text
writer.Open(dSelect & "/" & pnames & ".wcpg", True)
writer.StartElement("proyecto")
writer.Attribute("Nombre", pnames)
writer.StartElement("Nombre")
writer.Text(pnames)
writer.EndElement
writer.StartElement("URL")
writer.Text(Inicio.purl.Text)
writer.EndElement
writer.StartElement("Velocidad")
writer.Text(Str$(Inicio.pkb.Value))
writer.EndElement
writer.StartElement("Enlaces")
writer.Text(Inicio.siono.Text)
writer.EndElement
writer.StartElement("Continuar")
writer.Text("No")
writer.EndElement
writer.EndElement
este código da como resultado un archivo .wcpg el cual contiene el siguiente texto:
<proyecto>
<Nombre>test</Nombre>
<URL>http://hola.com</URL>
<Velocidad>20</Velocidad>
<Enlaces>No</Enlaces>
<Continuar>no</Continuar>
</proyecto>
bien a mi me gustaría hacer lo siguiente, en un botón colocar un comando que primero abra un dialogo en donde te de a elegir el archivo a abrir, que abra el archivo .wcpg y luego coloque en diferentes TextBox la información de el xml es decir:
texbox1 = el contenido que hay entre <Nombre> </Nombre>
textbox2 = el contenido que hay entre <URL> </URL>
hasta el momento el código que tengo es este:
Código de el botón:
y el public LoadFile es:
lamentablemente mi problema es que en primer lugar cargue el archivo que cargue siempre salta el error de No se cargo el archivo y en segundo lugar no logro entender como pegar los datos que dije anteriormente en los diferentes textbox.
desde ya muchas gracias por su ayuda.
|
#5 Lunes, 27 May 2013, 15:40 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Buscar Datos Dentro De Un Archivo?
En lugar de esto prueba:
En la variable fichero tienes el contenido del fichero seleccionado.
|
#6 Lunes, 27 May 2013, 18:26 |
|
|
arglinux
Usuario
Registrado: May 2013
Mensajes: 10
Edad: 34
|
Re: Buscar Datos Dentro De Un Archivo?
En lugar de esto prueba:
En la variable fichero tienes el contenido del fichero seleccionado.
en la linea fichero=File.load(Dialog.Path) me dice que no coinciden los tipos ya que requiere file y obtiene string a cambio
|
#7 Lunes, 27 May 2013, 18:44 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Buscar Datos Dentro De Un Archivo?
Pon string, pues, en lugar de file.
|
#8 Lunes, 27 May 2013, 19:17 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Buscar Datos Dentro De Un Archivo?
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, "\n", "\\", 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.
|
#9 Lunes, 27 May 2013, 19:25 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Buscar Datos Dentro De Un Archivo?
jeje, me he divertido haciendo este código.
Pongo aquí un ejemplo.
Saludos
|
#10 Lunes, 27 May 2013, 19:38 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|