begin process at 2012 05 27 21:59:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > CALCUL TABLEAU SOURCE DES DATA DANS UN FICHIER TEXTE

CALCUL TABLEAU SOURCE DES DATA DANS UN FICHIER TEXTE


 Information sur la source

Note :
Aucune note
Catégorie :Base de Donnees Classé sous :calcul, tableau, fichier, données, data Niveau :Débutant Date de création :31/05/2006 Vu / téléchargé :6 867 / 442

Auteur : Fwdavy

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 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.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) RECHERCHE DE MOTS DANS UN DICTIONNAIRE par alpha5
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES ANIMAUX par okosa
Source avec Zip Source avec une capture LIST DES IMAGES AVEC BASE DE DONNÉES ET REPERTOIR D'IMAGE par yannickcephas
Source avec Zip Source avec une capture CHARGER UNE BASE DONNÉES DANS UNE LISTVIEW PUIS L'EXPORTER S... par johndave
Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa

 Sources en rapport avec celle ci

Source avec Zip CRÉATION D'UN FICHIER À PARTIR DE PLUSIEURS FICHIER (POUR É... par aloneinthedark
Source .NET (Dotnet) COMPRESSION par amine_hassini
Source avec Zip Source avec une capture CALCUL DE CRÉDIT IMMOBILIER/À LA CONSOMATION par lordxyp
Source avec Zip CALCUL DE LA FACTORIELLE D'UN NOMBRE AVEC TOUS SES CHIFFRES ... par violent_ken
Source avec Zip Source avec une capture COMPRESSION DE BASES DE DONNÉES par BZY1

Commentaires et avis

Commentaire de Renfield le 01/06/2006 09:25:38 administrateur CS

attention a ce genre de choses :

FOR i = 1 TO LZ
   REDIM PRESERVE ZL(i)
   ZL(i) = ZA(i)-(MN*XN(i))-BZ    
NEXT i

le redimnesionnement d'un tableau est couteux...

REDIM PRESERVE ZL(LZ)
FOR i = 1 TO LZ
   ZL(i) = ZA(i)-(MN*XN(i))-BZ
NEXT i


de même

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

s'écrit simplement :

...
   MJ(b) = Abs( (ZL(i+NB)-ZL(i))/(XN(i+NB)-XN(i)) )
NEXT i
...

Commentaire de Fwdavy le 01/06/2006 17:14:45

Cool ! Merci Renfield :o))

 Ajouter un commentaire


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&#231;u de r&#233;ponse satisfesante a vrai dire j'ai cr&#2 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales