Accueil > > > CALCUL TABLEAU SOURCE DES DATA DANS UN FICHIER TEXTE
CALCUL TABLEAU SOURCE DES DATA DANS UN FICHIER TEXTE
Information sur la source
Description
Le code permet d'expliquer d'ouvrir un fichier de data et manipuler les données : - notion double/single - fichier volumineux plus de 32000 data - extraire des data dans un fichier - utiliser les tableaux (trie, incrementer, longueur) - calcul mathematique
Source
- SUB calcul
-
- '-------------------------------------------------------
- 'les parametres
-
- DIM texte AS STRING 'lecture de ligne
- DIM OFile AS STRING 'Fichier à ouvrir
- DIM n AS DOUBLE 'nb ligne
- DIM i AS DOUBLE 'compteur
- DIM b AS DOUBLE 'compteur
-
- 'Coef de calcul
- DIM LZ AS DOUBLE 'nb data
- DIM SC AS SINGLE 'Scale Factor - label (SINGLE pour format scientifique)
- DIM CX AS SINGLE 'Spacing CX (1.000000e-003) - label
- DIM LX AS DOUBLE 'Nb XN
- DIM MN AS DOUBLE '(ZA(LZ)-ZA(1))/(XN(LZ)-XN(1))
- DIM BZ AS DOUBLE 'ZA(LZ)-MN*XN(LZ)
- DIM ID AS DOUBLE 'Indice d'interval
- DIM IS AS DOUBLE 'saut d'interval 100
- DIM NB AS DOUBLE 'Quantite de point par interval
- DIM MA AS DOUBLE 'Max MJ
- DIM UD AS DOUBLE '10^6*MA - 18.4(16.97)
-
- 'tableau de valeur
- DIM ZN() AS DOUBLE 'Array(VAL(texte))
- DIM ZA() AS DOUBLE 'Array(ZN(LZ)*SC)
- DIM XN() AS DOUBLE 'Array(interval LZ*CX jusqu'a LZ)
- DIM ZL() AS DOUBLE 'Array(ZA(i)-(MN*XN(i))-BZ)
- DIM MJ() AS DOUBLE 'Array((ZL(i+NB)-ZL(i))/(XN(i+NB)-XN(i)))
-
- 'les variables
- OFile = "C:\data.txt"
- ID = 4 'Indice de calcul : 4 mm
- IS = 100 'saut tous les 100 points
- '-------------------------------------------------------
-
- OPEN OFile FOR INPUT AS #1'ouvre le fichier
-
- WHILE NOT EOF(1)'boucle le fichier
-
- LINE INPUT #1, texte
-
- n = n + 1 'on incremente, c'est moche mais c'est vb
-
- IF n = 4 THEN 'je veux extraire une valeur sur ma 4eme ligne
-
- SC = VAL(MID$(texte, 22, 14))'conversion du string, la valeur est situé au 22eme caracteres et compte 14 caracteres
-
- END IF
-
- IF n = 7 THEN 'je veux extraire une valeur sur ma 7eme ligne
-
- CX = VAL(MID$(texte, 11, 14))'On en prend un deusieme pour compliquer, 11eme caracteres et compte 14 caracteres
-
- END IF
-
- IF MID$(texte, 1, 1) = "-" THEN 'je lie les data qui commence par "-"
-
- LZ = LZ + 1 'toujours aussi moche, un ++LZ serait tellement mieux!
- REDIM PRESERVE ZN(LZ) 'redimensione le tableau au fur et a mesure
- REDIM PRESERVE ZA(LZ)
-
- ZN(LZ) = VAL(texte) 'conversion du string avant d'ajouter dans le tableau
- ZA(LZ) = ZN(LZ)*SC
-
- END IF
-
- WEND
-
- CLOSE #1'fin de la lecture du fichier
-
- LX = LZ*CX
-
- FOR i = CX TO LX STEP CX 'incrementation d'une table par interval LZ*CX pour arriver jusqu'a LZ
-
- b = b + 1
-
- REDIM PRESERVE XN(b)
-
- XN(b) = i
-
- NEXT i
-
- MN = (ZA(LZ)-ZA(1))/(XN(LZ)-XN(1)) 'On prend la premiere et la derniere valeur des tableaux
- BZ = ZA(LZ)-MN*XN(LZ)
-
- FOR i = 1 TO LZ
-
- REDIM PRESERVE ZL(i)
-
- ZL(i) = ZA(i)-(MN*XN(i))-BZ
-
- NEXT i
-
- NB = ID / CX
-
- FOR i = 1 TO LZ STEP IS 'On boucle mais par interval NB
-
- IF i+NB > LZ THEN 'on arrette le boucle si on depace le tableau
-
- EXIT
-
- END IF
-
- b = 1 + b
-
- REDIM PRESERVE MJ(b)
-
- MJ(b) = (ZL(i+NB)-ZL(i))/(XN(i+NB)-XN(i))
-
- NEXT i
-
- FOR i = 1 TO UBOUND(MJ()) 'longueur du tableau
-
- IF MJ(i) < 0 THEN 'Toutes mes valeurs doivent être positive
-
- MJ(i) = MJ(i)*(-1)
-
- END IF
-
- IF MJ(i) > MJ(i-1) THEN 'pour trouver la plus grande valeur du tableau MJ
-
- MA = MJ(i)
-
- END IF
-
- NEXT i
-
- UD = 10^6*MA
-
- MSGBOX "-- CALCUL --"& CHR$(13)_
- & "DATA :" & STR$(LZ) & "/" & STR$(n) & CHR$(13)_
- & "SCALE FACTOR :" & STR$(SC,3) & CHR$(13)_
- & "Spacing CX :" & STR$(CX,3) & CHR$(13)_
- & "LX :" & STR$(LX,3) & CHR$(13)_
- & "MN :" & STR$(MN,3) & CHR$(13)_
- & "BZ :" & STR$(BZ,3) & CHR$(13)_
- & "NB :" & STR$(NB) & CHR$(13)_
- & "MA :" & STR$(MA,3) & CHR$(13)_
- & "UD :" & STR$(UD,4)
-
- END SUB
SUB calcul
'-------------------------------------------------------
'les parametres
DIM texte AS STRING 'lecture de ligne
DIM OFile AS STRING 'Fichier à ouvrir
DIM n AS DOUBLE 'nb ligne
DIM i AS DOUBLE 'compteur
DIM b AS DOUBLE 'compteur
'Coef de calcul
DIM LZ AS DOUBLE 'nb data
DIM SC AS SINGLE 'Scale Factor - label (SINGLE pour format scientifique)
DIM CX AS SINGLE 'Spacing CX (1.000000e-003) - label
DIM LX AS DOUBLE 'Nb XN
DIM MN AS DOUBLE '(ZA(LZ)-ZA(1))/(XN(LZ)-XN(1))
DIM BZ AS DOUBLE 'ZA(LZ)-MN*XN(LZ)
DIM ID AS DOUBLE 'Indice d'interval
DIM IS AS DOUBLE 'saut d'interval 100
DIM NB AS DOUBLE 'Quantite de point par interval
DIM MA AS DOUBLE 'Max MJ
DIM UD AS DOUBLE '10^6*MA - 18.4(16.97)
'tableau de valeur
DIM ZN() AS DOUBLE 'Array(VAL(texte))
DIM ZA() AS DOUBLE 'Array(ZN(LZ)*SC)
DIM XN() AS DOUBLE 'Array(interval LZ*CX jusqu'a LZ)
DIM ZL() AS DOUBLE 'Array(ZA(i)-(MN*XN(i))-BZ)
DIM MJ() AS DOUBLE 'Array((ZL(i+NB)-ZL(i))/(XN(i+NB)-XN(i)))
'les variables
OFile = "C:\data.txt"
ID = 4 'Indice de calcul : 4 mm
IS = 100 'saut tous les 100 points
'-------------------------------------------------------
OPEN OFile FOR INPUT AS #1'ouvre le fichier
WHILE NOT EOF(1)'boucle le fichier
LINE INPUT #1, texte
n = n + 1 'on incremente, c'est moche mais c'est vb
IF n = 4 THEN 'je veux extraire une valeur sur ma 4eme ligne
SC = VAL(MID$(texte, 22, 14))'conversion du string, la valeur est situé au 22eme caracteres et compte 14 caracteres
END IF
IF n = 7 THEN 'je veux extraire une valeur sur ma 7eme ligne
CX = VAL(MID$(texte, 11, 14))'On en prend un deusieme pour compliquer, 11eme caracteres et compte 14 caracteres
END IF
IF MID$(texte, 1, 1) = "-" THEN 'je lie les data qui commence par "-"
LZ = LZ + 1 'toujours aussi moche, un ++LZ serait tellement mieux!
REDIM PRESERVE ZN(LZ) 'redimensione le tableau au fur et a mesure
REDIM PRESERVE ZA(LZ)
ZN(LZ) = VAL(texte) 'conversion du string avant d'ajouter dans le tableau
ZA(LZ) = ZN(LZ)*SC
END IF
WEND
CLOSE #1'fin de la lecture du fichier
LX = LZ*CX
FOR i = CX TO LX STEP CX 'incrementation d'une table par interval LZ*CX pour arriver jusqu'a LZ
b = b + 1
REDIM PRESERVE XN(b)
XN(b) = i
NEXT i
MN = (ZA(LZ)-ZA(1))/(XN(LZ)-XN(1)) 'On prend la premiere et la derniere valeur des tableaux
BZ = ZA(LZ)-MN*XN(LZ)
FOR i = 1 TO LZ
REDIM PRESERVE ZL(i)
ZL(i) = ZA(i)-(MN*XN(i))-BZ
NEXT i
NB = ID / CX
FOR i = 1 TO LZ STEP IS 'On boucle mais par interval NB
IF i+NB > LZ THEN 'on arrette le boucle si on depace le tableau
EXIT
END IF
b = 1 + b
REDIM PRESERVE MJ(b)
MJ(b) = (ZL(i+NB)-ZL(i))/(XN(i+NB)-XN(i))
NEXT i
FOR i = 1 TO UBOUND(MJ()) 'longueur du tableau
IF MJ(i) < 0 THEN 'Toutes mes valeurs doivent être positive
MJ(i) = MJ(i)*(-1)
END IF
IF MJ(i) > MJ(i-1) THEN 'pour trouver la plus grande valeur du tableau MJ
MA = MJ(i)
END IF
NEXT i
UD = 10^6*MA
MSGBOX "-- CALCUL --"& CHR$(13)_
& "DATA :" & STR$(LZ) & "/" & STR$(n) & CHR$(13)_
& "SCALE FACTOR :" & STR$(SC,3) & CHR$(13)_
& "Spacing CX :" & STR$(CX,3) & CHR$(13)_
& "LX :" & STR$(LX,3) & CHR$(13)_
& "MN :" & STR$(MN,3) & CHR$(13)_
& "BZ :" & STR$(BZ,3) & CHR$(13)_
& "NB :" & STR$(NB) & CHR$(13)_
& "MA :" & STR$(MA,3) & CHR$(13)_
& "UD :" & STR$(UD,4)
END SUB
Conclusion
Si y'a mieux ou si on peut optimiser certaine chose, je suis preneur.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
HELP !!! Enregistrement données d'un tableau dans fichier .txt [ par 71caro ]
Bonjour à tous , J'ai une appli composée de Form1 et Form2. Dans La Form1, je crée un tableau T et j'aurais besoin de récupérer les données de T dans
HELP !!! Enregistrement données d'un tableau dans fichier .txt [ par 71caro ]
Bonjour à tous , J'ai une appli composée de Form1 et Form2. Dans La Form1, je crée un tableau T et j'aurais besoin de récupérer les données de T dans
Tableau en excel [ par kokise ]
Salut tout, J'ai vraiment besoin d'aide j'avais poser la question hier mais je n'est pas reçu de réponse satisfesante a vrai dire j'ai cr
visualisation de structures de données sur un fichier [ par hela_bouks ]
Salut, la dernière fois ou j'ai posé mon problème, les réponses que j'ai reçues m'ont vraiment super aidées, c'est pour cela que je retente ma chance.
data [ par vercomax ]
bonsoir,j'ai un controle data1 lié à 1 fichier texteconnect = text;readOnly=falserecordsetType= 0-Tablej'ai un textbox relié à data1pas de problème po
Gestion d'un tableau de Bytes [ par cuzco38 ]
Bonjour,Je n'arrive pas à gérer corectement des données binérairesexplication:Via un socket winsock je fais un download ftp d'un fichier binaire volum
tableau est fichier INI [ par waspy59 ]
bonjourpour un petit prog j'utilise les fichier INI pour la sauvegarde de parametres ect...il a la structure suivante[info]...[Parametres]....la secti
remplir un tableau à partir d'un fichier csv [ par debutantvba ]
Bonjour à tous,je vous expose mon problème et vous remercie à l'avance de vos éventuelles réponses qui seront les bienvenues je vous assure !j'ai un f
effacer un fichier text, et un tableau de données [ par Rukialilly ]
Bonjour, voila je cherche comment effacer tout le contenu d'un fichier text, et je cherche également comment effacer toutes les données d'un tableau d
recuperer une structure tableau d'un fichier en c à un fichier en vbscript [ par vi87 ]
Bonjour,Je crée un script en c qui automatise des process. Je conserve mes valeurs dans un tableau statique de type structure que je declare comme cel
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|