Lister les Lettres dispo pour un Lecteur (C,D etc)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Lister les Lettres dispo pour un Lecteur (C,D etc)

Message par Ar-S »

Je fait un petit GUI pour l'excellent imdisk-virtual-disk-driver qui est un soft en ligne de commande pour créer des RAM Disk
Comme je ne souhaite pas que mon soft ruine un lecteur déjà monté genre C: :? j'avais besoin de lister les lecteurs pour voir quelles lettres étaient disponibles.

J'ai trouvé de vieux code de Progi1984, Jacobus ici mais ils sont bien vieux
et font trop.

Du coup je vous propose ce petit code.

Code : Tout sélectionner

; Ar-S GPT 
Global.i drivesMask
Global.s driveLetter

; Récupérer le masque des lecteurs disponibles
drivesMask = GetLogicalDrives_()

; Vérifier chaque lettre de lecteur de A à Z
For i = 0 To 25
  If drivesMask & (1 << i)
    driveLetter = Chr(Asc("A") + i)
    Debug driveLetter + " est utilisé"
  Else
    driveLetter = Chr(Asc("A") + i)
    Debug driveLetter + " est disponnible"
  EndIf
Next
End
EnJoYeZ
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
threedslider
Messages : 452
Inscription : dim. 01/juil./2018 22:38

Re: Lister les Lettres dispo pour un Lecteur (C,D etc)

Message par threedslider »

Sympa ! Et merci pour le code ^^
nemerod
Messages : 40
Inscription : mer. 24/août/2022 0:58

Re: Lister les Lettres dispo pour un Lecteur (C,D etc)

Message par nemerod »

Ar-S a écrit : jeu. 08/févr./2024 1:04 Je fait un petit GUI pour l'excellent imdisk-virtual-disk-driver qui est un soft en ligne de commande pour créer des RAM Disk
Comme je ne souhaite pas que mon soft ruine un lecteur déjà monté genre C: :? j'avais besoin de lister les lecteurs pour voir quelles lettres étaient disponibles.

J'ai trou... (truncated MSG)
coucou, désolé mais bon c'est encore trop, tu peu viré une variable qui a aucun raison d’être la si c'est pour faire du debug
tu peu aussi viré le ASC et placé directement le A dans des '' se qui fais la meme chose mais en plus rapide sans prendre de texte, car il va donné directement la valeur $41, car purebasic a une facheusse tentence a crée des buffer de 4096 octet que se soit en unicode ou ascii ou autre, pour rien
donc deja que tu a le CHR, mais bon combiné avec le reste, il comprendra surtout avec le backend, donc 1 seul allocation et pas 2

Code : Tout sélectionner

; Ar-S GPT, tu essais de me volé la vedette ? (by nemerod GPT from discord)
Global.q drivesMask

; Récupérer le masque des lecteurs disponibles
drivesMask = GetLogicalDrives_()

; Vérifier chaque lettre de lecteur de A à Z
For i = 0 To 25
  If drivesMask&(1<<i)
    Debug Chr('A'+i)+" est utilisé"
  Else
    Debug Chr('A'+i)+" est disponnible"
  EndIf
Next
Répondre