Cobol - Soy novata, crear un archivo secuencial

   
Vista:

Soy novata, crear un archivo secuencial

Publicado por Patricia Davila (4 intervenciones) el 30/03/2011 14:19:25
Hola, soy novata, estoy estudiando cobol así que quien me pueda echar una mano se lo agradeceré. Quiero crear un archivo secuencial que a su vez en el mismo programa puedan añadir registros, luego quiero que el mismo programa me vaya mostrando por pantalla los datos que voy introducido en el archivo. Mi pregunta ¿Tengo que crear obligatoriamente otro programa para leer y mostrar por pantalla o lo puedo hacer todo junto? Mi código pueda que tenga errores, acepto sugerencia, gracias.

IDENTIFICATION DIVISION.
PROGRAM-ID. PEO01.
AUTHOR. PATRICIA..
REMARKS. CREAR UN ARCHIVO SECUENCIAL Y AÑADIR REGISTROS.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

INPUT-OUTPUT SECTION.
FILE-CONTROL.

SELECT A-CLIENTE ASSIGN TO DISK 'CLIENTE.SEC'
ORGANIZATION LINE SEQUENTIAL
ACCESS SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD A-CLIENTE.
LABEL RECORD STANDARD.
01 REG-CLIENTE.
02 DNI-CLIENTE PIC X(9).
02 NOM- CLIENTE PIC X(10).
02 APE1- CLIENTE PIC X(10).
02 APE2- CLIENTE PIC X(10).
02 DIR-CARNET PIC X(30).
02 TELF- CLIENTE PIC X(10).


WORKING-STORAGE SECTION.
77 MAS-REGISTRO PIC X.

PROCEDURE DIVISION.
INICIO-PROGRAMA.
PERFORM PEDIR.
STOP RUN.

OPEN OUTPUT A-CLIENTE.
MOVE ‘N’ TO MAS-CLIENTE


PEDIR.
DISPLAY 'DESEA AÑADIR NUEVO REGISTRO (S/N):'
ACCEPT MAS-REGISTRO NO BEEP LINE 23 COLUMN 30 PROMPT

PERFORM UNTIL MAS-REGISTRO = 'N'
DISPLAY 'INTRODUZCA EL DNI:'
ACCEPT DNI NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZA EL NOMBRE:'
ACCEPT DNI NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA LA DERECCION:'
ACCEPT NOM NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA EL PRIMER APELLIDO:'
ACCEPT APE1 NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA EL SEGUNDO APELLIDO:'
ACCEPT APE2 NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA EL DNI:'
ACCEPT DIR NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZA EL TELEFONO:'
ACCEPT TELF NO BEEP


DISPLAY 'DESEA GRABAR MAS REGISTRO (S/N):'
ACCEPT MAS-REGISTRO NO BEEP LINE 23 COLUMN 30 PROMPT

END-PERFORM.
CLOSE A-CLIENTE.

FALTA MOSTRAR EN PANTALLA.
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

Soy novata, crear un archivo secuencial

Publicado por patricia Davila (4 intervenciones) el 30/03/2011 14:34:07
El código con las variables corregidas.


IDENTIFICATION DIVISION.
PROGRAM-ID. PEO01.
AUTHOR. PATRICIA..
REMARKS. CREAR UN ARCHIVO SECUENCIAL Y AÑADIR REGISTROS.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

INPUT-OUTPUT SECTION.
FILE-CONTROL.

SELECT A-CLIENTE ASSIGN TO DISK 'CLIENTE.SEC'
ORGANIZATION LINE SEQUENTIAL
ACCESS SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD A-CLIENTE.
LABEL RECORD STANDARD.
01 REG-CLIENTE.
02 DNI PIC X(9).
02 NOM PIC X(10).
02 APE1 PIC X(10).
02 APE2 PIC X(10).
02 DIR PIC X(30).
02 TELF PIC X(10).


WORKING-STORAGE SECTION.
77 MAS-REGISTRO PIC X.

PROCEDURE DIVISION.
INICIO-PROGRAMA.
PERFORM PEDIR.
STOP RUN.

OPEN OUTPUT A-CLIENTE.
MOVE ‘N’ TO MAS-CLIENTE


PEDIR.
DISPLAY 'DESEA AÑADIR NUEVO REGISTRO (S/N):'
ACCEPT MAS-REGISTRO NO BEEP LINE 23 COLUMN 30 PROMPT

PERFORM UNTIL MAS-REGISTRO = 'N'
DISPLAY 'INTRODUZCA EL DNI:'
ACCEPT DNI NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA EL NOMBRE:'
ACCEPT NOM NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA EL PRIMER APELLIDO:'
ACCEPT APE1 NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA EL SEGUNDO APELLIDO:'
ACCEPT APE2 NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZCA LA DIRECCION:'
ACCEPT DIR NO BEEP LINE 23 COLUMN 30 PROMPT
DISPLAY 'INTRODUZA EL TELEFONO:'
ACCEPT TELF NO BEEP LINE 23 COLUMN 30 PROMPT

DISPLAY 'DESEA GRABAR MAS REGISTRO (S/N):'
ACCEPT MAS-REGISTRO NO BEEP LINE 23 COLUMN 30 PROMPT

END-PERFORM.
CLOSE A-CLIENTE.

FALTA MOSTRAR EN PANTALLA.
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

Soy novata, crear un archivo secuencial

Publicado por GATOMALO (21 intervenciones) el 31/03/2011 04:49:15
me parece que te falta grabar (write)
y si claro en el mismo programa puedes leer y mostrar sin necesidad de hacer otro programa.
declaras una variable
01 L pic 9999.
apertura.
open input a-cliente.
CABEZERA.
display spaces line 1 position 1 erase.
display "dNI nombre apellido direccion " line 1 position 1.
MOVE 2 TO L.
leer. read a-cliente next at end go fin.
IF L > 25 DISPLAY "SIGUIENTE PAGINA" LINE 24 POSITION 1
ACCEPT L LINE 24 POSITION 40
PERFORM CABEZERA.
display dni line L POSITION 1.
DISPLAY NOM LINE L POSITION 15.
DISPLAY APE1 LINE L POSITION 30.
DISPLAY DIR LINE L POSITION 50.
ADD 1 TO L.
GO LEER.
FIN.
CLOSE A-CLIENTE.
EXIT PROGRAM.



ESPERO TE SIRVA.
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

Soy novata, crear un archivo secuencial

Publicado por Patricia Dávila (4 intervenciones) el 31/03/2011 12:11:46
Perfecto, muchas gracias GATOMALO por la ayuda.
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