Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : out of range [ Divers / Débutants ] (gefil63)

mardi 31 octobre 2006 à 23:18:06 | out of range

gefil63

Bonjour à tous

je bute sur le PB suivant et comme je suis a la bourre j'ai pris la version
brute mais pas mieux ...

j'essaye de lire un fichier qui peut avoir un nombre lignes quelqonques cidessous
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,

Seules les 4 dernieres valeurs entre  virgules m'interresse  pour cela

Dim tabtrait(100) As String
employ3 = "c:\point\toto.txt"

Dim dureerepas0() As String
Dim dureerepas1() As String
Dim dureerepas2() As String
Dim dureerepas3() As String
Dim dureerepas4() As String

Dim tabresulat(20, 20) As Integer

'je lie le fichier employ3 et mets ligne a ligne dasn "tabtrait"

Open employ3 For Input As #5
i = -1
While Not EOF(5)
  i = i + 1
  Line Input #5, tabtrait(i)
  Wend
Close #5
'je split chaque ligne et affecte a un tableau "dureerepasX" (j'ai essaye d'incrementer l'indice de "dureerepas" mais cela bugé un max donc j'ai declarer x variables tableau , la honte je sais, mais fallait que ça avance, enfin vous connaissez le PB, comme il reste un peu de T je reviens sur mes solutions pas belles)
        dureerepas0 = Split(tabtrait(0), ",")
        dureerepas1 = Split(tabtrait(1), ",")
        dureerepas2 = Split(tabtrait(2), ",")
         dureerepas3 = Split(tabtrait(3), ",")
         dureerepas4 = Split(tabtrait(4), ",")

de chaque "dureerepasX" contenant une ligne splité j'en extrait les 4 derniers carateres
et les transforme en numerique(j'ai des calculs a faire dessus) et les affecte dasn un tableau a deux dimensions

Dans ces conditions lorsque je lance le prog j'ai un message OUT of RANGE
sur la ligne ci dessous. Si mon fichier contient le nombre de ligne attendu(5 dasn l'exemple) pas de PB ça marche...
       tabresulat(0, 0) = Val(dureerepas0(6))
      
       tabresulat(0, 1) = Val(dureerepas0(7))
       tabresulat(0, 2) = Val(dureerepas0(8))
       tabresulat(0, 3) = Val(dureerepas0(9))
       tabresulat(1, 0) = Val(dureerepas1(6))
       tabresulat(1, 1) = Val(dureerepas1(7))
       tabresulat(1, 2) = Val(dureerepas1(8))
       tabresulat(1, 3) = Val(dureerepas1(9))
       tabresulat(2, 0) = Val(dureerepas2(6))
       tabresulat(2, 1) = Val(dureerepas2(7))
       tabresulat(2, 2) = Val(dureerepas2(8))
       tabresulat(2, 3) = Val(dureerepas2(9))
       tabresulat(3, 0) = Val(dureerepas3(6))
       tabresulat(3, 1) = Val(dureerepas3(7))
       tabresulat(3, 2) = Val(dureerepas3(8))
       tabresulat(3, 3) = Val(dureerepas3(9))
       tabresulat(4, 0) = Val(dureerepas4(6))
       tabresulat(4, 1) = Val(dureerepas4(7))
       tabresulat(4, 2) = Val(dureerepas4(8))
       tabresulat(4, 3) = Val(dureerepas4(9))

Voili si il vous manque quelque chose dite moi !!
merci d'avance

mercredi 1 novembre 2006 à 08:28:12 | Re : out of range

wape

Bonjour,

Essaye qqch du genre :

Dim tabtrait(100) As String
employ3 = "c:\point\toto.txt"

Dim tabresulat(100, 3) As Integer

Open employ3 For Input As #5
i = -1
While Not EOF(5)
  i = i + 1
  Line Input #5, tabtrait(i)
  For j = 0 To 3
     tabresulat(i, j) = Val(Split(tabtrait(i), ",")(j + 6))
  Next j
  Wend
Close #5

'Vérification du résultat
For j = 0 To i
   For k = 0 To 3
      MsgBox tabresulat(j, k)
   Next k
Next j


wape


mercredi 1 novembre 2006 à 09:19:35 | Re : out of range

JMO

Membre Club


 Bonjour à tous....

Petite question:
j'essaie de lire un fichier qui peut avoir un nombre de lignes quelconques ci-dessous:
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,
"0561342011121","24/10/2006","19:00:39","01361302111714","24/10/2006","23:25:47",4,25,8,1
"0561342011121","24/10/2006","11:50:14","0561342011121","24/10/2006","14:05:28",2,15,14,

la première ligne se termine par une ","
la ligne suivante ne se termine pas pas une ","
la ligne suivante se termine par une ","
la ligne suivante ne se termine pas pas une ","
...

Est-ce réellement le cas ???

jean-marc


mercredi 1 novembre 2006 à 10:24:12 | Re : out of range

JMO

Membre Club



 Re,
Avec le code ci-dessous, j'obtiens:
ligne1   "14:05:28",2,15,14
ligne2   4,25,8,1
ligne3   "14:05:28",2,15,14 
ligne4   4,25,8,1

Option Explicit
Dim Fso, Path, Fic1
Dim ObjTextStream, strtmp, i, j, imax, ligne
Const ForReading = 1

Path   = "d:\"
Fic1  = "test1.txt"

imax = 0
j = 0

Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjTextStream = Fso.OpenTextFile(Path & Fic1, ForReading)
Do While Not ObjTextStream.AtEndOfStream
   j = j + 1
  
   strtmp = split(ObjTextStream.ReadLine, ",")

   For i = 0 to Ubound(strtmp)
       imax = imax + 1
       ReDim Preserve Tableau(1, imax)
       Tableau(1, imax) = strtmp(i)
   Next

   If Tableau(1, imax) = "" Then
      MsgBox Tableau(1, imax-4) & "," & Tableau(1, imax-3) & "," &_
             Tableau(1, imax-2) & "," & Tableau(1, imax-1) ,,"contenu du tableau de la ligne " & j
   Else
      MsgBox Tableau(1, imax-3) & "," & Tableau(1, imax-2) & "," &_
             Tableau(1, imax-1) & "," & Tableau(1, imax),,"contenu du tableau de la ligne " & j  
   End If
  
Loop
MsgBox "Nbre de lignes lues: " & j
ObjTextStream.Close
Set Fso = Nothing
Set ObjTextStream = Nothing


jean-marc



mercredi 1 novembre 2006 à 14:59:24 | Re : out of range

gefil63

Bonjour a tous

Et déjà merci à JMO et WAPE pour vos réponses...

Oui, oui JMO mon exemple ci-dessus reflete bien la realité (d'ailleurs j'avais pas vu le truc.......)

Cela étant dit je vais tester les deux solutions ce soir ..je vous tiens au courant ...

Merci encore à vous deux ..@+

Phil..



Cette discussion est classé dans : val, tabresulat, tabtrait, dureerepas0, dureerepas1


Répondre à ce message

Sujets en rapport avec ce message

raccourcis et VB [ par sandregu ] Bonjour,J' ai besoin d' aiiiiide (:-)Je cherche le code pour créer un raccourcis sur le bureau de windows, avec une ligne de commande personnalisable Probleme avec un bouton de commande qui convertit en euros [ par flipote ] Mon programme contient 6 textbox ou l'on saisit des montant en francs.la septieme est une textbox qui contient le total.Le bouton de calcul qui passe val inverse [ par mahor ] je ch un fonction qui puisse extraire les valeurs d'une chaine de caractere contenu dans un cellule excel pour les inserer dans la cellule a coteExem val inverse [ par mahor ] je ch un fonction qui puisse extraire les valeurs d'une chaine de caractere contenu dans un cellule excel pour les inserer dans la cellule a coteExem "Impossible de trouver le formulaire auquel il est fait référence ..." Arrrrrffffffffff [ par ghiscool ] Alors voila mon problème : dans le code du sous-formulaire FormA, je veux acceder à un champ se trouvant dans ce formulaire : val = Forms!FormA!id.Val Fonction arc cosinus [ par osrick ] Bonjour je debute ds visual basic et pour m'entrainé j'essaye de programmé un conversion rectangulaire polaire.Donc losque je clic sur le bouton que j Question de débutant. [ par nostromo2022 ] Je débute en programmation, ça m'arrangerait vraiment si on pouvez m'aider un p'tit peu, voilà, dans un petit prog je me retrouve avec cette ligne :lb La fonction val() expliqué à un débutant. [ par BibaMich ] Etudiant débutant le VBA, je me retrouve coincé par un TP.Plutôt qu'une soluce (j'en aurais p't'être besoin quand même.) je cherche une aide voir une Les if... [ par SamuelCadieux ] Intro:voici une programmation qui consite, a changer une shape (shape1) de backcolor selon des données inscrites ds 3 zones de textes(Text1, Text2, Te recensement lien non valide dans "base de donnée" [ par Mumuri ] me suis lu toutes les sources de la partie base de donné et y'avais ca qu'était foutu :làc'est soit que y'a pas la source, soit que y'a que l'exe.http


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.