#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 subHors 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


