bonjour ,
j'ai un fichier contenant des millions de lignes (4000000) , je veux ecrire un alogo qui au hasard me permet d'extraire 10000 lignes ,
je n'ai pas trouvé l'idée comment faire !
qqun peut m'aider
bonjour ,
j'ai un fichier contenant des millions de lignes (4000000) , je veux ecrire un alogo qui au hasard me permet d'extraire 10000 lignes ,
je n'ai pas trouvé l'idée comment faire !
qqun peut m'aider
Si c'est un fichier texte dont les lignes ont des longueurs variables, tu es obligé de lire le fichier séquentiellement.
Une manière de faire est de tirer 10000 nombres au hasard entre 0 et ton nombre de lignes, de les trier par ordre croissant dans un tableau, puis de parcourir le tableau en lisant à chaque fois le bon nombre de lignes pour arriver sur celles qui t'intéressent :
C'est un schéma général. Il reste à gérer les éventuels doublons dans les nombres tirés au hasard (les supprimer et éventuellement en générer de nouveaux si tu veux exactement 10000 lignes).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 T[0] <- 0 Pour i de 1 à 10000 T[i] <- hasard(4000000) FPour Trier T par ordre croissant Pour i de 1 à 10000 Lire T[i]-T[i-1] lignes Traiter la dernière ligne lue Fin Pour
si c'est pour constituer un échantillon un simple modulo taille fichier/taille de l'échantillon devrait suffire
merci borisd c super![]()
Partager