alguem que perceba de cobol ?

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

alguem que perceba de cobol ?

Mensagempor fyngr » Segunda Mai 14, 2007 11:30

Boas,

alguem que perceba de cobol ?

preciso de extrair informação que está cheio de caracteres estranhos, para um ficheiro de texto, alguem me consegue ajudar?

cumps
Mário
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor capricorn » Segunda Mai 14, 2007 11:47

porquê cobol?
capricorn
Membro de Prata
Membro de Prata
 
Mensagens: 383
Registado: Sexta Ago 20, 2004 13:03
Localização: Porto

Mensagempor LuisFilipe » Segunda Mai 14, 2007 12:34

fyngr Escreveu:Boas,

alguem que perceba de cobol ?

preciso de extrair informação que está cheio de caracteres estranhos, para um ficheiro de texto, alguem me consegue ajudar?

cumps
Mário
Tens que explicar isso melhor.

Tens um ficheiro do qual queres extrair informação mas parte dele são caracteres estranhos.

Bem se for isso tem que se ver qual é o layout do ficheiro para poderes ler a informação da forma adequada.

Quando tens um numero entre 0 e 255 este é guardado num Byte ou seja um caracter estranho certo ( :roll: )

capricorn Escreveu:porquê cobol?
Será porque o ficheiro foi escrito por um programa (com source em Cobol) ?

Tens a source ?
É linear, tipo mesmo básico (pelo que me lembro)
LuisFilipe
Membro Diamante
Membro Diamante
 
Mensagens: 1270
Registado: Domingo Set 04, 2005 22:12

Mensagempor fyngr » Segunda Mai 14, 2007 13:03

é um programa que está feito em cobol...
nem sei bem como funciona as base de dados com cobol, mas tenho um ficheiro que tem uma tabela de produtos, preciso de passar para texto..
pelo que vejo, tem la a informação toda e certa, só que tem muitos outros caracteres que nao interessam.
qual é o layout?
como assim?
ja tou farto de procurar no google e afins e nada...
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor LuisFilipe » Segunda Mai 14, 2007 14:09

Código: Seleccionar todos
$ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  SeqWrite.
AUTHOR.  Michael Coughlan.
* Example program showing how to create a sequential file
* using the ACCEPT and the WRITE verbs.
* Note: In this version of COBOL pressing the Carriage Return (CR)
* without entering any data results in StudentDetails being filled
* with spaces.


ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT StudentFile ASSIGN TO "STUDENTS.DAT"
      ORGANIZATION IS LINE SEQUENTIAL.


Na data division tens o layout do ficheiro. (dados)
Código: Seleccionar todos
DATA DIVISION.
FILE SECTION.
FD StudentFile.
01 StudentDetails.
   02  StudentId       PIC 9(7).
   02  StudentName.
       03 Surname      PIC X(8).
       03 Initials     PIC XX.
   02  DateOfBirth.
       03 YOBirth      PIC 9(4).
       03 MOBirth      PIC 9(2).
       03 DOBirth      PIC 9(2).
   02  CourseCode      PIC X(4).
   02  Gender          PIC X.


Aqui temos o programa em si (procedimentos)
Código: Seleccionar todos
PROCEDURE DIVISION.
Begin.
    OPEN OUTPUT StudentFile
    DISPLAY "Enter student details using template below.  Enter no data to end."

    PERFORM GetStudentDetails
    PERFORM UNTIL StudentDetails = SPACES
       WRITE StudentDetails
       PERFORM GetStudentDetails
    END-PERFORM
    CLOSE StudentFile
    STOP RUN.

GetStudentDetails.
    DISPLAY "Enter - StudId, Surname, Initials, YOB, MOB, DOB, Course, Gender"
    DISPLAY "NNNNNNNSSSSSSSSIIYYYYMMDDCCCCG"
    ACCEPT  StudentDetails. 


Com base nisso e mais alguns conhecimentos da forma como o cobol armazena os dados (se tem um byte que indica o numero de caracteres de um campo de texto por exemplo, para poupar espaço) podes ler o ficheiro com uma outra qualquer linguagem.

http://www.google.com/search?hl=en&clie ... tnG=Search

http://www.siber.com/sct/datafile/intro.html


http://docs.hp.com/en/65/books/fhform.htm
3.1.1.1 Line Sequential Files

In line sequential files, each record in the file is separated from the next by a record delimiter. On DOS, Windows and OS/2 this is a carriage return (x"0D") and a line feed (x"0A") character. On UNIX it is just the line feed (x"0A") character. These characters are inserted after the last non-space character in each record so line sequential files always contain variable-length records.

Report files are line sequential, since most PC printers require the carriage return and/or line feed characters at the end of each record.

Most PC editors produce line sequential files, and these files can therefore be edited with almost any PC editor.

The primary use of line sequential files is for display-only data.


And soione and soione
LuisFilipe
Membro Diamante
Membro Diamante
 
Mensagens: 1270
Registado: Domingo Set 04, 2005 22:12

Mensagempor fyngr » Segunda Mai 14, 2007 14:55

desde já obrigado.

ja identifiquei esses ficheiros, como nunca tinha visto cobol a frente é um bocado dificil entender a primeira..

DATA DIVISION.
FILE SECTION.
FD StudentFile.
01 StudentDetails.
02 StudentId PIC 9(7).
02 StudentName.
03 Surname PIC X(8).
03 Initials PIC XX.
02 DateOfBirth.
03 YOBirth PIC 9(4).
03 MOBirth PIC 9(2).
03 DOBirth PIC 9(2).
02 CourseCode PIC X(4).
02 Gender PIC X.

esse pic és os espacos guardados para o campo?
o 9 quer dizer que é número?
o 7 é o numero guardado para o campo?

ja tinha esse programa que está nesse link, e é exactamente isso que queria, só que esse pograma custa 2.000 e tal dolares:x

achas que se te disponibilizar o ficheiro podes-me dar mais uma ajuda?
entretanto estou a ver se descubro qq coisa..

cumps
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31

Mensagempor LuisFilipe » Segunda Mai 14, 2007 16:28

fyngr Escreveu:...
ja tinha esse programa que está nesse link, e é exactamente isso que queria, só que esse pograma custa 2.000 e tal dolares:x

achas que se te disponibilizar o ficheiro podes-me dar mais uma ajuda?
entretanto estou a ver se descubro qq coisa..

cumps
Acho que sim


Código: Seleccionar todos
DATA DIVISION.
FILE SECTION.
FD StudentFile.
01 StudentDetails.
   02  StudentId       PIC 9(7).   = 9999999
   02  StudentName.
       03 Surname      PIC X(8 ).  = XXXXXXXX

       03 Initials     PIC XX.     = X(2)
   02  DateOfBirth.
       03 YOBirth      PIC 9(4).   = 9999
       03 MOBirth      PIC 9(2).   = 99
       03 DOBirth      PIC 9(2).   = 99
   02  CourseCode      PIC X(4).   = XXXX
   02  Gender          PIC X.      = X(1)

Ou seja podes usar PIC XXX ou PIX X(3) conforme te der mais jeito
LuisFilipe
Membro Diamante
Membro Diamante
 
Mensagens: 1270
Registado: Domingo Set 04, 2005 22:12

Mensagempor fyngr » Terça Mai 22, 2007 9:59

continuo sem conseguir resolver o problema...
há mais alguem que perceba de cobol?

cumps
Avatar do Utilizador
fyngr
Membro de Prata
Membro de Prata
 
Mensagens: 135
Registado: Segunda Out 03, 2005 16:31


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron