Rechercher : dans
Par :

Scilab -> Importer un fichier txt volumineux

Dernière réponse le 8 jui 2008 à 21:39:03 Odni, le 8 jui 2008 à 20:04:18 
 Signaler ce message aux modérateurs

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

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « Scilab > Importer un fichier txt volumineux » dans :
[MS-Dos] Ecrire dans un fichier texte en batch VoirPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" : echo texte_à_ecrire > fichier_de_sortie.txt Pour écrire à la fin d'un texte existant (concaténation) : echo "écriture a la fin du fichier ">>...
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.

1

Odni, le 8 jui 2008 à 20:08:00

PS: j'oubliais. Pour faire simple je ne peux utiliser que des softs libres de droits :p

Répondre à Odni

2

daronmaster, le 8 jui 2008 à 20:14:22

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... tchû

Répondre à daronmaster

3

Odni, le 8 jui 2008 à 20:17:22

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 !

Répondre à Odni

4

Odni, le 8 jui 2008 à 20:24:28

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à :'(

Répondre à Odni

5

daronmaster, le 8 jui 2008 à 20:55:29

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

tchû

Répondre à daronmaster

6

 Odni, le 8 jui 2008 à 21:39:03

Merci,

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

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

Super :D

Odni

Répondre à Odni