2010-04-16 6 views
1

J'utilise FtpWebRequest pour ajouter des données à un fichier mainframe. Chaque enregistrement ajouté comporte 50 caractères, et je leur ajoute un enregistrement à la fois.Problème lors de l'ajout de FtpWebRequest à un fichier sur un macroordinateur

Dans notre environnement de développement, nous n'avons pas de mainframe, donc mon code a été écrit et testé en FTP sur un site FTP basé sur Windows au lieu d'un mainframe. Initialement, j'écrivais chaque enregistrement en utilisant un StreamWriter (en utilisant le flux du FtpWebRequest) et en écrivant chaque enregistrement en utilisant WriteLine (qui ajoute automatiquement un CR/LF à la fin). Lorsque nous avons exécuté ceci pour la première fois dans l'environnement de test (dans lequel nous écrivons sur un ordinateur central MVS), notre contact mainframe a déclaré que les CR/LF n'étaient pas lisibles par son programme (un programme d'ordinateur central de l'écran - il m'a envoyé des captures d'écran, c'est tout ce que j'en sais).

j'ai changé notre code à utiliser Write au lieu de WriteLine, mais maintenant mon code exécute avec succès (ie sans exception moulinée) lors de l'écriture de plusieurs dossiers, mais peu importe combien de dossiers que nous joignons, il est seulement capable de « voir » la premier enregistrement - selon son programme mainframe, il n'y a qu'un enregistrement de 50 caractères dans le fichier.

Je suppose que pour corriger cela, j'ai besoin d'écrire un autre caractère de délimitation de ligne à la fin du flux (au lieu de CR/LF) que le mainframe reconnaîtra comme un délimiteur d'enregistrement. Quelqu'un sait ce que c'est, ou comment je peux résoudre ce problème?

Répondre

1

J'ai effectivement eu exactement le même problème, et je l'ai corrigé en utilisant simplement LF comme délimiteur. J'ai également fini par écrire un script en ligne de commande et à envoyer à l'utilitaire ftp DOS, car la classe FTP .NET intégrée ne fonctionnait pas bien avec les commandes au format mainframe. et l'étrange structure "répertoire".

+0

LF = "\ n" et CR = "\ r" à droite? – MusiGenesis

+0

J'ai déjà souffert de la douleur. J'ai déjà rencontré le problème de structure du répertoire MVS - heureusement, notre cible a fini par être quelque chose d'aussi simple que "ftp://ggg.ddd.com//'FILE.EXT" "(avec la barre oblique supplémentaire et les guillemets simples). – MusiGenesis

+0

Il semble que l'ajout de LF au lieu de CR/LF peut nous corriger. Ils ont dit que la longueur de l'enregistrement était de 50 caractères. Pensez-vous que cela signifie que je devrais ajouter 51 caractères (les 50 + LF), ou que le LF devrait être le 50ème personnage? – MusiGenesis

Questions connexes