FONCTION GENERIQUE QUI RETOURNE UN TABLEAU [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
23 novembre 2004
-
Messages postés
8
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
23 novembre 2004
-
Bonsoir à tous,

J'ai créé une fonction dans un module intitulé iofonctions.prg.

FUNCTION FolderListe()
PARAMETERS DrivePath
DIMENSION ThePaths(1024)
Inc=1
fsObject = CreateObject("Scripting.FileSystemObject")
RootFolder = fsObject.GetFolder(drivepath)
ChildFolders = RootFolder.SubFolders
For Each FolderFound In ChildFolders
thepaths(inc)=FolderFound.Name
inc=inc+1
NEXT
RETURN Thepaths
ENDFUNC

Cette fonction est appelée depuis un autre module comme
ceci :

.....
SET PROCEDURE TO iofonctions
DirRoutes=folderliste(Folder_Routes + "")

La variable DirRoutes me retourne uniquement une chaine,
mais pas le tableau Thepaths.

Ce que j'attends en fait dans DirRoutes, c'est une copie de Thepaths, pour traiter chaque élément du tableau.

Merci pour votre aide
A voir également:

2 réponses

Messages postés
8
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
23 novembre 2004

Impeccable, Thierry, merci beaucoup.

En plus tu m'apportes un plus sur la compréhension du
fonctionement des classes...

Place ce code dans les contributions ... ça va donner un
bon coup de main aux débutants ...

a+
Messages postés
103
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 juillet 2006

Bonsoir,

De cette façon, ce n'est pas possible.

Je te propose d'écrire iofonctions.prg ce cette manière :

DEFINE CLASS ioFonctions as Custom

DIMENSION ThePaths(1024)
nbFolder = 0

FUNCTION FolderListe(DrivePath)
fsObject = CreateObject("Scripting.FileSystemObject")
RootFolder = fsObject.GetFolder(drivepath)
ChildFolders = RootFolder.SubFolders
this.nbFolder =0
FOR Each FolderFound In ChildFolders
this.nbFolder = this.nbFolder+1
this.thePaths(this.nbFolder)=FolderFound.Name
NEXT
RETURN this.nbFolder
ENDFUNC

ENDDEFINE

On l'utilise alors ainsi :

oIo=NewObject("ioFonctions","iofonctions.prg")
oIo.FolderListe("c:")
? oIo.ThePaths(1)
? oIo.ThePaths(2)