banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 19 May 2004 14:52

Gturgis
Invité

Mapbasic : chercher une liste de fichier dans un repertoire

Encore un petit probleme, apres promis, j'arrete.
Toujours pour mon .mb d'import de dwg, j'utilise une multilist box afin d'effectuer toute la procedure d'import pour plusieurs fichiers autocad. L'operateur choisi dans cette liste les fichiers souhaites.
Or je ne sais pas s'il est possible de faire une boucle recherchant ces fichiers sur un repertoire depuis Mapbasic.
Si c'est possible, comment ?

Merci beaucoup pour la reponse

 

#2 Fri 21 May 2004 11:59

Christophe Barbier
Invité

Re: Mapbasic : chercher une liste de fichier dans un repertoire

Oui, il faut utiliser les API FindFirstFile et FindNextFile

Voici un exemple de code:

-------

Define MAX_PATH 260
Define INVALID_HANDLE_VALUE -1

Type FILETIME
dwLowDateTime As Integer
dwHighDateTime As Integer
End Type

Type WIN32_FIND_DATA
dwFileAttributes As Integer
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Integer
nFileSizeLow As Integer
dwReserved0 As Integer
dwReserved1 As Integer
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Declare Function FindFirstFile Lib kernel32 Alias FindFirstFileA (ByVal
lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Integer
Declare Function FindNextFile Lib kernel32 Alias FindNextFileA (ByVal
hFindFile As Integer, lpFindFileData As WIN32_FIND_DATA) As Integer

Sub get_FilesFromDirectory(filelist() As WIN32_FIND_DATA, ByVal spath As String)
Dim Found As WIN32_FIND_DATA
Dim Retval, hFile As Integer
Dim i As Integer

hFile = FindFirstFile(spath, Found)
If hFile = INVALID_HANDLE_VALUE Then ' Print Ce chemin ne contient ni dossiers ni fichiers.
Exit Sub
End If

i=0
Do
Do Case Found.dwFileAttributes

' Dossier
Case 16
If Found.cFileName
...
End Case
Loop

 

Pied de page des forums

Powered by FluxBB