2010-02-10 8 views
2

Nous avons une application qui lit dans un fichier plat et analyse les données. Ce fichier ne contient aucune information d'en-tête ou de données totales avec lesquelles effectuer une somme de contrôle. Je voudrais donc créer des cas de test pour m'assurer que notre application gère correctement les fichiers "incomplets".Est-il possible de créer un fichier sans marqueur EOF?

Y at-il un moyen de créer un fichier plat sans marqueur EOF? Peut-être un outil que je peux utiliser pour enlever le marqueur EOF d'un fichier texte existant?

Répondre

4

Les fichiers plats ne contiennent pas de marqueur de fin de fichier. Presque tous les systèmes de fichiers modernes sont basés sur les flux, juste un tas d'octets sur le disque, ils n'ont pas de marqueurs d'enregistrement/fichier.
Tout signal de fin de fichier est ajouté par la bibliothèque std lecture du fichier

Vous devez tester qu'il traite correctement avec des lignes incomplètes (par exemple 3 valeurs plutôt que 4) et manquant/fin differnet de lignes (CR ou LF plutôt que CR/LF)

0

Il n'y a pas de caractère EOF standard - EOF est une condition retournée par la méthode qui lit à partir d'un fichier. Par exemple, dans C, getchar renverra une valeur négative spécifique au système lorsqu'il atteindra la fin d'un fichier. Les terminaux renverront l'ASCII 4 (EOT, pour la fin de la transmission) quand ils auront fini de transmettre, mais cela ne vous aidera pas beaucoup car vous n'aurez pas besoin de EOT dans vos fichiers pour commencer. Donc, c'est une bonne nouvelle pour vous - tous vos fichiers seront traités de la même manière, et vous n'avez pas à vous soucier de la gestion des fichiers sans fin.

Questions connexes