#1 Sat 17 October 2009 22:18
- fredericfridi
- Participant actif
- Date d'inscription: 2 Feb 2008
- Messages: 97
Mapbasic
Bonjour
comment créer un répertoire en mapbasic ?
merçi
Hors ligne
#2 Sat 17 October 2009 22:33
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Mapbasic
Bonjour
Ca n'est pas une référence, mais moi je passe par une bonne vieille commande DOS...
Hors ligne
#3 Sat 17 October 2009 23:07
- fredericfridi
- Participant actif
- Date d'inscription: 2 Feb 2008
- Messages: 97
Re: Mapbasic
j ai essayé
Run Application "md c:\table"
mais ça ne marche pas
Hors ligne
#4 Sat 17 October 2009 23:15
- fredericfridi
- Participant actif
- Date d'inscription: 2 Feb 2008
- Messages: 97
Re: Mapbasic
je viens de trouver
Code:
Run Program "command.com /c md c:\table"
mais comment faire lorsque le chemin est dans une variable ?
merci
Dernière modification par fredericfridi (Sat 17 October 2009 23:25)
Hors ligne
#5 Sun 18 October 2009 10:33
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Mapbasic
Bonjour
Déjà souvent évoqué: passer par unne commande interprétée
cmd ="tagada"+variable1+"tsoin-tsoin"+chr$(34)+variable2+chr$(34)
run command cmd
Hors ligne
#6 Sun 18 October 2009 20:51
- fredericfridi
- Participant actif
- Date d'inscription: 2 Feb 2008
- Messages: 97
Re: Mapbasic
Bonjour Maurice
je dois être NEU NEU
Code:
cmd ="command.com /c md "+chemin note cmd Run Program cmd
pas de répertoire créer!!
Dernière modification par fredericfridi (Sun 18 October 2009 20:52)
Hors ligne
#7 Sun 18 October 2009 21:33
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Mapbasic
Les choses ont un peu évolué (comme le montre une recherche...)
cmd ="Run Program cmd.exe /c md "+chr$(34)+chemin+chr$(34)
note cmd
Run Program cmd
devrait marcher (pas sûr que les guillemets chr$(34) soient utiles)
Hors ligne
#8 Mon 19 October 2009 07:06
- fredericfridi
- Participant actif
- Date d'inscription: 2 Feb 2008
- Messages: 97
Re: Mapbasic
Bonjour
pour l'instant pas d' effet
je continue a chercher ce soir
merçi pour la piste
Hors ligne
#9 Mon 19 October 2009 07:30
Re: Mapbasic
Je pense que :
- Tu devrais donner la version de ton système d'exploitation
- Tes essais, tu les fais bien avec "c:\table", ou bien tu tests avec quelque chose de plus compliqué ?
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#10 Mon 19 October 2009 10:19
- Richard Lohier
- Participant occasionnel
- Lieu: Le perray en yvelines
- Date d'inscription: 13 Nov 2006
- Messages: 28
Re: Mapbasic
Bonjour,
une autre solution, issue des ressources de Jacques Paris (http://www.paris-pc-gis.com/mb_r/dll/pa … ectory.htm, après une recherche rapide, je n'ai pas trouvé l'équivalent sur le mirroir GeoRezo) , en passant par les API Windows :
Code:
'Example demonstrating the Windows API CreateDirectory() 'and DeleteDirectory() in MapBasic. '---------------------------------------------------------------------- include "mapbasic.def" type SECURITY_ATTRIBUTES nLength as integer 'DWORD in Windows lpSecurityDescriptor as integer 'LPVOID in Windows bInheritHandle as integer 'BOOL in Windows end type declare function CreateDirectory32 lib "Kernel32.dll" alias "CreateDirectoryA" (byval sPath as string, tSecurity as SECURITY_ATTRIBUTES) as integer declare function RemoveDirectory32 lib "Kernel32.dll" alias "RemoveDirectoryA" (byval sPath as string) as integer declare function CreateDirectory16 lib "Kernel.dll" alias "CreateDirectory" (byval szDir as string, tSecurity as SECURITY_ATTRIBUTES) as integer declare function RemoveDirectory16 lib "Kernel.dll" alias "RemoveDirectory" (byval szDir as string) as integer declare sub main declare sub CreateDir declare sub DeleteDir declare sub ExitApp '---------------------------------------------------------------------- sub main create menu "Répertoires" as "Créer un répertoire" calling CreateDir, "Effacer un repertoire vide" calling DeleteDir, "Quitter" calling ExitApp alter menu bar add "Répertoires" end sub '---------------------------------------------------------------------- sub CreateDir dim sPath as string dim tSecurity as SECURITY_ATTRIBUTES dim nStatus as integer tSecurity.nLength = 24 'Size of this structure in bytes, but you 'can get away with using 0 in place of the 'tSecurity parameter as Win3.1 and Win95 'seem to ignore it anyway. sPath = "C:\repertoirec" dialog title "Créer un repertoire" control statictext position 4,4 title "Répertoire :" control edittext position 76,2 width 200 value sPath into sPath control OKbutton position 4,24 control CancelButton position 46,24 if not CommandInfo (CMD_INFO_DLG_OK) then exit sub end if do case SystemInfo (SYS_INFO_MIPLATFORM) case MIPLATFORM_WIN32 nStatus = CreateDirectory32 (sPath, tSecurity) case MIPLATFORM_WIN16 nStatus = CreateDirectory16 (sPath, tSecurity) case else note "This app serves only the one, true OS." nStatus = 0 end case if nStatus = 0 then note "Repertoire " + sPath + " non crée." else note "Répertoire " + sPath + " crée." end if end sub '---------------------------------------------------------------------- sub DeleteDir dim sPath as string dim nStatus as integer sPath = "C:\repertoirec" dialog title "Effacer un répertoire" control statictext position 4,4 title "Répertoire :" control edittext position 76,2 width 200 value sPath into sPath control OKbutton position 4,24 control CancelButton position 46,24 if not CommandInfo (CMD_INFO_DLG_OK) then exit sub end if do case SystemInfo (SYS_INFO_MIPLATFORM) case MIPLATFORM_WIN32 nStatus = RemoveDirectory32 (sPath) case MIPLATFORM_WIN16 nStatus = RemoveDirectory16 (sPath) case else note "This app serves only the one, true OS." end case if nStatus = 0 then note "Répertoire " + sPath + " non effacé." else note "Répertoire " + sPath + " enlevé." end if end sub '---------------------------------------------------------------------- sub ExitApp terminate application "Creation_repertoire.mbx" end sub
Hors ligne
#11 Mon 19 October 2009 13:37
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Mapbasic
Plus simple et cette fois sans les fautes de frappe ou de guillemets:
cmd="Run program "+chr$(34)+"c:\winnt\system32\cmd.exe /c md "+chemin+chr$(34)
run command cmd
nb: vérifier la localisation de cmd.exe; ici c'est un emplacement pour Windows 2000...
chemin est une variable telle que chemin = "c:\temp\titi"...ce qui crée le répertoire titi dans C:\temp ...
Hors ligne
#12 Mon 19 October 2009 20:16
- valpuesta
- Participant occasionnel
- Date d'inscription: 5 Sep 2005
- Messages: 43
Re: Mapbasic
Bonjour,
Pour ma part, je génère avec Mapinfo un fichier .bat dans lequel je mets toutes les commandes Mapbasic.
Ensuite je lance une commande pour exécuter le fichier bat.
Cordialement,
Hors ligne