Todos,
Então, eu estou carregando um arquivo de texto de C # para um IBMMainframe do MVS. O arquivo é convertido para ebcdic usando bibliotecas C # e funciona bem, pois eu posso ler os dados no mainframe. O problema são as novas linhas. O arquivo de texto tem 10 linhas de dados e, ao visualizá-lo no ambiente de mainframe, todos os dados estão presentes. Mas não há novas linhas, pois traduz cada nova linha do arquivo de texto como 0D25, que é CRLF. Este segmento aparece como .. na tela.
Eu não quero os 2 pontos que têm o hexleitura de 0D25, porque eu preciso colocar os dados na próxima linha como está no arquivo de texto. O arquivo é de comprimento de bloco variável uma vez no mainframe btw. Como posso obter a mesma formatação do arquivo de texto enquanto visualizo o arquivo carregado no MVS?
exemplo: VISTA DE ARQUIVO DE TEXTO
12345
23456
12346
IBM MAinFrame View
12345..23456..12346
ou se o comprimento do bloco foi atingido ..
12345..2345
6..12346
obrigado
Respostas:
4 para resposta № 1Se você está fazendo a tradução ASCII-EBCDIC fora do processo de transferência FTP, eu tenho que assumir que você está transferindo em modo binário (caso contrário a tradução seria feita novamente e seus dados seriam ruins).
Se esse é o caso, então eu tenho certezavocê é responsável pela conversão de terminações de linha também. Transferências binárias não tentarão converter terminações de linha. Você precisará preencher as linhas com os comprimentos desejados e remover as terminações de linha por completo, antes de enviá-las para o terminal. hospedeiro.
Por exemplo, se você transferir este arquivo:
12345
67890
no modo binário usando literal site recfm=vb
, você receberá o seguinte (mostrado no editor do ISPF com hex on
):
000001
3333300333330044444
12345DA67890DA00000
--------------------------
Você pode ver que ele acabou de transferir os bytes como estão, incluindo o CR / LF. Se você alternar para o modo ASCII no FTP e fazer o upload novamente, você terá:
000001 12345
FFFFF44444444
1234500000000
--------------------
000002 67890
FFFFF44444444
6789000000000
--------------------
Aqui, os caracteres foram convertidos nos pontos de código EBCDIC corretos e os finais de linha foram transformados em preenchimento com espaços EBCDIC.
Suponho que minha primeira pergunta a você seria: "Por que você está fazendo a tradução fora do FTP?"
A IBM investe bastante dinheiro para garantir queele aceitará todos os tipos de codificações diferentes e as converterá na página de códigos correta. É muito improvável que uma solução independente funcione em todas as versões internacionalizadas do z / OS e também da própria IBM.
Se vocês devo converter no cliente e transferir em bináriomodo, você terá que fazer com que o cliente faça a linha finalizar conversão e preenchimento também ou pós-processar o arquivo após a transferência, como com um script REXX.
Se você não conhecer Quais são as propriedades do conjunto de dados de destino (como se você estivesse transferindo para um membro em um PDS), a última opção pode ser a única viável.