Scilab -> Importer un fichier txt volumineux

Résolu/Fermé
Odni - 8 juil. 2008 à 20:04
icas77 Messages postés 2 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 18 avril 2012 - 16 avril 2012 à 13:50
Bonjour,

Je suis confronté à un double problème dans le traitement de données contenues dans un fichier txt.

1- Il fait environ 7Mo, 1 200 000 valeurs environ. Il se présente sous la forme:
19;24;32;41
5;62;75;84
91;10;11;12
...

+ environ 300 000 lignes :D

2- Si je connais un peu Matlab, Scilab c'est une autre affaire

****************************************************************

Ce que je souhaite obtenir: une matrice exploitable (i.e. des données numériques et pas des chaînes de caractères).
Dans la réalisation je me heurte à un problème principal: remplacer les séparateurs ';' par ' ' afin qu'ils soient interprétables par Scilab. Note Pad ou tout autre éditeur de texte plante avec la fonction "Remplacer ..."

Par ailleurs le code en lui même n'est pas si évident que ca pour moi !

Quelqu'un aurait une idée ?

Merci d'avance,

Odni
A voir également:

2 réponses

PS: j'oubliais. Pour faire simple je ne peux utiliser que des softs libres de droits :p
2
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
8 juil. 2008 à 20:14
Bonjour,

tu dis que ton editeur de texte n'arrive pas à remplacer un ';' par un ' ' ? je trouve cela étonnant.

peut-etre faut-il que tu lui laisse le temps car 7Mo c'est beaucoup.

ensuite, après avoir effectué ce remplacement (d'ailleurs tu peux peut-etre le faire avec l'editeur de Scilab) tu l'ouvres avec l'editeur de Scilab, tu mets un saut de ligne en fin de fichier et tu le resauvegardes. (Ne cherche pas à comprendre pourquoi, car moi non plus je ne sais pas pourquoi, je l'ai découvert).

enfin dans la console Scilab tu fais m=fscanfMat('le_nom_du_fichier.txt') et ainsi m contient la matrice qu'il y avait dans le fichier spécifié.

voila en espérant t'avoir aider...
1
Je vais tenter avec Scilab, mais avec un éditeur du style Notepad ca plante (Pas de réponse oO) !

Je te tiens au courant :)

Merci dans tous les cas !
0
Je confirme !

Ca mouline 5 minutes, puis ca commence à remplacer ; après ; au point que j'ai le temps de les compter ...

Je suis pas sorti de l'auberge à ce rythme là :'(
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44 > Odni
8 juil. 2008 à 20:55
je pense que c'est la seule maniere de procédé, à moins que tu ne t'y connaise en programmation dans un langage tel que le c ou autre qui te permettrai de le faire sans devoir l'afficher car c'est ça qui te fais mouliner. Et oui l'affichage ça coute à nos ordinateur.

sinon je pense que pour le reste cela devrait fonctionner nickel, bien entendu lors du chargement dde la matrice cela devrait mettre du temps également et bien entendu pour les traitements que tu vas effectuer c'est la meme chose.

peut etre peux-tu la prochaine fois faire des matrice moins conséquentes pour permttre un rapidité supérieure à celle que tu vas connaitre bientot

bon courage pour la suite

-1
Odni > daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009
8 juil. 2008 à 21:39
Merci,

Word a fonctionné pour le remplacement des ';'.

Pour la suite, la fonction proposée marche pile poil !

Super :D

Odni
0
icas77 Messages postés 2 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 18 avril 2012
16 avril 2012 à 13:50
Bonjour

j'ai le meme soucis mais un peu plus complique je pense, j'ai un fichier txt de 16 mo

qui se presente de la façon suivante:

123;11;'11;11;66;666;4444; ...

en fait, c'est compliqué car la première valeur est une fréquence et les autres non derière il ya 1900 autres valeurs différentes
apres ca refait la meme chose pour plus de 1900 fréquence


veuillez m'illuminer svp merci
0