Parser et tester un fichier txt volumineux
jimichili
-
jimichili -
jimichili -
Bonjour,
J'ai un fichier .txt d'une taille de 300 Mo contenant plusieurs milliers de lignes de la forme suivante :
X Y Z
ou X, Y Z sont des nombres séparés par un espace.
je cherche un logiciel ou un bout de code me permettant de ne garder que les lignes où les nombres X et Y sont dans des intervalles donnés du type a<X<b et c<Y<d.
Pourriez-vous me conseiller qqch d'assez simple et robuste vu la taille du fichier, (sous windows ou linux), ?
Merci
JM
J'ai un fichier .txt d'une taille de 300 Mo contenant plusieurs milliers de lignes de la forme suivante :
X Y Z
ou X, Y Z sont des nombres séparés par un espace.
je cherche un logiciel ou un bout de code me permettant de ne garder que les lignes où les nombres X et Y sont dans des intervalles donnés du type a<X<b et c<Y<d.
Pourriez-vous me conseiller qqch d'assez simple et robuste vu la taille du fichier, (sous windows ou linux), ?
Merci
JM
A voir également:
- Parser et tester un fichier txt volumineux
- Comment réduire un fichier trop volumineux - Guide
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- Fichier rar - Guide
3 réponses
Salut,
Un algo qui serait simple, peu consommateur de mémoire et je pense assez rapide:
Un algo qui serait simple, peu consommateur de mémoire et je pense assez rapide:
//Remplace a,b,c et d par tes constantes
#define LIGNE_CORRECTE(X,Y) (a<X && X<b && c<Y && Y<d)
int main()
{
int x, y, z;
FILE *ancien = fopen("ancien.txt", "r");
FILE *nouveau = fopen("nouveau.txt", "w");
while (fscanf(ancien, "%d %d %d", &x, &y, &z)) {
if (LIGNE_CORRECTE(x,y))
fprintf(nouveau, "%d %d %d", x, y, z);
}
fclose(ancien);
fclose(nouveau)
return 0;
}