Esta rutina permite buscar una cadena de texto dentro de un programa. Funciona exclusivamente para BBj y permite hacer búsquedas en programas con y sin números de líneas. A pesar de que en BBj existe el comando en modo consola SCAN, que se señala con el símbolo backslash “\” más el texto que se busca, esta rutina incluya la mejora de resaltar el texto que se está buscando (BASIS planea agregar esta característica en futuras liberaciones; a la fecha – marzo de 2010 – sigue pendiente):
rem "[busca] Busca cadena en programa rem "MundoBBx rem rem "Obtiene programa rem "---------------- pgm!=BBjAPI().getProgramInfo(pgm(-1)) rem rem "Obtiene listado rem "--------------- lista!=PGM!.getListingVector() rem rem "Pide valor a buscar rem "------------------- input 'cs',@(0,1),fill(80,"-"),@(0,0),'sb',"Ingrese busqueda: ",'sf',busca$ print @(0,2),'CE', rem rem "Proceso de busqueda rem "------------------- fila=2 for z=0 to lista!.size()-1 rem rem "obtiene linea rem "------------- line1$=lista!.getItem(z);line1$=cvs(line1$,1) rem rem "calcula lineas que usa al listar rem "-------------------------------- if len(line1$) then usa=int(len(line1$)/80)+1 else continue endif rem line2$=line1$ cadena$=$$ sep$=$$ hay=0 rem rem "busca cadena rem "------------ while pos(busca$=line1$) j=pos(busca$=line1$) cadena$=cadena$+line1$(1,j-1) cadena$=cadena$+'BR'+line1$(j,len(busca$))+'ER' line1$=line1$(j+len(busca$)) hay=hay+1 wend if len(line1$) then cadena$=cadena$+line1$ endif rem rem "muestra resultado si existe rem "--------------------------- if hay then print cadena$ fila=fila+usa endif rem rem "cuando se llena ventana rem "----------------------- if fila>20 then print @(0,fila),fill(80,"-") input "Presiona cualquier tecla para continuar ",*, print @(0,2),'ce', fila=2 endif next z stop
Deja un comentario