'Système.ArgumentOutOfRangeException' s'est produite dans mscorlib.dll

Vous en remercie d'avance! Je suis en train d'écrire une application pour lire un fichier txt et d'écrire sur Excel. Commencer petit, je suis juste en train de lire la première ligne.

La Console.WriteLine correctement la chaîne de sortie (qui a des espaces entre les caractères), mais lorsque je tente d'extraire les caractères de la chaîne, j'obtiens cette erreur: informations Supplémentaires: Index et la longueur doit se référer à un emplacement dans la chaîne.

while ((input = stream.ReadLine()) != null)
{
  //ACH HEADER LINE
  if (iCurRecLine == 0 && input.IndexOf(HeaderBeginKeyWord) >= 0)     
  {
    Console.WriteLine(input);

    RepDate = input.Substring(23, 6).Trim();
    RecordTypeCode = input.Substring(0, 1).Trim();
    PriorityCode = input.Substring(1, 2).Trim();
    ImmDestination = input.Substring(3, 10).Trim();
    ImmOrigin = input.Substring(13, 10).Trim();
    FileCreatedDate = input.Substring(23, 6).Trim();
    FileCreatedTime = input.Substring(29, 4).Trim();
    FileIDModifier = input.Substring(33, 1).Trim();
    RecordSize = input.Substring(34, 3).Trim();
    BlockingFactor = input.Substring(37, 2).Trim();
    FormatCode = input.Substring(39, 1).Trim();
    Destination = input.Substring(40, 23).Trim();
    Origin = input.Substring(63, 23).Trim();
    ReferenceCode = input.Substring(86, 8).Trim();
    ...
  }
}

Où ai-je fait de mal?

Ce qui est imprimé ici: Console.WriteLine(input);, ou mieux encore, comment est le champ de saisie?
Merci. La ligne de saisie est de ce genre, qui dispose de 94 caractères au total, les 8 derniers peuvent être blancs ou 0 (les x sont en fait des flans): 101x071000301x6759601771308202341f094101achxxxxxxxxxxxxxxxxxxxxfisxachxmilwaukeexxxxxxxx Lors de l'impression, il affiche correctement le x est vide. Pas sûr que sur les 8 derniers blancs.
Je suis conscient des sous-Chaînes de commencer à zéro. J'ai soigneusement examiné les index et la longueur et ils ont l'air OK pour moi. J'ai aussi essayé de modifier l'index et de la longueur du dernier champ après votre suggestion, mais toujours la même erreur...
Et si vous ne Console.WriteLine(input.Length), qu'est-ce que la production? Aussi, savez-vous sur quelle ligne que l'exception est levée?
bon appel. L'impression de la longueur de m'amène à regarder de plus près le fichier d'entrée, et découvre qu'ils ont soumis les 14 derniers caractères vides à la place des blancs. Merci à vous tous pour l'aide!

OriginalL'auteur Hing-Lun Ma | 2013-09-06