begin process at 2012 02 15 07:43:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

out of range


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

out of range

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

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,746 sec (3)

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