IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Retourner la liste des lecteurs réseau sous Windows

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Présentation ♪

Produit : 4D v11 SQL  ·  Plateforme : Windows


Sous Windows, il est possible de mapper des lecteurs réseaux en lecteurs logiques (E:, F:, H:, etc.).

Le code 4D ci-dessous propose un exemple pour retourner une liste des lecteurs réseau courants.

Nous utilisons deux tableaux qui recevront les résultats.

Le tableau tt_LecteurUNC stocke les lettres des lecteurs.

Le tableau tt_CheminUNC stocke les chemins UNC correspondants.

code 4D
Sélectionnez
C_TEXTE(flux_sortie;flux_entree;flux_erreur;$separateur;$CRLF;$Fini;$continuer;$tmpTestCaractere)
C_ENTIER LONG($PremierOK;$PremierNL;$DernierePosition;$tmpPositionTrouvee;$tmpLongueur;$tmpLongeurTrouvee)
C_ENTIER LONG($tmpLongueurUNC;$DernierCaractereTrouve;$compteur)
TABLEAU TEXTE(tt_TrouvesUNC;0)
TABLEAU TEXTE(tt_LecteurUNC;0)
TABLEAU TEXTE(tt_CheminUNC;0)
$separateur:="-------------------------------------------------------------------------------"
flux_sortie:=""
flux_entree:=""
flux_erreur:=""
$CRLF:=Caractere(Retour chariot )+Caractere(Retour à la ligne )
LANCER PROCESS EXTERNE("NET USE";flux_entree;flux_sortie;flux_erreur)
$Fini:=""
$DernierePosition:=1
$numTrouve:=0

  ` chaque ligne commençant par OK est mise dans le tableau
Repeter 
    $PremierOK:=Position("OK";flux_sortie;$DernierePosition)
    $PremierNL:=Position($CRLF;flux_sortie;$PremierOK)
    Si ($PremierOK>$DernierePosition)
        $DernierePosition:=$PremierNL
        AJOUTER A TABLEAU(tt_TrouvesUNC;Sous chaine(flux_sortie;$PremierOK;($PremierNL-$PremierOK)))
        $numTrouve:=$numTrouve+1
    Sinon 
        $Fini:="oui"
    Fin de si 
Jusque ($Fini="oui")

  ` retire tout ce qui se trouve avant la lettre du lecteur réseau
Boucle ($compteur;1;Taille tableau(tt_TrouvesUNC))
    $tmpLongueur:=Longueur(tt_TrouvesUNC{$compteur})-13
    tt_TrouvesUNC{$compteur}:=Sous chaine(tt_TrouvesUNC{$compteur};14;$tmpLongueur)
Fin de boucle 

  ` enlève la chaine "Microsoft Windows Network" des elements du tableau
Boucle ($compteur;1;Taille tableau(tt_TrouvesUNC))
    $tmpPositionTrouvee:=Position("RÇseau Microsoft Windows";tt_TrouvesUNC{$compteur};1;$tmpLongeurTrouvee)
    Si ($tmpPositionTrouvee#0)
        tt_TrouvesUNC{$compteur}:=Sous chaine(tt_TrouvesUNC{$compteur};1;$tmpPositionTrouvee-1)
    Fin de si 
Fin de boucle 

  ` séparer en deux tableaux : lettres des lecteurs et chemin UNC
Boucle ($compteur;1;Taille tableau(tt_TrouvesUNC))
    AJOUTER A TABLEAU(tt_LecteurUNC;Sous chaine(tt_TrouvesUNC{$compteur};1;2))
    AJOUTER A TABLEAU(tt_CheminUNC;Sous chaine(tt_TrouvesUNC{$compteur};11))
Fin de boucle 

  ` enlève l'espace blanc des éléments de tt_CheminUNC
Boucle ($compteur;1;Taille tableau(tt_CheminUNC))
    $continuer:="oui"
    Repeter 
        $tmpLongueurUNC:=Longueur(tt_CheminUNC{$compteur})
        $DernierCaractereTrouve:=Position(" ";tt_CheminUNC{$compteur};$tmpLongueurUNC)
        $tmpTestCaractere:=Sous chaine(tt_CheminUNC{$compteur};$DernierCaractereTrouve)
        Si ($tmpTestCaractere=" ")
            tt_CheminUNC{$compteur}:=Sous chaine(tt_CheminUNC{$compteur};1;$DernierCaractereTrouve-1)
        Sinon 
            $continuer:="non"
        Fin de si 
    Jusque ($continuer="non")
Fin de boucle

Résultat dans le débogueur de 4D (adresse IP du lecteur Y: fictive) :

Image non disponible

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2005-2008 4D s.a.. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.