Cobol - Ayuda con búsqueda en un arreglo (tabla) en Cobol

 
Vista:

Ayuda con búsqueda en un arreglo (tabla) en Cobol

Publicado por Nomad (1 intervención) el 18/08/2009 16:24:26
Hola a todos !... trabajo desde hace un tiempo con Cobol, y me he topado con un problema que aun no he podido resolver y espero alguien me pueda ayudar. Laso a describir mi problemática:

Tengo que armar un arreglo (o tabla), de 1 fila x 10 columnas. Dentro de este arreglo, llamado EVAL, tengo que realizar una búsqueda de un valor, que no sé en qué campo puede estar, para luego rescatar el valor del campo que le precede. He estado leyendo acerca del verbo SEARCH, pero al parecer no me serviría puesto que debo indicarle explícitamente el valor que quiero comparar, con el nombre de alguno de los campos del arreglo (en la instrucción WHEN).

Aquí intentaré graficar mi problemática:

EVAL

cpo 1 cpo 2 cpo 3 cpo 4 cpo 5 cpo 6 cpo 7 cpo 8 cpo 9 cpo 10
------------------------------------------------------------------------------------------------------------------
| A | 10 | B | 20 | C | 30 | D | 40 | E | 50 |
------------------------------------------------------------------------------------------------------------------

En mi programa, en una variable voy a recibir un valor, y debo buscarlo en EVAL. Por ejemplo, si dicha variable tiene como valor D, entonces debo buscar esta "D" en el arreglo, para, en caso de existir, rescatar el valor 40 (que le precede). Si utilizo el comando SEARCH, en el WHEN deberé indicarle qué campo comparar, por lo que no me sirve este último.

AGRADECERÉ MUCHO si alguien me presta algo de ayuda en este problema.

Muchas Gracias !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con búsqueda en un arreglo (tabla) en Cob

Publicado por SuperIndio (138 intervenciones) el 20/08/2009 16:54:46
Hola This case the error es mas bien de enfoque o vision
Tu dices 1 fila y 10 columnas
Yo digo un Vector de 10 filas directamente
y paso a la explicacion en codigo directamente:

En Working:
***********

01 W-Valor-A-Buscar Pic X(03) Value Spaces.

01 W-Vector.
03 W-Tabla Occurs 10 Times Indexed By Idx.
05 Campito Pic X(03).

01 S-It-Found Pic 9(01) Value 0.
88 This-Found Value 1.
88 Not-Found Value 8.

01 iPos Pic 9(03) Value 0.

En Procedure:
*************

Move '30' To W-Valor-A-Buscar.
Move 'A' To Campito( 1 ).
Move '10' To Campito( 2 ).
Move 'B' To Campito( 3 ).
Move '20' To Campito( 4 ).
Move 'C' To Campito( 5 ).
Move '30' To Campito( 6 ).
Move 'D' To Campito( 7 ).
Move '40' To Campito( 8 ).
Move 'E' To Campito( 9 ).
Move '50' To Campito( 10).

Initialize S-It-Found.
Set Idx To +1.
Search W-Tabla Varying Idx
At End Set Not-Found To True
When Campito( Idx ) = W-Valor-A-Buscar
Set iPos To Idx
End-Search
If Not-Found Then
Display "No lo Encontre.... Que lo pario!!!"
Else
Display Campito( iPos )
Display "Esta en la Pos: " iPos
End-If.

Salida
******

C:RealiaExe>test
30
Esta en la Pos: 006

C:RealiaExe>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con búsqueda en un arreglo (tabla) en Cob

Publicado por rolas (1 intervención) el 07/03/2012 22:54:03
es mejor hacerlo nivel 88 que con un arreglo
1er. declaras el nivel 88 con los datos que indicas.
mueves el valorde entrada a la variables del nivel 88
y simplementes comparas si existe. fin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar