|
Página 1 de 2
|
Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Funcion Scan
Hola!.
¿ Alguien le encontró un uso concreto ?. Puede que el uso sea para los ficheros de texto.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Domingo, 05 Octobre 2014, 21:17; editado 2 veces
|
#1 Domingo, 05 Octobre 2014, 21:16 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Funcion Scan
Shell:
No conocia esa orden, pero despues de leer la documentación y el comando like con sus patrones, se me ha ocurrido que se puede usar para procesar lineas de texto, filtrandolas usando distintos patrones, y obtener información de ellas, sin tener que usar ordenes de procesamiento de cadenas (mid,inst, etc), haciendo mucho más fácil y clara la obtención de información.
Esta tarde hago un ejemplo.
Saludos
Julio
|
#2 Lunes, 06 Octobre 2014, 14:14 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Funcion Scan
La función " Scan ()" parece ser una especie de función " Split ()".
La función devuelve un vector de tipo " String" contenente aquellas partes de la cadena identificadas en base a uno o más carácteres contiguos (claramente el espacio tambien es un carácter) existentes en la cadena; y en todo caso colocados dentro de dos meta-carácteres *
Un ejemplo:
última edición por vuott el Lunes, 06 Octobre 2014, 14:37; editado 6 veces
|
#3 Lunes, 06 Octobre 2014, 14:25 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Funcion Scan
Bueno, os dejo mi ejemplo:
Se trata de averiguar la funciones (privadas, publicas), subrutinas ( privadas y publicas), y las variables (privadas, publicas, locales) de un proyecto realizado en gambas3.
Lo más interesante del código es esta parte:
For a = 0 To lineas.Max
lineas[a] = Trim(lineas[a])
'compruebo patron: "PUBLIC SUB *"
LISTA = Scan(lineas[A], "PUBLIC SUB *")
If LISTA.count > 0 Then
TreeView1.Add(ruta & "/sub/publicas/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/sub/publicas")
Continue
Endif
LISTA = Scan(lineas[A], "PRIVATE SUB *")
If LISTA.count > 0 Then
TreeView1.Add(ruta & "/sub/privadas/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/sub/privadas")
Continue
Endif
'compruebo patron: "PUBLIC FUNCTION *"
LISTA = Scan(lineas[A], "PUBLIC FUNCTION *")
If LISTA.count > 0 Then
TreeView1.Add(ruta & "/function/publicas/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/function/publicas")
Continue
Endif
LISTA = Scan(lineas[A], "PRIVATE FUNCTION *")
If LISTA.count > 0 Then
TreeView1.Add(ruta & "/function/privadas/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/function/privadas")
Continue
Endif
LISTA = Scan(lineas[A], "DIM * AS *")
If LISTA.count > 0 Then
If TreeView1.Exist(ruta & "/variables/local/" & LISTA[0]) Then
datoanterior = TreeView1[ruta & "/variables/local/" & LISTA[0]].Text
datoanterior &= ", " & Str$(a)
TreeView1.Remove(ruta & "/variables/local/" & LISTA[0])
TreeView1.Add(ruta & "/variables/local/" & LISTA[0], datoanterior,, ruta & "/variables/local")
Continue
Else
TreeView1.Add(ruta & "/variables/local/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/variables/local")
Continue
Endif
Continue
Endif
LISTA = Scan(lineas[A], "PUBLIC * As *")
If LISTA.count > 0 Then
TreeView1.Add(ruta & "/variables/publicas/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/variables/publicas")
Continue
Endif
LISTA = Scan(lineas[A], "PRIVATE * As *")
If LISTA.count > 0 Then
TreeView1.Add(ruta & "/variables/privadas/" & LISTA[0], LISTA[0] & " en " & Str$(a),, ruta & "/variables/privadas")
Continue
Endif
Next
Como veis uso la orden SCAN para ir "filtrando" y sacar la informacion (nombre de las funciones, subrutinas,y variables) de cada linea de código del proyecto.
Os dejo una captura de pantalla de la información que se obtiene:
Descripción: |
Sistema para listar funciones, subrutinas y variables que usa cada archivo de clase y módulo de un proyecto realizado en gambas3 |
Descargar |
Nombre del archivo: |
AnalisisProyecto-0.0.1.tar.gz |
Tamaño: |
5.83 KB |
Descargado: |
16 veces |
Descripción: |
Sistema para listar funciones, subrutinas y variables que usa cada archivo de clase y módulo de un proyecto realizado en gambas3 |
Descargar |
Nombre del archivo: |
AnalisisProyecto-0.0.1.tar.gz |
Tamaño: |
5.83 KB |
Descargado: |
16 veces |
Descripción: |
Sistema para listar funciones, subrutinas y variables que usa cada archivo de clase y módulo de un proyecto realizado en gambas3 |
Descargar |
Nombre del archivo: |
AnalisisProyecto-0.0.1.tar.gz |
Tamaño: |
5.83 KB |
Descargado: |
16 veces |
|
#4 Lunes, 06 Octobre 2014, 17:37 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Funcion Scan
Está chulo, pero ¿por qué usas mayúsculas en el texto de los patrones que pasas a la función Scan?
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Lunes, 06 Octobre 2014, 17:46 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Funcion Scan
Jguardon:
¿por qué usas mayúsculas en el texto de los patrones que pasas a la función Scan?
Pues esta mañana me dio problemas usando minusculas, y con mayusculas no me los dio, por eso lo he dejado en masyusculas.
Nota:
Le he incorcorporado una pequeña mejora, con los iconos de funcion, propiedades, eventos...
Descripción: |
Ver estructura de funciones, varaibles y eventos dentro de las clases de un proyecto |
Descargar |
Nombre del archivo: |
AnalisisProyecto-0.0.2.tar.gz |
Tamaño: |
13.15 KB |
Descargado: |
22 veces |
Descripción: |
Ver estructura de funciones, varaibles y eventos dentro de las clases de un proyecto |
Descargar |
Nombre del archivo: |
AnalisisProyecto-0.0.2.tar.gz |
Tamaño: |
13.15 KB |
Descargado: |
22 veces |
Descripción: |
Ver estructura de funciones, varaibles y eventos dentro de las clases de un proyecto |
Descargar |
Nombre del archivo: |
AnalisisProyecto-0.0.2.tar.gz |
Tamaño: |
13.15 KB |
Descargado: |
22 veces |
|
#6 Lunes, 06 Octobre 2014, 18:24 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Funcion Scan
Vuott:
Pues es lo más parecido a un split.
Salida:
A|Vuott|no le gustan las serpientes|
Ha ido dividiendo por espacios y el ultimo ya no lo divide más por no tener mas asteriscos.
Julio:
Esta muy bien el ejemplo. Sería bueno añadir una leyenda para recordar que es la simbología y los colores (que solíamos ver en Gambas2).
Me quedo con el segundo ejemplo, que está aun mas chulo.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Lunes, 06 Octobre 2014, 23:39 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Funcion Scan
Shell:
Citar: Pues es lo más parecido a un split
Como ves en mi ejemplo, es muchísimo más potente que el split.
Citar: Sería bueno añadir una leyenda para recordar que es la simbología y los colores
Si ves el codigo fuente del programa, en la carpeta datos, tiene los nombre de cada iconito. Los he cogido del codigo fuente de gambas3, y creo que he usado los correctos, aunque hay algunos que tengo dudas...
Saludos
|
#8 Martes, 07 Octobre 2014, 08:15 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Funcion Scan
Julio:
Shell:
Citar: Pues es lo más parecido a un split
Como ves en mi ejemplo, es muchísimo más potente que el split.
En el ejemplo de la wiki de gambas, hace uso de split y de scan, de ahí la pequeña confusión.
El código necesito verlo con tranquilidad. Hoy día 7 de octubre es fiesta en Cádiz. Día de la patrona.
La virgen del Rosario. Lo que es para mi mas trabajo que un día normal. Aunque es una fiesta local,
espero al menos que los compañeros de hostelería hagan un buen día.
Shell escribió: Sería bueno añadir una leyenda para recordar que es la simbología y los colores
jsbsan escribió: Si ves el codigo fuente del programa, en la carpeta datos, tiene los nombre de cada iconito. Los he cogido del codigo fuente de gambas3, y creo que he usado los correctos, aunque hay algunos que tengo dudas...
En ese momento cuando escribía aun no había abierto el código.Se puede ver perfectamente lo que es con los nombres de los iconos.
Aplicaciones como la tuya serian muy útiles como complemento en gambas!.
( Tampoco es cuestión de poner ejemplos muy grandes para explicar algo.. jeje. )
Por ejemplo la frase o cadena de Vuott, parece chino mandarín!.
Si hablásemos así:
" Pues estaba yo "espacio", comiendo un "almohadilla" bocata, de "separador" jamón serrano, a un precio "porcentaje" económico "
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#9 Martes, 07 Octobre 2014, 11:11 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Funcion Scan
Pues es lo más parecido a un split.
Saludos
|
#10 Martes, 07 Octobre 2014, 15:11 |
|
|
|
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
|
|
|
|
|