2016-04-05 1 views
1

Bonjour à Stackoverflow, j'ai été chargé de faire un schéma de fichier plat ainsi qu'une carte, cependant, nos spécifications sont qu'il ya 3 champs,Flat lignes de schéma de fichier plus que prévu

---------- 
Name       Length 
---------- 
TIdentity     2 
OIdentity     17 
Result        2 

Cependant , le fichier que nous recevons est long de 500 caractères (ish), y a-t-il un moyen de le faire ignorer les caractères vides restants?

Merci pour toute aide que vous avez peut-être en mesure de fournir

+1

Ensuite, soit la spécification est erronée ou la source a un bug. Vous devriez essayer de les corriger d'abord. Question: Est-ce que chaque ligne est délimitée par CR | LF? –

Répondre

1

Vous devez vous assurer définitivement la spécification et des exemples de fichiers sont corrects (en particulier que la spécification contient des exigences blancs/options), mais en supposant qu'ils sont et vous Je suis juste supposé ignorer les espaces, vous pouvez créer un nœud pour remplir les espaces et juste l'ignorer. Sans savoir un peu plus sur vos besoins, il est difficile de dire exactement comment cela devrait fonctionner. Si l'espace est toujours une longueur fixe, créez un nœud qui attend de nombreux caractères. Si ce n'est pas toujours une longueur fixe, vous devrez peut-être créer un nœud répétitif long d'un caractère mais pas le terminateur d'enregistrement (vraisemblablement CR/LF ou quelque chose du genre). Si l'espace lui-même est le délimiteur, vous pouvez peut-être faire quelque chose avec le ignore_trailing_delimiter sur l'enregistrement.

Dans le pire des cas (les espaces sont variables, vous ne pouvez pas contrôler le partenaire qui vous l'envoie et vous ne pouvez pas le traiter correctement), écrivez un composant Decode personnalisé pour pré-traiter le fichier et supprime les espaces inutiles.