XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012
-
4 janv. 2007 à 20:35
XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012
-
6 janv. 2007 à 00:30
Bonjour cette fonction m'apparait d'Etre bien longue comparer a ce quelle fait:
Friend Function ConvertToStringArray(ByVal values As System.Array) As String()
Dim theArray As String() = New String(values.Length - 1) {}
Dim i As Integer = 1
Do While i <= values.Length
If values.GetValue(1, i) Is Nothing Then
theArray(i - 1) = ""
Else
theArray(i - 1) = CStr(values.GetValue(1, i).ToString())
End If
i += 1
Loop
Return theArray
End Function
je l'utilise dans mon programme comme ceci:
Dim theArray As String() = modExcel.ConvertToStringArray(CType(range.Cells.Value, System.Array))
JE crois qu'il doit y avoir un meilleur moyen de faire ouquelque chose de déja fait pour cela......
QU'aez-vous à me proposer?
XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012 5 janv. 2007 à 00:13
Si vous auriez regarer son classement vous auriez vu que ces du vb.net =:0) Le but de la fonction comme montré das la deuxieme parti ces de transformer un range Excel en string()
je donne un range excel pi sa récupere les valeur dedans pour les mettres dans une string()
Vous n’avez pas trouvé la réponse que vous recherchez ?
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 5 janv. 2007 à 22:08
JE ne me suis pas fais bien comprendre... Il me semble que IF est inutile ici. En effet, tu dis que si la variable "values" est nulle alors la seconde variable "theArray" sera vide sinon elle aura la même valeur que "values" (sauf convertie en string)... En résumé, dans tous les cas "theArray" aura la même valeur que "values" (converti en string)...
Donc ton code :
Do While i <= values.Length
If values.GetValue(1, i) Is Nothing Then
theArray(i - 1) = ""
Else
theArray(i - 1) = CStr(values.GetValue(1, i).ToString())
End If
i += 1
Loop
se résume à :
Do While i <= values.Length
theArray(i - 1) = CStr(values.GetValue(1, i))
i += 1
Loop
Sans compter, comme signalé par Charles Racaud, on peut penser à utliser FOR...
XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012 6 janv. 2007 à 00:30
[auteurdetail.aspx?ID= 743844 DavidWhitewater]
tres juste, j'avais pas remarquer. par contre je peu enlever le .tostring mais pas le cstr, au cas ou la valeur serait nothing ce qui est pas gérer par .tostring a ma souvenance.
[auteurdetail.aspx?ID=231472 Charles Racaud] Non on peu pas faire un cast sur un object COM vers un string, et pour la conversion apres le ctype faut oublier, le nombre dimension de l'array et différente.
[auteurdetail.aspx?ID=488557 us_30]
En effet sa semble est corecte vu que ju'utilise cstr je peu le faire.
Voici le code a jour:
Friend Function ConvertToStringArray(ByVal values As System.Array) As String()
Dim theArray As String() = New String(values.Length - 1) {}
For i As Integer = 1 To values.Length
theArray(i - 1) = CStr(values.GetValue(1, i))
Next i
Return theArray
End Function
et toujours appelé par cette ligne:
Dim theArray As String() = modExcel.ConvertToStringArray(CType(range.Cells.Value, System.Array))