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

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

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

 

Pied de page des forums

Powered by FluxBB