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