le_gwilherm
Messages postés3Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention 1 décembre 2005
-
1 déc. 2005 à 16:24
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
1 déc. 2005 à 17:44
Bonjour à tous,
Je cherche à optimiser le chargement d'un fichier txt de valeur de type :
0.0002 0.2233 0.3233 0.3233 0.3233 0.3233 0.3233 0.3233
0.0002 0.2233 0.3233 0.3233 0.3233 0.3233 0.3233 0.3233
... fois 10000 lignes
je veux charger ces valeurs dans un tableau de Single de type tab(8,10000)
J'ai beaucoup regardé les sources disponibles mais je n'ai rien trouvé qui me permette de récupérer directement des nombres mais que des string.
Je précise que j'utilise ceci pour le chargement du fichier ce qui est tres rapide mais qui impose un traitement très long derrière :
[=code:
fichTxt = "C:/TestCurve/electrodesSignaux.txt"
Open fichTxt For Input As #1
tableau = Input(LOF(1), #1)
Close #1]
Pour l'instant je fais un découpage par ligne avec détection de fin de ligne
puis par mot "0.1212" puis remplacement du point en virgule puis conversion avec Csng()
Malheureusement cela met 3 min de traitement ce qui est beaucoup trop long !!!
Débutant en VB, je cherche des idées pour optimiser cette fonctionnalité
Merci à tous ceux qui voudront bien me filer un coup de pouce !
A voir également:
Charger 8 col x 10000 lignes de Single d'un fichier txt dans un tableau(8,10000
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 1 déc. 2005 à 16:57
En VB, ton traitement sera long, de toutes façon...
j'ai cet algo, qui tourne pas trop mal...
(attention, aucun test ne controle le fichier)
Private Sub Form_Load()
Dim iFile As Integer
Dim Buffer As String
Dim Output() As Single
Dim LineCount As Long
Dim Items() As String
Dim i As Integer
iFile = FreeFile
Open "H:\a.txt" For Input As iFile
Do Until EOF(iFile)
Line Input #iFile, Buffer
LineCount = LineCount + 1
Loop
Close iFile
iFile = FreeFile
Open "H:\a.txt" For Input As iFile
ReDim Output(7, LineCount - 1)
LineCount = 0
Do Until EOF(iFile)
Line Input #iFile, Buffer
Items = Split(Buffer, " ", 8)
For i = 0 To 7
Output(i, LineCount) = CSng(Items(i))
Next i
LineCount = LineCount + 1
Loop
Close iFile
le_gwilherm
Messages postés3Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention 1 décembre 2005 1 déc. 2005 à 17:14
Ok Merci à toi !!
Maintenant ça prend 2 secondes, mais il faut quand même que je remplace les "." en "," des Items mais ce n'était pas ce qui prenait le plus de temps .