Buscando y el Verbo de Búsqueda Hemos visto cómo codificar una búsqueda de tabla propia, ahora vamos a mirar una alternativa, el verbo SEARCH. El verbo SEARCH automatiza el proceso de búsqueda y es útil en un gran porcentaje de las veces en que necesita realizar una búsqueda. Antes de que realmente discutamos el verbo SEARCH, debes revisar y entender la lógica de una búsqueda. Hay dos tipos de búsquedas: la BÚSQUEDA LINEAL y la BÚSQUEDA BINARIA. Ambos pueden ser codificados por el programador usando código tradicional o codificados por el programador usando el verbo SEARCH. La búsqueda que está codificada por el programador utilizando el código tradicional utiliza un OCCURE para definir la recurrencia de los elementos en la tabla y el subíndice para controlar paso a paso por el único elemento tabla a la vez utilizando el bucle. Echemos un vistazo más de cerca a un subíndice. Un subíndice es esencialmente un puntero que apunta a uno de los elementos de la tabla. El subíndice es un campo tradicional bajo el control del programador. El subíndice se inicializa normalmente con una instrucción MOVE y se incrementa con una instrucción ADD (o una sentencia SUBTRACT si el subíndice se redujo). El subíndice es definido por el programador. En contraste con el subíndice, el verbo SEARCH usa un índice que se define por nombre con la tabla. La configuración real del índice se realiza a través de COBOL. El índice es limitado en uso. Debe utilizarse con la tabla que lo definió y debe controlarse utilizando la instrucción PERFORM con la cláusula variable o el verbo SET. Esencialmente, un programador tiene mucho más control sobre la manipulación de un subíndice que un índice. Debido a que el índice se utiliza con el verbo SEARCH, las restricciones se definen para maximizar su uso efectivo en ese contexto. Búsqueda Lineal: La búsqueda que hemos buscado es una búsqueda lineal. Una búsqueda lineal comprueba el campo que necesitamos para coincidir con cada elemento de la tabla para ver si coinciden. Tradicionalmente, la búsqueda comienza con el primer elemento de la tabla y termina cuando se encuentra una coincidencia o hemos comprobado cada registro de la tabla. Cabe señalar que si los elementos de la tabla están en orden, una salida temprana puede ser codificada. Mirando el ejemplo de la sopa, los números de artículo están en orden. Si estamos buscando un partido a 18, no tenemos que buscar en toda la tabla, podemos dejar de mirar cuando el elemento en la tabla es mayor que el número que estamos buscando, 18. En otras palabras, cuando la búsqueda compara 18 A los 24 en la tabla, podemos declarar la búsqueda más ya que hemos pasado el punto donde el partido habría sido. Este ejemplo de la búsqueda tiene una salida temprana que se hace simplemente modificando el PERFORMAR HASTA. Se ha resaltado el cambio. Tómese un minuto para revisar la búsqueda tradicional a continuación y luego pasaremos al verbo de búsqueda. Ahora haremos la misma búsqueda usando el verbo SEARCH. Primero, necesitamos definir la tabla. La diferencia es que al definir la tabla, también establecemos el índice. El verbo SEARCH linear utiliza la sentencia SET para establecer el índice antes de la búsqueda. El verbo SEARCH es usado para ejecutar la búsqueda lineal. El formato de la sentencia SET es: También hay un formato especial para agregar o disminuir el índice: El formato del verbo SEARCH lineal es: Usando el verbo SEARCH, la búsqueda de una coincidencia en la mesa de sopa sería: Cosas Para tomar nota de: el nombre utilizado después de la búsqueda de palabras se definió con el OCCURS la cláusula AT END se utiliza para indicar qué proceso debe hacerse si la búsqueda no tuvo éxito - esta cláusula es opcional, por lo que si no se debe procesar especial realiza si la búsqueda no tiene éxito de esta cláusula se puede eliminar la cláusula WHEN compara el elemento de la tabla para el elemento del programa está tratando de igualar - entonces el tratamiento que debe hacerse si se encuentra el partido se codifica en cuenta que en la búsqueda Código usted mismo y el verbo SEARCH hay algunas similitudes. Ambos inicializan el subíndice o índice antes de iniciar la búsqueda. Ambos tienen una declaración de comparación comparando un elemento de la tabla para el elemento que está tratando de ser emparejado tanto la capacidad de procesamiento si el partido tiene éxito tanto la capacidad de procesamiento si el partido no tiene éxito la búsqueda binaria: Una búsqueda binaria es una búsqueda muy eficiente cuando Usted está tratando con una gran mesa. Tenga en cuenta que una búsqueda binaria sólo funcionará si la tabla está en orden por el elemento que está buscando. Una búsqueda binaria examina el primer elemento de la tabla. Si se encuentra una coincidencia, se realiza la búsqueda. Si no se encuentra una coincidencia, comprueba si el elemento que intenta coincidir es mayor o menor que el elemento intermedio. Si es más grande, que sabemos que sólo tenemos que mirar a la mitad de la mesa más allá de la mitad. Si es más pequeño, sabemos que sólo tenemos que mirar la mitad de la mesa antes de la mitad. Basándonos en esta decisión, hemos eliminado la mitad de la tabla de la búsqueda. Seguidamente miramos el elemento central en la mitad que queda y lo comparamos con el elemento. Esto o bien encontrar un partido o eliminar otro trimestre de la tabla. Tenga en cuenta que al establecer lo que es el centro si el número de elementos es par, el programador de una búsqueda binaria puede elegir redondear o truncar. Este proceso continúa hasta que se encuentra una coincidencia o está claro que el elemento no está en la tabla. En cuanto a los números de los puntos en nuestro ejemplo la sopa, la búsqueda binaria podría proceder de esta manera para encontrar un partido para el número 27: Lectura COBOL Presentaciones Este tutorial sobre cómo leer un diseño COBOL fue escrita específicamente para nuestros clientes que han tenido una conversión Realizados en Disc Interchange y han recibido un diseño COBOL con los datos. Su intención es darle información suficiente para leer diseños más sencillos. No cubre todos los temas o todo lo que encontraría en un diseño complejo, y se pretende explicar los diseños COBOL sólo para que pueda utilizar los datos convertidos, no para que pueda escribir programas COBOL. Este artículo comienza aquí: Lectura de COBOL Layouts donde también encontrará un índice de temas. Parte 1: Fundamentos de COBOL Examinaremos algunas reglas COBOL básicas, luego en algunos ejemplos, expandiendo los conceptos a medida que avancemos. Los términos recién introducidos aparecen en negrita. Contenido de esta sección: Necesidad de convertir archivos COBOL Eso es nuestro negocio Diseño de registros Un diseño de registros es una descripción de todos los campos individuales que componen cada registro del archivo de datos. Los diseños COBOL siguen reglas específicas. Puesto que no estamos enseñándole cómo programar en COBOL, sólo discutiremos las reglas que necesita saber para leer esquemas. El diseño especifica al menos el nombre de cada campo, su tipo, tamaño y posición en el registro. Un diseño puede dar una descripción detallada del uso de cada campo y los valores encontrados en él, pero esa información se encuentra a menudo en el diccionario de datos. Un diseño COBOL generalmente pertenece a un solo disco o archivo de cinta, en contraposición a una tabla dentro de una base de datos. Campos y la cláusula PIC El elemento de nivel más bajo en un diseño COBOL es un campo, también llamado elemento elemental. Se pueden asociar varios campos para formar un grupo. Todos los campos juntos forman un registro. Un diseño COBOL está compuesto por una línea para cada campo o grupo. Una definición de campo COBOL da el nivel (discutido más adelante), el nombre del campo y una imagen, o cláusula PIC, que le indica el tipo de datos o la categoría de datos del campo y su tamaño. Los tres tipos de datos que probablemente verán son: A para alpha (A-Z, a-z, y sólo espacio). 9 para un campo numérico (números 0-9, pero sin letras). X para cualquier carácter, (incluyendo binario). Por ejemplo, el siguiente campo (elemento elemental) se llama código postal y tiene 5 dígitos de ancho, como se especifica en los cinco 9. Es decir, la imagen del campo es 99999. Esto también podría escribirse: Donde el 9 significa que el tipo de campo es numérico, como el primer ejemplo, y el (5) dice que hay cinco dígitos. El 9 (5) y el 99999 son idénticas especificaciones de campo. Los paréntesis se usan generalmente cuando se hace la definición más corta o más clara, como en 9 (11) vs: 99999999999. El período al final separa esta definición de campo de la siguiente. Un campo de caracteres como el apellido podría escribirse: Significado Es un campo alfabético de 15 caracteres. Pero en realidad es más común ver campos de caracteres especificados como PIC X, como: PIC X permite cualquier carácter, incluyendo números, puntuación y códigos binarios. Al igual que el ejemplo numérico anterior, una especificación de campo PIC X podría escribirse como múltiples Xs o un recuento entre paréntesis, como estas dos especificaciones de campo idénticas: Aunque no se ve comúnmente en archivos COBOL, puede mezclar tipos en un campo. Por ejemplo, permite un guión (o cualquier cosa) entre ZIP y ZIP4, como 01886-2001. Un punto decimal en un PIC, como PIC 999.99 separa la porción entera de la parte decimal. Esto se discute con más detalle más adelante, junto con el decimal implícito. Deja la práctica uno más, apenas para conseguir el punto a través. Las siguientes son diferentes maneras de especificar la misma cosa: relleno Hay un tipo especial de campo COBOL llamado FILLER. Esto reserva espacio en un registro COBOL, comúnmente para expansión futura o para llenar una brecha creada por un campo redefinido. FILLER es una palabra reservada. Y puede tener tantos campos FILLER en un registro como desee - el nombre no tiene que ser único como los nombres de campo generalmente deben ser. El relleno también se puede utilizar para crear un campo, o lugar titular, que nunca tendrá que hacer referencia a por nombre, por lo que puede encontrar que contiene datos reales, no sólo espacio en blanco. También es común que un proveedor utilice campos para algún propósito interno, por ejemplo como un campo clave, pero para marcar esos campos como FILLER cuando los datos se envían fuera de la empresa. Así que los campos FILLER pueden contener cualquier cosa, incluyendo datos binarios. Usted no debe esperar que estén bien llenos de espacios. Personajes especiales de formato Hay una serie de caracteres especiales que causan acciones específicas en los datos, tales como ceros o espacios iniciales, signos flotantes, signos iniciales o remotos, puntos decimales, etc. Mencionaremos sólo algunos de los más comunes: 1. A Literal en un campo hace que ese carácter aparezca en esa ubicación. Por ejemplo, especifica un campo con cinco dígitos, un guión y cuatro dígitos más. El guión no forma parte de los datos variables: es un carácter literal. 2. Un punto decimal en un campo numérico hace dos cosas: coloca un punto decimal real en el archivo y determina la ubicación del decimal para los cálculos. El siguiente campo tiene seis bytes de ancho y tiene un decimal real en el archivo: Si ve un registro que contiene el valor 123.45 en este campo, verá 123.45 3. Una V en la cláusula PIC especifica la ubicación de un decimal implícito. Esto se discute más adelante, en la sección sobre campos numéricos. El campo siguiente tiene cinco bytes de ancho y tiene un decimal implícito en la ubicación del V: Si ve un registro que contiene el valor 123.45 en este campo, verá 12345. 4. Un signo menos, -, reserva un byte en el campo Registro de un signo real, y pone a - en valores negativos, y un espacio en valores positivos. 5. Del mismo modo, a en el PIC pone a - en valores negativos y a en valores positivos. Consulte la sección siguiente en los campos firmados para la representación de campos PIC S9. 6. Un P en una cláusula PIC escala el valor. Esto se ve raramente, por lo que seremos breves, a través de dos ejemplos: Los tres 9s hacen que este campo tenga tres bytes de tamaño y los tres Ps lo suban por 1000. Si el campo contiene los dígitos 123, el valor real representado Es de 123.000. Esto reduce el valor hacia abajo. Si el campo contiene los dígitos 123, el valor real es 0.000123 Columnas, números de línea y comentarios Las columnas 1-6 de la mayoría de los diseños COBOL son ignoradas por el compilador, como lo es todo después de la columna 72. A menudo encontrará números de línea u otros comentarios Tales como cuando un campo fue agregado o cambiado, o donde se originó) en estas columnas. Estos pueden ser útiles para usted en encontrar su camino alrededor de una gran disposición sólo tenga en cuenta que son ignorados por el compilador. Los diseños de COBOL se dividen en áreas, y hay muchas reglas para qué datos se pueden encontrar en qué área, pero uno que usted debe recordar es que un asterisco,, en la columna 7, el área del indicador da vuelta a la línea entera en un comentario, que es Ignorado por el compilador COBOL. Incluso si esa línea contiene una especificación de campo, se ignorará si hay una columna en la columna 7. Hay variaciones en los diseños COBOL que descartan las columnas 1-6, cambiando todo el diseño a la izquierda. Y, algunas documentación impresa no puede mostrar estas columnas. Normalmente puede encontrar su lugar en el diseño desde el nivel 01, que normalmente comienza en la columna 8. Todos los demás niveles deben comenzar en la columna 12 o superior. Una definición de campo COBOL no necesita ser enteramente en una línea. Un final de línea no tiene importancia para el compilador es el período al final que es el separador COBOL. No el retorno del carro. Niveles y grupos Los diseños COBOL tienen niveles, desde el nivel 01 hasta el nivel 49. Estos niveles le indican al compilador COBOL cómo asociar o agrupar los campos del registro. Nivel 01 es un caso especial, y se reserva para el nivel de registro el nivel 01 es el nombre del registro. Los niveles de 02 a 49 son todos iguales (el nivel 2 no es más significativo que el nivel 3), pero hay una jerarquía en la estructura. Cualquier campo listado en un nivel inferior (número más alto) está subordinado a un campo o grupo en un nivel superior (número inferior). Por ejemplo, LAST-NAME y FIRST-NAME en el ejemplo a continuación forman parte o pertenecen al grupo NOMBRE CLIENTE, como pueden verse los números de nivel de 05 y 10. Tenga en cuenta que NOMBRE CLIENTE no tiene un PIC, ya que es un grupo. No un campo. Observe también que los dos campos dentro del grupo están en un nivel inferior, nivel 10, que en el grupo 05. Los niveles inferiores son normalmente indentados más lejos para la claridad, pero esto no es necesario, y de hecho el compilador no importa. Para el resto de este tutorial usaremos los niveles 05, 10 y 15 para ser consistentes. Sólo recuerde que estas opciones son arbitrarias que podríamos haber usado 02, 03 y 04, o cualquier otro número entre 02 y 49. Puede haber muchos niveles. Aquí hay un breve ejemplo de un registro con tres niveles: La mayoría de los campos de este registro (empresa, dirección, ciudad, estado, zip) son campos simples que no necesitan comentarios. Pero hay algunas cosas interesantes sobre los campos de contacto: Hay un grupo llamado CONTACTS en el nivel 05. Dentro de este grupo hay tres grupos de 10 niveles. El primero es PRESIDENTE, y dentro de este grupo están los campos de NOMBRE PRIMERO y NOMBRE PRIMER para el presidente. Hasta ahora esto es similar al ejemplo anterior, con un nivel más. Este grupo es 23 bytes (15 8). A continuación tenemos un grupo que contiene el nombre del VP de Marketing. Este grupo también tiene 23 bytes. Obsérvese que utiliza los mismos nombres de campo, NOMBRE PRIMERO y NOMBRE FIRME, que se usan en el grupo de presidentes. Aunque esto no se ve comúnmente, se permite en COBOL. Se consideran campos diferentes porque están dentro de diferentes grupos. En COBOL usted los distingue haciendo referencia al NOMBRE DEL PRESIDENTE para el nombre del presidente y al NOMBRE DEL VP-MARKETING para el nombre del VP de Marketing. El último grupo del grupo CONTACTOS es para contactos alternos. Este contiene un campo llamado TITLE que contiene el título del contacto alternativo (por ejemplo, CEO). Al igual que los demás, contiene campos de LAST-NAME y FIRST-NAME. Este grupo es de 33 bytes. COBOLs 66 y 88 Niveles Estos dos niveles tienen un significado especial. El nivel 66 asigna un nombre alternativo a un campo o grupo. No agrega un nuevo campo al registro, sino que sólo asigna un nombre alternativo a un campo existente. No es probable que vea el nivel 66. Sin embargo, es probable que vea el nivel 88. El nivel 88 simplemente iguala un valor con un nombre. Heres un ejemplo simple: Esto iguala el valor M con MALE, y el valor F con FEMALE para el campo SEX. (Esto permite que su programa COBOL, por ejemplo, pruebe IF MALE en lugar de tener que decir SI SEXO ES IGUAL A M). Dado que no estamos enseñando programación COBOL, esto es incidental para nosotros, pero heres lo que es importante saber sobre el nivel 88: El nivel 88 no define un campo, y no toma espacio en el registro es simplemente una definición de valor. El nivel 88 no limita los códigos posibles sólo a los listados. Podría haber otros valores utilizados en ese campo M y F no son los únicos valores que puede encontrar. (A pesar de un buen diseño de la lista de todos ellos.) En este caso, puede haber un U (desconocido), o un espacio en blanco. Si el diseño está completo, esta es una lista práctica de los valores que puede esperar encontrar en este campo. A veces es todo lo que tienes que seguir. 88 niveles pueden especificar varios valores o un rango de valores, como: Siguiente: Parte 2 Disposiciones simples de COBOL Información adicional Para más artículos sobre conversión de datos, consulte nuestro índice TechTalk. Nuestro servicio de conversión COBOL Intercambio de disco El principal negocio de Companys es la conversión de archivos mainframe COBOL. De la lista de correo más simple a los datos financieros más complejos, tenemos las herramientas para convertir correctamente y Q. C. Sus archivos de manera eficiente y precisa. Con más de 32 años de experiencia con miles de archivos, tenemos el conocimiento para detectar problemas con los datos antes de que causen dolor. Podemos leer casi todas las cintas de IBM mainframe y convertir los archivos IBM EBCDIC. DISC también tiene un amplio soporte para VMS, UNIX y cintas de PC, y puede convertir la mayoría de los archivos COBOL de esos sistemas. Reading COBOL Layouts Este tutorial sobre cómo leer un diseño COBOL fue escrito específicamente para nuestros clientes que han tenido una conversión realizada en el disco Intercambio y han recibido un diseño COBOL con los datos. Su intención es darle información suficiente para leer diseños más sencillos. No cubre todos los temas o todo lo que encontraría en un diseño complejo, y está destinado a explicar diseños COBOL sólo para que pueda utilizar los datos convertidos, no para que pueda escribir programas COBOL. Este artículo comienza aquí: Lectura de COBOL Layouts donde también encontrará un índice de temas. Parte 4: Campos numéricos Esta sección describe varios tipos de datos numéricos y el manejo de signos y puntos decimales. Contenido de esta sección: Necesidad de convertir campos numéricos Ese es nuestro negocio COBOL tiene varios tipos de campos numéricos. Estos tipos de datos incluyen un campo DISPLAY, que está compuesto de caracteres (los caracteres EBCDIC o ASCII de 0 a 9), campos binarios, campos empaquetados y campos de coma flotante. También hay opciones para un signo o signo distinto o un sobrepunto de signo, y para decimal real o implícito. El tipo de datos se especifica mediante la cláusula USAGE IS. El USO ES Cláusula Hay realmente más a la declaración de la imagen que weve descrito previamente. Existe una cláusula USAGE IS que especifica el tipo de almacenamiento de un campo numérico: display, binario o computacional. La sintaxis completa, a través de un ejemplo, es: Esto dice para almacenar el campo en el formato computacional-3. El uso es parte es opcional y por lo general se dejan, y computacional puede ser abreviado COMP, por lo que más comúnmente verá esto escrito Los tipos de campos numéricos que verá comúnmente en los diseños COBOL son: Visualización (incluidos los campos firmados) Binario Computacional o Comp Comp-1 Comp-2 Comp-3 La visualización, incluidos los campos firmados o zonificados, es la más común, y comp-3 es el segundo tipo más común de campo numérico. Algunos compiladores también pueden tener comp-4 y comp-5 tipos de datos, por lo general para emular comp en otro compilador. Usage es Display El formato de visualización es el predeterminado para los números en COBOL. Si no se especifica ninguna cláusula de uso, el valor predeterminado es uso se muestra, lo que significa que el valor se almacena como caracteres EBCDIC (dígitos), a diferencia de binario. El valor puede o no tener un decimal - implícito o real - y puede estar sin signo o tener un signo incrustado o un signo separado - que puede ser líder o al final. El campo de formato de visualización firmado predeterminado contiene un signo de seguimiento incrustado y se denomina comúnmente un campo Firmado o Firmado por IBM o Zonificado. Este tipo de datos se describe a continuación. Campos firmados Hay un tipo de datos numérico común utilizado en COBOL en mainframes IBM denominado Signed (también denominado IBM Signed o Zoned). COBOL representa este tipo de campo por un S en la cláusula de imagen de un campo de formato de visualización, p. PIC S9 (6). Un campo Firmado está compuesto de caracteres numéricos EBCDIC regulares, un carácter por byte, para todos los dígitos excepto el que contiene el signo, ya sea el dígito más significativo (signo que conduce) o el dígito menos significativo (signo que arrastra) Dígito menos significativo. El dígito que sostiene el signo combina, o sobre golpea el signo del número en ese dígito. Esto guarda un byte que el signo ocuparía de otra manera. El valor de ese dígito se almacena como un valor binario, y es ORd con el código de signo, que es D0 hex para números negativos, C0 hex para valores positivos y F0 hex para valores sin signo. Debido al overpunch, el dígito que contiene el signo no aparecerá como un número cuando el campo se ve en modo de carácter EBCDIC. Si tiene el campo y visualiza un valor de 1.23 con un editor EBCDIC, leerá 0000012C. Los compiladores ASCII COBOL también usan un tipo de datos Firmados con un overpunch, pero los bits de signo son diferentes y no están estandarizados entre los compiladores. Vea nuestros campos Firmados de Tech-Talk para más detalles sobre los campos firmados de EBCDIC y ASCII. El signo es los campos de firma COBOL separados incrustan el signo en el valor por defecto (vea los campos firmados arriba). Pero hay una disposición en COBOL para un signo separado, y puede ser líder o al final. La declaración para esto es Esto puede ser combinado con la cláusula inicial o de arrastre: Esta sentencia puede aplicarse a un elemento elemental (campo) oa todo el registro. Campos computacionales y binarios Debido a que las computadoras realizan cálculos con números binarios, es más eficiente almacenar esos valores en el archivo en su forma binaria nativa que almacenarlos en la base 10 legible por el usuario. Si el número se almacena en su formato binario nativo, puede ingresarse desde el archivo y utilizarse directamente. Si se almacena en un formato de base diez tiene que ser convertido a binario antes de realizar cálculos en él, luego convertido de nuevo a base diez para el almacenamiento. COBOL define varios tipos de datos binarios. Vamos a enumerar un breve resumen aquí, y usted puede encontrar más detalles en los campos computacionales COBOL y en COBOL Comp-3 Packed Fields. Antes de comenzar, hay un punto importante a entender: El estándar COBOL deja la implementación real de la mayoría de los tipos de datos hasta el proveedor que escribió el compilador COBOL. La razón de esto es porque diferentes ordenadores - CPUs - utilizan diferentes representaciones binarias internamente, y funcionan mejor con su propio tipo de números binarios. Este enfoque resulta en compiladores mejores y más rápidos, pero también causa confusión, ya que un tipo de datos comp en una máquina no es necesariamente el mismo que comp en otra máquina. En la tabla siguiente se enumeran los usos comunes, no todos los compiladores seguirán estos tipos. Para más detalles sobre el orden de las palabras y los signos, vea el enlace anterior. El tipo de datos que un campo utiliza para el almacenamiento está determinado por la cláusula usage is en la definición de campo y, en la mayoría de los casos, el número de bytes de almacenamiento está determinado por el número de dígitos en el PIC. Los números de punto flotante siguen los formatos binarios estándar y, como tales, sus tamaños no están determinados por un PIC y no se utiliza PIC en la definición de campo. Descripción de cómo se almacena este tipo de datos El decimal empacado se implementa generalmente como comp-3. Véase comp-3. Al leer una especificación de campo binario o comp, el tamaño enumerado en el PIC es el número de dígitos decimales después de que el número se convierte de binario a base diez. En el caso de un campo empaquetado, su el tamaño después de desempacar. Real Decimal La mayoría de los programadores de PC tienden a pensar en términos de decimal real en valores numéricos. En un PC, si tiene un campo de dólares y centavos para, por ejemplo, el total de facturas, en la cantidad de 123.45, el archivo contendrá los seis bytes 123.45 (y probablemente un signo). En otras palabras, hay un punto decimal real en el archivo. COBOL puede hacer esto, también, a través de lo siguiente: O: La presencia de la. En el PIC causa un decimal real en el archivo. El decimal implícito, sin embargo, es mucho más común en COBOL. Implicado Decimal El valor decimal implícito simplemente significa que hay un punto decimal implícito en una ubicación especificada en un campo, pero que no se almacena en el archivo. La ubicación del decimal implícito se indica mediante una V en el PIC. El uso de decimal implícito ahorra espacio en el archivo. El decimal implícito puede aplicarse a cualquier tipo de campo numérico, incluido un campo compactado o comp-3. Por ejemplo, es un campo decimal implícito. Hay 6 dígitos, luego un decimal implícito - el V - y 2 dígitos más, para un total de 8 dígitos. El campo es de 8 bytes de tamaño no hay. En el archivo - la ubicación del punto decimal está implícita para estar entre el 9 (6) y el 99. Si el campo contiene 00000123 entonces el saldo de la cuenta es 1,23, porque hay un decimal implícito entre los dólares y centavos. Sincronización y alineación Este tema es un poco complicado para este tutorial, pero debe ser consciente de ello. Al utilizar el almacenamiento binario (binario y comp), algunos compiladores en algunas máquinas pueden requerir que un campo numérico comience en algún límite. Por ejemplo, en una máquina de 32 bits, puede requerir que se inicie un campo comp en un límite de 32 bits. Si especifica un campo comp en el centro de un registro y no sucede que comience en un límite de 32 bits (4 bytes), el compilador lo alineará con un límite de 32 bits para sincronizarlo. Lo que realmente se almacena en el archivo puede no ser el mismo que el PICs en el diseño de indicar. Esto no es un problema muy común, en parte porque los campos binarios y comp no son muy comunes en los archivos, pero debe ser consciente de ello. Información adicional Para obtener más artículos sobre la conversión de datos, consulte nuestro índice TechTalk. Nuestra empresa de servicios de conversión de disco de servicios de conversión COBOL puede convertir la mayoría de los tipos de datos numéricos, incluyendo todos los tipos de datos EBCDIC de mainframe de IBM y la mayoría de los tipos de datos ASCII de sistemas PC y UNIX. Nuestra biblioteca de rutinas de conversión nos permite manejar los trabajos difíciles que los compiladores COBOL estándar no pueden convertir.
No comments:
Post a Comment