Remplir une grosse matrice

Messages postés
4
Date d'inscription
jeudi 30 octobre 2003
Dernière intervention
23 mai 2004
- - Dernière réponse : cs_olive2
Messages postés
4
Date d'inscription
jeudi 30 octobre 2003
Dernière intervention
23 mai 2004
- 23 mai 2004 à 00:00
Bonjour à tous, voici mon problème,
Je récupère au format ascii des enregistrements des voies de mesures,
Les fichiers générés sont gros (et de taille nettement supérieure aux 65536 lignes des feuilles Excel),

Afin de pouvoir les analyser et les traiter (calculs divers, moyenne…) j’utilise ce type de code :

Do While EOF(1) = False
Line Input #1, Ligne
'Rechercher la position des points virgules (séparateur par défaut)
‘et remplissage de la matrice Data(Nligne, Ncolone)
j=j+1
for i = 1 to len(Ligne)
PointVirgule = InStr(1, Ligne, ";")
Data(j,i) = Mid(Ligne, 1, PointVirgule - 1)
Next i
Loop
Close #1

Néanmoins cette méthode est extrêmement lente lorsqu’il s’agit d’analyser un fichier de 500.000 lignes et 50 colonnes, existe t’il une méthode nettement plus rapide en VBA, une API qui le ferait,
Actuellement on m’a fait ce code en Matlab, qui traitant de façon vectorielle les données est nettement plus rapide, mais ne disposant que d’Excel j’aimerai m’affranchir d’un autre logiciel.

Par avance merci.
Olive.
Afficher la suite 

6 réponses

Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Faut que tu te fasses une DLL en C pour traiter de pareilles volumes, la solution est hors de portee de VB.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
4
Date d'inscription
jeudi 30 octobre 2003
Dernière intervention
23 mai 2004
0
Merci
Merci pour ta réponse, ça m'évitera de continuer à chercher pour rien sous VBA...
J'ai par contre remarqué que pour une boucle "pure" VBA était plus rapide que Matlab, donc je pensais que mon code était mal fait pour ce pb.

saurais tu par hasard si qq'un c'est déjà penché sur ce pb en C (dll) et où/comment la retrouver.

le C ou C++, c'est trop compliqué pour moi :)

Encore merci et à bientôt.
Olive.
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Mais non ce n'est pas trop complique, faut s'y mettre, seulement de la pure logique.
Pour la DLL, il ne s'agit pas de la retrouver mais bien de la faire sur mesure pour ton probleme.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
4
Date d'inscription
jeudi 30 octobre 2003
Dernière intervention
23 mai 2004
0
Merci
J'ai une autre question alors ;)
j'ai "récupéré" visual C++ 6,
j'ai donc en main toutes les cartes, j'ai acheté un gros pavé de +600 pages, mais comme j'aime pas attendre et me taper tout le tutorial, où pourais-je trouver un bon tutorial qui m'explique (vite) comment récupérer un bout de code VBA, le transformer en C++ "facilement", le compiler,
et surtout comment on en fait une dll avec C++, ou un .exe
qui sera plus rapide, et que je pourrais appeler depuis Excel, où je mets mes résultats.

Merci encore pour tes réponses et tes encouragements.

A+
Olive.
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
Alors la tu n'es pas sur la bonne voie.
Tranformer du VB en C, NON !
La 1ere chose a faire est un lavage de cerveau quasi au sens propre, faut OUBLIER tout ce que tu sais de VB et te mettre a penser en C, acces direct a la memoire.
Tu trouveras exemples sur cppfrance de DLL en C et ASM que j'ai fait pour VB pmais te reste a apprendre a manier tres correctement les pointeurs etc... avant.
En avant, tu as tout a y gagner.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
4
Date d'inscription
jeudi 30 octobre 2003
Dernière intervention
23 mai 2004
0
Merci
je viens de charger un tutorial bien noté,
http://www.cppfrance.com/code.aspx?ID=10738
je vais lire ça, après je reviendrais avec des questions moins "bêtes" !

A+ et merci.
Olive.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.