Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quel type utiliser pour un ensemble de fichiers ?

3 réponses
Avatar
Gilbert Tordeur
Bonjour.

Une méthode de mon web service doit pouvoir recevoir un nombre quelconque de
fichiers en paramètre : leurs noms, leurs types et leurs contenus.

Dans la définition de la méthode, j'écris donc :

<WebMethod()> _
Public Function F( _
nomFichier() As String _
, typeFichier() As String _
, contenuFichier ??? ) as String

Mon premier paramètre est un tableau de chaînes; pas de souci.
Mon deuxième paramètre est un tableau de chaînes; pas de souci.

Mon troisième paramètre me pose problème : c'est un tableau de tableaux de
bytes. Sans doute pourrais-je écrire
contenuFichier(,) as Byte
, mais c'est atroce question performance ! Si j'ai par exemple trois
fichiers de respectivement 10 Ko, 20 Ko et 1.000 Ko, cela me demandera un
ReDim contenuFichier(2, 1000000)
et donc enverra 3.000 Ko sur le WAN pour un besoin réel de 1.030 Ko !

Quelle solution plus efficace pourriez-vous proposer ?

Attention : certains types .NET ne sont pas disponibles pour la
communication avec un web service.

Merci d'avance,
Gilbert

3 réponses

Avatar
Jérémy Jeanson
Bonjour Gilbert,

Si tu fais un tableau à deux démentions, là oui effectivement ça va être
plus groumant. Par contre la notion de tableaux de tableaux ne devrait p as
pose de soucis.

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Jérémy Jeanson
Oups pardon j'ai écris avec mes pieds...

Donc en français cela donne :

Si tu fais un tableau à deux dimensions, là oui effectivement ça v a être
plus gourmand. Par contre la notion de tableaux de tableaux ne devrait p as
pose de soucis.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Jérémy Jeanson
Bonjour Gilbert,

Pour répondre à ta question de syntaxe par mail je poste aussi la ré ponse
ici car ça peut servir à d'autres.

Cela s'écrit par exemple comme ceci :

' Création du tableau
Dim t As Byte()()

' initialisation à vide
t = New Byte(1)() {}

' Ajout de 2 tableaux de tailles différentes
liste(0) = New Byte() {1, 3, 2, 4, 7}
liste(1) = New Byte() {0, 9, 3, 4, 6, 0, 9, 8, 8, 6, 7, 6}

--
Jérémy JEANSON
MCP
http://www.jjeanson.fr