Comment obtenir le nombre de lignes sans lire le fichier à la fin
Est-il possible d'obtenir le Nombre de Lignes dans un fichier Texte Volumineux ,mais sans Lire le contenu du Fichier ou de la lecture du fichier jusqu'à la fin et de Comptage++.
Peut-être il ya certains Attributs de Fichier ,mais impossible de la trouver .
Parce que je pourrais être dans certains cas où je devrais obtenir Nombre Total de Ligne et de le comparer à la ligne en cours pour afficher le Pourcentage,et juste pour un Affichage en Pourcentage, il peut être stupide, d'abord à lire l'ensemble du Contenu que de le lire à Nouveau pour Afficher le texte brut à l'utilisateur.
records
source d'informationauteur Burimi
Vous devez vous connecter pour publier un commentaire.
Pas. Vous devez lire le fichier. Pensez à l'enregistrer au début du fichier ou dans un fichier séparé lors de l'écriture du fichier, si vous voulez trouver rapidement sans compter.
Notez que vous pouvez écouter le fichier, et il est étonnamment rapide:
Oh, juste obtenir la taille du fichier et la longueur de chaque ligne, en octets, et de garder un nombre cumulatif du nombre d'octets traités jusqu'à présent.
Non, il n'y a pas d'autre moyen.
Un fichier n'est pas basé sur la ligne (ou le même personnage), donc il n'y a pas de méta-informations sur le nombre de lignes (ou le même nombre de caractères). La seule méta-données sur le contenu, c'est la longueur en octets.
Si vous avez quelques informations supplémentaires sur le fichier, par exemple, chaque ligne est exactement la même longueur, et il utilise 8 bits de codage, de sorte que le nombre de caractères est le même que le nombre d'octets, vous pouvez calculer le nombre de lignes à partir de la taille du fichier.
Comme Guffa et Jason dit, il n'y a aucun moyen d'obtenir les lignes autres que la lecture à la fin.
Pour résoudre votre problème de manière différente:
Si vous êtes intéressé dans le pourcentage d'affichage, vous pouvez essayer de acummulate que la valeur de la taille totale du fichier et la ligne que vous êtes actuellement. Vous devez appliquer un peu de vaudou astuces pour obtenir les octets lus (comme, disons, vous avez lu à la ligne 10, et un total de 200 octets ou quoi que ce soit) et la taille du fichier est 400bytes. Vous pourriez probablement suppose que vous êtes à 50%, sans avoir besoin de connaître un total de numéro de ligne.
C'est juste certains nombres aléatoires là, btw.