bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y aurait-il
un moyen quelconque? En fait trouver une méthode utra rapide pour changer
toutes les valeurs d'un tableau!
merci d'avance
bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y aurait-il
un moyen quelconque? En fait trouver une méthode utra rapide pour changer
toutes les valeurs d'un tableau!
merci d'avance
bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y aurait-il
un moyen quelconque? En fait trouver une méthode utra rapide pour changer
toutes les valeurs d'un tableau!
merci d'avance
bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du tablo2).
sais que ce que j'ai écrit n'est pas valable mais y aurait-il un moyen
quelconque? En fait trouver une méthode utra rapide pour changer toutes
valeurs d'un tableau!
bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du tablo2).
sais que ce que j'ai écrit n'est pas valable mais y aurait-il un moyen
quelconque? En fait trouver une méthode utra rapide pour changer toutes
valeurs d'un tableau!
bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du tablo2).
sais que ce que j'ai écrit n'est pas valable mais y aurait-il un moyen
quelconque? En fait trouver une méthode utra rapide pour changer toutes
valeurs d'un tableau!
Bonjour, pour reprendre ton exemple:
dim t1(100)
dim t2(100)
dim i as ong
...on leur donne des valeurs...
for i = 1 to 100
t2(i)=t1(i) + 5
next i
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"marc.dufresne" a écrit dans le
message de news: 44723323$0$8028$
> bonjour
> on peut faire correspondre deux tableaux ex tablo1()=tablo2()
> mais peut on effectuer une opération sur un tableau complet comme du
> genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
> tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> un moyen quelconque? En fait trouver une méthode utra rapide pour
> toutes les valeurs d'un tableau!
>
> merci d'avance
>
Bonjour, pour reprendre ton exemple:
dim t1(100)
dim t2(100)
dim i as ong
...on leur donne des valeurs...
for i = 1 to 100
t2(i)=t1(i) + 5
next i
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"marc.dufresne" <pasde.mail.direct.marcdufresne@free.fr> a écrit dans le
message de news: 44723323$0$8028$636a55ce@news.free.fr...
> bonjour
> on peut faire correspondre deux tableaux ex tablo1()=tablo2()
> mais peut on effectuer une opération sur un tableau complet comme du
> genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
> tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> un moyen quelconque? En fait trouver une méthode utra rapide pour
> toutes les valeurs d'un tableau!
>
> merci d'avance
>
Bonjour, pour reprendre ton exemple:
dim t1(100)
dim t2(100)
dim i as ong
...on leur donne des valeurs...
for i = 1 to 100
t2(i)=t1(i) + 5
next i
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"marc.dufresne" a écrit dans le
message de news: 44723323$0$8028$
> bonjour
> on peut faire correspondre deux tableaux ex tablo1()=tablo2()
> mais peut on effectuer une opération sur un tableau complet comme du
> genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
> tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> un moyen quelconque? En fait trouver une méthode utra rapide pour
> toutes les valeurs d'un tableau!
>
> merci d'avance
>
Salut ;O)
N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
exemple ne remplira jamais l'indice 0, seulement 1 à 100.
Si tu désires que l'indice commence à 1, il faut le déclarer explicitement
en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne bosse
jamais ainsi)
Pour évitier cela, utilise LBound et UBound pour connaître les bornes
inférieures et supérieures d'un tableau :
Pour info, LBound et UBound plantent si le tableau n'est pas dimensionné.
Donc il faudra préalablement vérifié sur le tableau est dimensionné en
trappant l'erreur.
For i = LBound(t1) To UBound(t1)
t2(i) = t1(i) + 5
Next i
Guy
"X" a écrit dans le message de
news:Bonjour, pour reprendre ton exemple:
dim t1(100)
dim t2(100)
dim i as ong
...on leur donne des valeurs...
for i = 1 to 100
t2(i)=t1(i) + 5
next i
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
----------"marc.dufresne" a écrit dans le
message de news: 44723323$0$8028$
> bonjour
> on peut faire correspondre deux tableaux ex tablo1()=tablo2()
> mais peut on effectuer une opération sur un tableau complet comme du
> genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
> tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
aurait-il> un moyen quelconque? En fait trouver une méthode utra rapide pour
changer> toutes les valeurs d'un tableau!
>
> merci d'avance
>
Salut ;O)
N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
exemple ne remplira jamais l'indice 0, seulement 1 à 100.
Si tu désires que l'indice commence à 1, il faut le déclarer explicitement
en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne bosse
jamais ainsi)
Pour évitier cela, utilise LBound et UBound pour connaître les bornes
inférieures et supérieures d'un tableau :
Pour info, LBound et UBound plantent si le tableau n'est pas dimensionné.
Donc il faudra préalablement vérifié sur le tableau est dimensionné en
trappant l'erreur.
For i = LBound(t1) To UBound(t1)
t2(i) = t1(i) + 5
Next i
Guy
"X" <X@Y.Z> a écrit dans le message de
news:eNqaJHffGHA.452@TK2MSFTNGP02.phx.gbl...
Bonjour, pour reprendre ton exemple:
dim t1(100)
dim t2(100)
dim i as ong
...on leur donne des valeurs...
for i = 1 to 100
t2(i)=t1(i) + 5
next i
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
----------
"marc.dufresne" <pasde.mail.direct.marcdufresne@free.fr> a écrit dans le
message de news: 44723323$0$8028$636a55ce@news.free.fr...
> bonjour
> on peut faire correspondre deux tableaux ex tablo1()=tablo2()
> mais peut on effectuer une opération sur un tableau complet comme du
> genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
> tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
aurait-il
> un moyen quelconque? En fait trouver une méthode utra rapide pour
changer
> toutes les valeurs d'un tableau!
>
> merci d'avance
>
Salut ;O)
N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
exemple ne remplira jamais l'indice 0, seulement 1 à 100.
Si tu désires que l'indice commence à 1, il faut le déclarer explicitement
en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne bosse
jamais ainsi)
Pour évitier cela, utilise LBound et UBound pour connaître les bornes
inférieures et supérieures d'un tableau :
Pour info, LBound et UBound plantent si le tableau n'est pas dimensionné.
Donc il faudra préalablement vérifié sur le tableau est dimensionné en
trappant l'erreur.
For i = LBound(t1) To UBound(t1)
t2(i) = t1(i) + 5
Next i
Guy
"X" a écrit dans le message de
news:Bonjour, pour reprendre ton exemple:
dim t1(100)
dim t2(100)
dim i as ong
...on leur donne des valeurs...
for i = 1 to 100
t2(i)=t1(i) + 5
next i
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
----------"marc.dufresne" a écrit dans le
message de news: 44723323$0$8028$
> bonjour
> on peut faire correspondre deux tableaux ex tablo1()=tablo2()
> mais peut on effectuer une opération sur un tableau complet comme du
> genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du
> tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
aurait-il> un moyen quelconque? En fait trouver une méthode utra rapide pour
changer> toutes les valeurs d'un tableau!
>
> merci d'avance
>
"marc.dufresne" wrote in message
news:44723323$0$8028$bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
genre:tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du tablo2).
Jesais que ce que j'ai écrit n'est pas valable mais y aurait-il un moyen
quelconque? En fait trouver une méthode utra rapide pour changer toutes
lesvaleurs d'un tableau!
Hello Marc,
Ce n'est pas possible en VB. Il ya des langages qui permettent
de faire ce genre de traitement, mais pas VB (Lisp, Python, etc.)
Pour des cas particuliers, on peut si ça en vaut la peine écrire
des fonctions dédiées, dans un langage qui permet une manipulation
efficace des données en mémoire. On peut par exemple faire une fonction
qui ajoute une valeur à chaque élément du tableau, comme dans ton exemple.
Coder ceci en C serait simple. Tu peux aussi le faire en VB en jouant
avec les API comme CopyMemory et ce genre de choses.
Si tu as besoin d'une grande vitesse d'exécution, le passage par un
langage
bas niveau ou par l'utilisation des API de manipulation mémoire semble
le plus efficace. En fonction de l'opération à effectuer sur le tableau,
il est surement possible de choisir la meilleure méthode.
--
Jean-marc
"marc.dufresne" <pasde.mail.direct.marcdufresne@free.fr> wrote in message
news:44723323$0$8028$636a55ce@news.free.fr...
bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
genre:
tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du tablo2).
Je
sais que ce que j'ai écrit n'est pas valable mais y aurait-il un moyen
quelconque? En fait trouver une méthode utra rapide pour changer toutes
les
valeurs d'un tableau!
Hello Marc,
Ce n'est pas possible en VB. Il ya des langages qui permettent
de faire ce genre de traitement, mais pas VB (Lisp, Python, etc.)
Pour des cas particuliers, on peut si ça en vaut la peine écrire
des fonctions dédiées, dans un langage qui permet une manipulation
efficace des données en mémoire. On peut par exemple faire une fonction
qui ajoute une valeur à chaque élément du tableau, comme dans ton exemple.
Coder ceci en C serait simple. Tu peux aussi le faire en VB en jouant
avec les API comme CopyMemory et ce genre de choses.
Si tu as besoin d'une grande vitesse d'exécution, le passage par un
langage
bas niveau ou par l'utilisation des API de manipulation mémoire semble
le plus efficace. En fonction de l'opération à effectuer sur le tableau,
il est surement possible de choisir la meilleure méthode.
--
Jean-marc
"marc.dufresne" wrote in message
news:44723323$0$8028$bonjour
on peut faire correspondre deux tableaux ex tablo1()=tablo2()
mais peut on effectuer une opération sur un tableau complet comme du
genre:tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément du tablo2).
Jesais que ce que j'ai écrit n'est pas valable mais y aurait-il un moyen
quelconque? En fait trouver une méthode utra rapide pour changer toutes
lesvaleurs d'un tableau!
Hello Marc,
Ce n'est pas possible en VB. Il ya des langages qui permettent
de faire ce genre de traitement, mais pas VB (Lisp, Python, etc.)
Pour des cas particuliers, on peut si ça en vaut la peine écrire
des fonctions dédiées, dans un langage qui permet une manipulation
efficace des données en mémoire. On peut par exemple faire une fonction
qui ajoute une valeur à chaque élément du tableau, comme dans ton exemple.
Coder ceci en C serait simple. Tu peux aussi le faire en VB en jouant
avec les API comme CopyMemory et ce genre de choses.
Si tu as besoin d'une grande vitesse d'exécution, le passage par un
langage
bas niveau ou par l'utilisation des API de manipulation mémoire semble
le plus efficace. En fonction de l'opération à effectuer sur le tableau,
il est surement possible de choisir la meilleure méthode.
--
Jean-marc
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i), "000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i), "000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i), "000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
Bonjour,
A moins d'avoir à utiliser cela un bon million de fois je ne crois pas
le passage par une fonction en C fera gagner énormément par rapport au
parcours du tableau.
Par contre cela dépend beaucoup de l'opération elle-même.
Par contre, bien entendu, Guy Detienne a raison les tableaux
implicitement à 0 comme il l'indique.
Bonjour,
A moins d'avoir à utiliser cela un bon million de fois je ne crois pas
le passage par une fonction en C fera gagner énormément par rapport au
parcours du tableau.
Par contre cela dépend beaucoup de l'opération elle-même.
Par contre, bien entendu, Guy Detienne a raison les tableaux
implicitement à 0 comme il l'indique.
Bonjour,
A moins d'avoir à utiliser cela un bon million de fois je ne crois pas
le passage par une fonction en C fera gagner énormément par rapport au
parcours du tableau.
Par contre cela dépend beaucoup de l'opération elle-même.
Par contre, bien entendu, Guy Detienne a raison les tableaux
implicitement à 0 comme il l'indique.
Non Môsieur,
Les objets commence à zéro, et les variables à 1 (sauf ???), voici un
exemple:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 1 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 1 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " & Format(t2(i),
"000")
Next i
End Sub
Les valeurs 1 à 9 son templies
----------------------------------
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " & Format(t2(i),
"000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"Guy DETIENNE" a écrit dans le message de news:
> Salut ;O)
>
> N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
> exemple ne remplira jamais l'indice 0, seulement 1 à 100.
> Si tu désires que l'indice commence à 1, il faut le déclarer
> en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne
> jamais ainsi)
>
> Pour évitier cela, utilise LBound et UBound pour connaître les bornes
> inférieures et supérieures d'un tableau :
> Pour info, LBound et UBound plantent si le tableau n'est pas
> Donc il faudra préalablement vérifié sur le tableau est dimensionné en
> trappant l'erreur.
>
> For i = LBound(t1) To UBound(t1)
> t2(i) = t1(i) + 5
> Next i
>
> Guy
>
>
>
>
> "X" a écrit dans le message de
> news:
>> Bonjour, pour reprendre ton exemple:
>>
>> dim t1(100)
>> dim t2(100)
>> dim i as ong
>> ...on leur donne des valeurs...
>> for i = 1 to 100
>> t2(i)=t1(i) + 5
>> next i
>>
>> --
>> Merci beaucoup, au revoir et à bientôt :o)
>> ------
>> Site logiciels
>> http://irolog.free.fr
>> http://irolog.free.fr/ecrire/index.htm
>> Site perso
>> http://irolog.free.fr/joe/index.htm
>> Principe d'utilisation des news Groups
>>
-------------------------------------------------------------------------
> ----------
>> "marc.dufresne" a écrit dans
>> message de news: 44723323$0$8028$
>> > bonjour
>> > on peut faire correspondre deux tableaux ex tablo1()=tablo2()
>> > mais peut on effectuer une opération sur un tableau complet comme du
>> > genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément
>> > tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> aurait-il
>> > un moyen quelconque? En fait trouver une méthode utra rapide pour
> changer
>> > toutes les valeurs d'un tableau!
>> >
>> > merci d'avance
>> >
>>
>>
>
>
Non Môsieur,
Les objets commence à zéro, et les variables à 1 (sauf ???), voici un
exemple:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 1 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 1 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " & Format(t2(i),
"000")
Next i
End Sub
Les valeurs 1 à 9 son templies
----------------------------------
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " & Format(t2(i),
"000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"Guy DETIENNE" <gd@NOSPAM.tchao.be> a écrit dans le message de news:
uoWRcelfGHA.2172@TK2MSFTNGP04.phx.gbl...
> Salut ;O)
>
> N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
> exemple ne remplira jamais l'indice 0, seulement 1 à 100.
> Si tu désires que l'indice commence à 1, il faut le déclarer
> en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne
> jamais ainsi)
>
> Pour évitier cela, utilise LBound et UBound pour connaître les bornes
> inférieures et supérieures d'un tableau :
> Pour info, LBound et UBound plantent si le tableau n'est pas
> Donc il faudra préalablement vérifié sur le tableau est dimensionné en
> trappant l'erreur.
>
> For i = LBound(t1) To UBound(t1)
> t2(i) = t1(i) + 5
> Next i
>
> Guy
>
>
>
>
> "X" <X@Y.Z> a écrit dans le message de
> news:eNqaJHffGHA.452@TK2MSFTNGP02.phx.gbl...
>> Bonjour, pour reprendre ton exemple:
>>
>> dim t1(100)
>> dim t2(100)
>> dim i as ong
>> ...on leur donne des valeurs...
>> for i = 1 to 100
>> t2(i)=t1(i) + 5
>> next i
>>
>> --
>> Merci beaucoup, au revoir et à bientôt :o)
>> ------
>> Site logiciels
>> http://irolog.free.fr
>> http://irolog.free.fr/ecrire/index.htm
>> Site perso
>> http://irolog.free.fr/joe/index.htm
>> Principe d'utilisation des news Groups
>>
-------------------------------------------------------------------------
> ----------
>> "marc.dufresne" <pasde.mail.direct.marcdufresne@free.fr> a écrit dans
>> message de news: 44723323$0$8028$636a55ce@news.free.fr...
>> > bonjour
>> > on peut faire correspondre deux tableaux ex tablo1()=tablo2()
>> > mais peut on effectuer une opération sur un tableau complet comme du
>> > genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément
>> > tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> aurait-il
>> > un moyen quelconque? En fait trouver une méthode utra rapide pour
> changer
>> > toutes les valeurs d'un tableau!
>> >
>> > merci d'avance
>> >
>>
>>
>
>
Non Môsieur,
Les objets commence à zéro, et les variables à 1 (sauf ???), voici un
exemple:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 1 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 1 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " & Format(t2(i),
"000")
Next i
End Sub
Les valeurs 1 à 9 son templies
----------------------------------
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " & Format(t2(i),
"000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
"Guy DETIENNE" a écrit dans le message de news:
> Salut ;O)
>
> N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
> exemple ne remplira jamais l'indice 0, seulement 1 à 100.
> Si tu désires que l'indice commence à 1, il faut le déclarer
> en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne
> jamais ainsi)
>
> Pour évitier cela, utilise LBound et UBound pour connaître les bornes
> inférieures et supérieures d'un tableau :
> Pour info, LBound et UBound plantent si le tableau n'est pas
> Donc il faudra préalablement vérifié sur le tableau est dimensionné en
> trappant l'erreur.
>
> For i = LBound(t1) To UBound(t1)
> t2(i) = t1(i) + 5
> Next i
>
> Guy
>
>
>
>
> "X" a écrit dans le message de
> news:
>> Bonjour, pour reprendre ton exemple:
>>
>> dim t1(100)
>> dim t2(100)
>> dim i as ong
>> ...on leur donne des valeurs...
>> for i = 1 to 100
>> t2(i)=t1(i) + 5
>> next i
>>
>> --
>> Merci beaucoup, au revoir et à bientôt :o)
>> ------
>> Site logiciels
>> http://irolog.free.fr
>> http://irolog.free.fr/ecrire/index.htm
>> Site perso
>> http://irolog.free.fr/joe/index.htm
>> Principe d'utilisation des news Groups
>>
-------------------------------------------------------------------------
> ----------
>> "marc.dufresne" a écrit dans
>> message de news: 44723323$0$8028$
>> > bonjour
>> > on peut faire correspondre deux tableaux ex tablo1()=tablo2()
>> > mais peut on effectuer une opération sur un tableau complet comme du
>> > genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément
>> > tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> aurait-il
>> > un moyen quelconque? En fait trouver une méthode utra rapide pour
> changer
>> > toutes les valeurs d'un tableau!
>> >
>> > merci d'avance
>> >
>>
>>
>
>
Salut ;O)
Relis ton exemple donné à marc et relis ce que je te réponds. Je crois
que
tu n'as pas compris là où je voulais en venir.
Dans l'exemple que tu donnes,
dim t1(100)
dim t2(100)
dim i as ong
for i = 1 to 100
t2(i)=t1(i) + 5
next i
tu crées un tableau de 100 et tu le remplis en bouclant via un For Next.
La boucle commence à 1, donc tu oublies l'indice 0 !!! Tu remplis mal ton
tableau. Etait-ce fait exprès ?
Je voulais juste te rappeler que le premier indice d'un tableau, du moins
déclaré comme tu l'as fait, commence à 0 (je ne parle pas de sa valeur).
Pour ton info, les indices des objets ne commencent pas forcément à 0.
Ceux
de Microsoft peut-être mais cela n'est nullement une généralité. Je
pourrais très bien créer mon propre ActiveX (donc object) ayant comme
premier élément l'indice 1.
Lorsque tu dis qu'une variable commence à 1, je ne vois pas trop où tu
veux
en venir.
Un tableau en VB à par défaut son premier indice commencant à 0 et je ne
parle pas ici si sa valeur est égale à zéro ou autre chose.
Guy
"X" a écrit dans le message de
news:%Non Môsieur,
Les objets commence à zéro, et les variables à 1 (sauf ???), voici un
exemple:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 1 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 1 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i),
"000")
Next i
End Sub
Les valeurs 1 à 9 son templies
----------------------------------
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i),
"000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
----------"Guy DETIENNE" a écrit dans le message de news:
> Salut ;O)
>
> N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
> exemple ne remplira jamais l'indice 0, seulement 1 à 100.
> Si tu désires que l'indice commence à 1, il faut le déclarer
explicitement> en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne
bosse> jamais ainsi)
>
> Pour évitier cela, utilise LBound et UBound pour connaître les bornes
> inférieures et supérieures d'un tableau :
> Pour info, LBound et UBound plantent si le tableau n'est pas
dimensionné.> Donc il faudra préalablement vérifié sur le tableau est dimensionné en
> trappant l'erreur.
>
> For i = LBound(t1) To UBound(t1)
> t2(i) = t1(i) + 5
> Next i
>
> Guy
>
>
>
>
> "X" a écrit dans le message de
> news:
>> Bonjour, pour reprendre ton exemple:
>>
>> dim t1(100)
>> dim t2(100)
>> dim i as ong
>> ...on leur donne des valeurs...
>> for i = 1 to 100
>> t2(i)=t1(i) + 5
>> next i
>>
>> --
>> Merci beaucoup, au revoir et à bientôt :o)
>> ------
>> Site logiciels
>> http://irolog.free.fr
>> http://irolog.free.fr/ecrire/index.htm
>> Site perso
>> http://irolog.free.fr/joe/index.htm
>> Principe d'utilisation des news Groups
>>
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm-------------------------------------------------------------------------
-> ----------
>> "marc.dufresne" a écrit dans
le>> message de news: 44723323$0$8028$
>> > bonjour
>> > on peut faire correspondre deux tableaux ex tablo1()=tablo2()
>> > mais peut on effectuer une opération sur un tableau complet comme du
>> > genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément
du>> > tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> aurait-il
>> > un moyen quelconque? En fait trouver une méthode utra rapide pour
> changer
>> > toutes les valeurs d'un tableau!
>> >
>> > merci d'avance
>> >
>>
>>
>
>
Salut ;O)
Relis ton exemple donné à marc et relis ce que je te réponds. Je crois
que
tu n'as pas compris là où je voulais en venir.
Dans l'exemple que tu donnes,
dim t1(100)
dim t2(100)
dim i as ong
for i = 1 to 100
t2(i)=t1(i) + 5
next i
tu crées un tableau de 100 et tu le remplis en bouclant via un For Next.
La boucle commence à 1, donc tu oublies l'indice 0 !!! Tu remplis mal ton
tableau. Etait-ce fait exprès ?
Je voulais juste te rappeler que le premier indice d'un tableau, du moins
déclaré comme tu l'as fait, commence à 0 (je ne parle pas de sa valeur).
Pour ton info, les indices des objets ne commencent pas forcément à 0.
Ceux
de Microsoft peut-être mais cela n'est nullement une généralité. Je
pourrais très bien créer mon propre ActiveX (donc object) ayant comme
premier élément l'indice 1.
Lorsque tu dis qu'une variable commence à 1, je ne vois pas trop où tu
veux
en venir.
Un tableau en VB à par défaut son premier indice commencant à 0 et je ne
parle pas ici si sa valeur est égale à zéro ou autre chose.
Guy
"X" <X@Y.Z> a écrit dans le message de
news:%23cZzLolfGHA.1792@TK2MSFTNGP03.phx.gbl...
Non Môsieur,
Les objets commence à zéro, et les variables à 1 (sauf ???), voici un
exemple:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 1 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 1 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i),
"000")
Next i
End Sub
Les valeurs 1 à 9 son templies
----------------------------------
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i),
"000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
----------
"Guy DETIENNE" <gd@NOSPAM.tchao.be> a écrit dans le message de news:
uoWRcelfGHA.2172@TK2MSFTNGP04.phx.gbl...
> Salut ;O)
>
> N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
> exemple ne remplira jamais l'indice 0, seulement 1 à 100.
> Si tu désires que l'indice commence à 1, il faut le déclarer
explicitement
> en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne
bosse
> jamais ainsi)
>
> Pour évitier cela, utilise LBound et UBound pour connaître les bornes
> inférieures et supérieures d'un tableau :
> Pour info, LBound et UBound plantent si le tableau n'est pas
dimensionné.
> Donc il faudra préalablement vérifié sur le tableau est dimensionné en
> trappant l'erreur.
>
> For i = LBound(t1) To UBound(t1)
> t2(i) = t1(i) + 5
> Next i
>
> Guy
>
>
>
>
> "X" <X@Y.Z> a écrit dans le message de
> news:eNqaJHffGHA.452@TK2MSFTNGP02.phx.gbl...
>> Bonjour, pour reprendre ton exemple:
>>
>> dim t1(100)
>> dim t2(100)
>> dim i as ong
>> ...on leur donne des valeurs...
>> for i = 1 to 100
>> t2(i)=t1(i) + 5
>> next i
>>
>> --
>> Merci beaucoup, au revoir et à bientôt :o)
>> ------
>> Site logiciels
>> http://irolog.free.fr
>> http://irolog.free.fr/ecrire/index.htm
>> Site perso
>> http://irolog.free.fr/joe/index.htm
>> Principe d'utilisation des news Groups
>>
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
-------------------------------------------------------------------------
-
> ----------
>> "marc.dufresne" <pasde.mail.direct.marcdufresne@free.fr> a écrit dans
le
>> message de news: 44723323$0$8028$636a55ce@news.free.fr...
>> > bonjour
>> > on peut faire correspondre deux tableaux ex tablo1()=tablo2()
>> > mais peut on effectuer une opération sur un tableau complet comme du
>> > genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément
du
>> > tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> aurait-il
>> > un moyen quelconque? En fait trouver une méthode utra rapide pour
> changer
>> > toutes les valeurs d'un tableau!
>> >
>> > merci d'avance
>> >
>>
>>
>
>
Salut ;O)
Relis ton exemple donné à marc et relis ce que je te réponds. Je crois
que
tu n'as pas compris là où je voulais en venir.
Dans l'exemple que tu donnes,
dim t1(100)
dim t2(100)
dim i as ong
for i = 1 to 100
t2(i)=t1(i) + 5
next i
tu crées un tableau de 100 et tu le remplis en bouclant via un For Next.
La boucle commence à 1, donc tu oublies l'indice 0 !!! Tu remplis mal ton
tableau. Etait-ce fait exprès ?
Je voulais juste te rappeler que le premier indice d'un tableau, du moins
déclaré comme tu l'as fait, commence à 0 (je ne parle pas de sa valeur).
Pour ton info, les indices des objets ne commencent pas forcément à 0.
Ceux
de Microsoft peut-être mais cela n'est nullement une généralité. Je
pourrais très bien créer mon propre ActiveX (donc object) ayant comme
premier élément l'indice 1.
Lorsque tu dis qu'une variable commence à 1, je ne vois pas trop où tu
veux
en venir.
Un tableau en VB à par défaut son premier indice commencant à 0 et je ne
parle pas ici si sa valeur est égale à zéro ou autre chose.
Guy
"X" a écrit dans le message de
news:%Non Môsieur,
Les objets commence à zéro, et les variables à 1 (sauf ???), voici un
exemple:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 1 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 1 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i),
"000")
Next i
End Sub
Les valeurs 1 à 9 son templies
----------------------------------
Mais si je fais:
Sub Form_Activate()
Dim i As Long
Dim t1(9)
Dim t2(9)
'
For i = 0 To 9
t1(i) = Second(Time) * i
t2(i) = t1(i) + i
Next i
'
List1.Clear
For i = 0 To 9
List1.AddItem i & " = " & Format(t1(i), "000") & " : " &
Format(t2(i),
"000")
Next i
End Sub
LA VALEUR 0 EST VIDE !!!
--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------
----------"Guy DETIENNE" a écrit dans le message de news:
> Salut ;O)
>
> N'oublie pas qu'un tableau par défaut en VB est indicé à 0. Donc ton
> exemple ne remplira jamais l'indice 0, seulement 1 à 100.
> Si tu désires que l'indice commence à 1, il faut le déclarer
explicitement> en en-tête avec l'instruction suivante : Option Base 1 (perso, je ne
bosse> jamais ainsi)
>
> Pour évitier cela, utilise LBound et UBound pour connaître les bornes
> inférieures et supérieures d'un tableau :
> Pour info, LBound et UBound plantent si le tableau n'est pas
dimensionné.> Donc il faudra préalablement vérifié sur le tableau est dimensionné en
> trappant l'erreur.
>
> For i = LBound(t1) To UBound(t1)
> t2(i) = t1(i) + 5
> Next i
>
> Guy
>
>
>
>
> "X" a écrit dans le message de
> news:
>> Bonjour, pour reprendre ton exemple:
>>
>> dim t1(100)
>> dim t2(100)
>> dim i as ong
>> ...on leur donne des valeurs...
>> for i = 1 to 100
>> t2(i)=t1(i) + 5
>> next i
>>
>> --
>> Merci beaucoup, au revoir et à bientôt :o)
>> ------
>> Site logiciels
>> http://irolog.free.fr
>> http://irolog.free.fr/ecrire/index.htm
>> Site perso
>> http://irolog.free.fr/joe/index.htm
>> Principe d'utilisation des news Groups
>>
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm-------------------------------------------------------------------------
-> ----------
>> "marc.dufresne" a écrit dans
le>> message de news: 44723323$0$8028$
>> > bonjour
>> > on peut faire correspondre deux tableaux ex tablo1()=tablo2()
>> > mais peut on effectuer une opération sur un tableau complet comme du
>> > genre: tablo1()=tablo2()+5 (ajouter 5 à la valeur de chaque élément
du>> > tablo2). Je sais que ce que j'ai écrit n'est pas valable mais y
> aurait-il
>> > un moyen quelconque? En fait trouver une méthode utra rapide pour
> changer
>> > toutes les valeurs d'un tableau!
>> >
>> > merci d'avance
>> >
>>
>>
>
>
"Patrice Henrio" a écrit dans le message de
news:ez%Bonjour,
A moins d'avoir à utiliser cela un bon million de fois je ne crois pas
quele passage par une fonction en C fera gagner énormément par rapport au
parcours du tableau.
Par contre cela dépend beaucoup de l'opération elle-même.
C'est exact bien sur. Ce genre de manips n'est valable (n'a du sens)
que si on doit effectuer le traitement un très grand nombre de fois
ou bien si le tableau lui même est immense. Dans ce cas, et à adapter
au cas par cas bien sur, l'utilisation de fonctions de manipulation
directe de la mémoire (memset, memcpy, etc.) peut être extrèmement
rapide et permettre des gains de temps très très importants, pouvant
aller de 100 à 1000 ou plus fois plus vite.
J'ai publié ici même plusieurs benchmarks qui montre que l'utilisation
de certaines fonctions bas-niveau (dll en C ou pour certaines
utilisations
le SafeArray) permet des gains de performances proprement finlandais!
Oups
je veux dire monstrueux :-) (Eurovision joke)
Je reposte pour mémoire:
Le SafeArray (merci François!):
http://users.skynet.be/candide/bench/benchcpm.htm
Un simple test de parité:
http://users.skynet.be/candide/jmn/vb/documents/bench/bench3.htmPar contre, bien entendu, Guy Detienne a raison les tableaux
commencentimplicitement à 0 comme il l'indique.
Tout à fait!
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
"Patrice Henrio" <patrice.henrio@laposte.net> a écrit dans le message de
news:ez%234PCmfGHA.3456@TK2MSFTNGP05.phx.gbl...
Bonjour,
A moins d'avoir à utiliser cela un bon million de fois je ne crois pas
que
le passage par une fonction en C fera gagner énormément par rapport au
parcours du tableau.
Par contre cela dépend beaucoup de l'opération elle-même.
C'est exact bien sur. Ce genre de manips n'est valable (n'a du sens)
que si on doit effectuer le traitement un très grand nombre de fois
ou bien si le tableau lui même est immense. Dans ce cas, et à adapter
au cas par cas bien sur, l'utilisation de fonctions de manipulation
directe de la mémoire (memset, memcpy, etc.) peut être extrèmement
rapide et permettre des gains de temps très très importants, pouvant
aller de 100 à 1000 ou plus fois plus vite.
J'ai publié ici même plusieurs benchmarks qui montre que l'utilisation
de certaines fonctions bas-niveau (dll en C ou pour certaines
utilisations
le SafeArray) permet des gains de performances proprement finlandais!
Oups
je veux dire monstrueux :-) (Eurovision joke)
Je reposte pour mémoire:
Le SafeArray (merci François!):
http://users.skynet.be/candide/bench/benchcpm.htm
Un simple test de parité:
http://users.skynet.be/candide/jmn/vb/documents/bench/bench3.htm
Par contre, bien entendu, Guy Detienne a raison les tableaux
commencent
implicitement à 0 comme il l'indique.
Tout à fait!
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Patrice Henrio" a écrit dans le message de
news:ez%Bonjour,
A moins d'avoir à utiliser cela un bon million de fois je ne crois pas
quele passage par une fonction en C fera gagner énormément par rapport au
parcours du tableau.
Par contre cela dépend beaucoup de l'opération elle-même.
C'est exact bien sur. Ce genre de manips n'est valable (n'a du sens)
que si on doit effectuer le traitement un très grand nombre de fois
ou bien si le tableau lui même est immense. Dans ce cas, et à adapter
au cas par cas bien sur, l'utilisation de fonctions de manipulation
directe de la mémoire (memset, memcpy, etc.) peut être extrèmement
rapide et permettre des gains de temps très très importants, pouvant
aller de 100 à 1000 ou plus fois plus vite.
J'ai publié ici même plusieurs benchmarks qui montre que l'utilisation
de certaines fonctions bas-niveau (dll en C ou pour certaines
utilisations
le SafeArray) permet des gains de performances proprement finlandais!
Oups
je veux dire monstrueux :-) (Eurovision joke)
Je reposte pour mémoire:
Le SafeArray (merci François!):
http://users.skynet.be/candide/bench/benchcpm.htm
Un simple test de parité:
http://users.skynet.be/candide/jmn/vb/documents/bench/bench3.htmPar contre, bien entendu, Guy Detienne a raison les tableaux
commencentimplicitement à 0 comme il l'indique.
Tout à fait!
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;