Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Busqueda Combobox jmeza Fujitsu COBOL 4 23 de junio de 2024 18:46
[Duda] Path para búsqueda de archivos Armando PowerCOBOL (ActiveX, v4 - v11) 5 12 de marzo de 2021 14:44
[Sintaxis] Búsqueda nombre en ComboBox jmeza Fujitsu COBOL 1 10 de septiembre de 2020 19:22
[Información] Búsqueda en el Foro Kuk Funcionamiento del Foro 0 9 de septiembre de 2017 13:38
[Componente] Filtro de búsqueda en Combobox jmeza PowerCOBOL (ActiveX, v4 - v11) 6 2 de junio de 2017 14:40

Respuesta
 
Herramientas

  #1
Antiguo 25 de abril de 2015, 13:25
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8
Predeterminado Busqueda incremental
0 Inactivo Inactivo

Hola.

Tendo datos en una tabla, y quisiera en un Cmtext introducir los primeros caracteres para conseguir encontrar los elementos que coincidan con la columna2 de la tabla.

Lo intento hacer por codigo pero no me sale.
Existe algun comando para ordenar la tabla y asi facilitar la busqueda?.


Gracias
Breew is offline   Responder Con Cita
  #2
Antiguo 25 de abril de 2015, 16:56
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, de que tabla estamos hablando? De tabla interna COBOL o de BBDD con SQL?



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 25 de abril de 2015, 22:05
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola.

En principio de una tabla interna de cobol , la recojo de una hoja excell.
Lo que quisiera es poder teclear algunos caracteres en un cmtext y recoger las posibles coincidencias en un cmList o bien en otra tabla.

Saludos.
Breew is offline   Responder Con Cita
  #4
Antiguo 26 de abril de 2015, 01:05
JulioBenitez9470
Forero Junior
Última Actividad 21.11.2015 23:00
Posts Posts: 7
Likes enviados Enviados: 1
Likes recibidos Recibidos: 5

Yo tengo rutinas de busqueda de texto en registros de archivos, que mas o menos lo mismo, busco la existencia de una string que puede tener distintas longitudes en un campo de un archivo, por ejemplo el operardor busca "benitez julio" puede indicar que busque "b" "be" "ben" "beni" etc etc cuanto mas escriba menor sera el rango de coincidencias que vea, tambien tengo un buscador que uso con archivos de productos, que busca una string no solo en el comienzo sino en cualquier parte del texto (ej. "galletita" encontrara "CAJA DE 200 GR DE GALLETITAS SALADAS" o "GALLETITAS -LA RICA- 200 GR"
Si puede servirte mandame un correo y te envio el proyecto completo y vos usas lo que te sirva

saludos Julio
JulioBenitez9470 is offline   Responder Con Cita
  #5
Antiguo 26 de abril de 2015, 12:29
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Juliobenitez9470,

Hola.

Exacto, esto es lo que intento hacer.

Muchas gracias.

Saludos Cordiales

[email protected]

Última edición por Breew fecha: 26 de abril de 2015 a las 12:30. Razón: emial erroneo
Breew is offline   Responder Con Cita
  #6
Antiguo 26 de abril de 2015, 13:37
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, aqui tienes un pequeño ejemplo, el cual puedes adaptar un poco:

Código COBOL:
  1.      WORKING-STORAGE SECTION.
  2.      01  IDX-POS            PIC 9(5).
  3.      01  IDX-LON            PIC 9(5).
  4.      01  IDX-TBL            PIC 9(5).
  5.      01  WS-TEXTO-BSQ       PIC X(100).
  6.      01  TBL-LISTA.
  7.          05  TB-LISTA OCCURS 50 TIMES.
  8.              10  FILLER     PIC X(100).
  9.      
  10.      PROCEDURE DIVISION.
  11.          
  12.          MOVE 100 TO IDX-LON
  13.              
  14.          PERFORM UNTIL IDX-LON = ZEROS OR WS-TEXTO-BSQ(IDX-LON:1) NOT = SPACES
  15.              SUBTRACT 1 FROM IDX-LON
  16.          END-PERFORM
  17.          
  18.          IF  IDX-LON > ZEROS
  19.              MOVE 1 TO IDX-TBL
  20.              
  21.              PERFORM UNTIL IDX-TBL > 50            
  22.                  MOVE 1 TO IDX-POS
  23.                  
  24.                  PERFORM UNTIL (IDX-LON + IDX-POS > 100)
  25.                      OR WS-TEXTO-BSQ(1:IDX-LON) = TB-LISTA(IDX-TBL)(IDX-POS:IDX-LON)
  26.                      ADD 1 TO IDX-POS
  27.                  END-PERFORM
  28.                  
  29.                  IF  WS-TEXTO-BSQ(1:IDX-LON) = TB-LISTA(IDX-TBL)(IDX-POS:IDX-LON)
  30.                      INVOKE CmList1 "AddString" USING TB-LISTA(IDX-TBL)
  31.                  END-IF            
  32.              
  33.                  ADD 1 TO IDX-TBL
  34.              END-PERFORM
  35.          END-IF

P.D. Amigos, intentad no pasar cosas por e-mail, porque asi el resto no lo vemos.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 26 de abril de 2015, 21:59
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola Kuk.

No acabo de interpretar bien el codigo.
Lo he hecho funcionar y la busqueda la hace correctamente, pero solo encuentra la cadena si comienza por los primeros caracteres de la tabla, es decir si en la tabla tengo "KuK Administrador" si la busqueda la hago por Administrador no lo encuentra.

Es posible que sea por cambiar en tu codigo las variables IDX-1 y IDX-L ya que veo que no estan definidas en la working y tampoco acabo de entender su funcionamiento.

Saludos
Breew is offline   Responder Con Cita
  #8
Antiguo 27 de abril de 2015, 09:24
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, perdona, ya lo he corregido. Lo del IDX-1 venia porque al principio hice el codigo, luego renombre los indices para que sea mas comprensible. Te lo he modificado añadiendo una tabla interna. Te explico el codigo:

Tenemos 3 indices, de posicion, de longitud y de ocurrencias de tabla. Lo que hacemos en el primer buscle es buscar la longitud del texto a buscar. Si el texto a buscar existe (IF IDX-LON > ZEROS), en el segundo buscle recorremos todas las ocurrencias de la tabla, dentdo del cual hay un tercer buscle donde buscamos la cadena determinada en el campo WS-TEXTO-BSQ(1:IDX-LON) dentro de la tabla interna. Al salir del tercer bucle, preguntamos si lo ha encontrado, y si es asi, pues añadimos el registro a un CmList (como ejemplo, puede ser ListView u otra tabla interna).



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #9
Antiguo 27 de abril de 2015, 15:43
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola de nuevo.

Ok , Funciona Perfecto.

Realiza la busqueda de la cadena en cualquier posicion.

Muchas gracias por la paciencia.
Breew is offline   Responder Con Cita
  #10
Antiguo 27 de abril de 2015, 16:21
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Pregunta, no sería más rapido si cambiaseis:

Código COBOL:
  1.  MOVE 100 TO IDX-LON
  2.              
  3.          PERFORM UNTIL IDX-LON = ZEROS OR WS-TEXTO-BSQ(IDX-LON:1) NOT = SPACES
  4.              SUBTRACT 1 FROM IDX-LON
  5.          END-PERFORM

por:

Código COBOL:
  1.         COMPUTE IDX-LON = FUNCTION STORED-CHAR-LENGTH (WS-TEXTO-BSQ)

Ahorrariais un bucle que, en caso de que el "sitio" dónde buscar, tenga muchos registros, vendría bien, no lo he probado, pero creo que funcionaría igual de bien.

Un saludo.-
Josber is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:23.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.