Page 1 sur 1

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

Publié : jeu. 08/févr./2024 1:04
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

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

Publié : dim. 11/févr./2024 0:22
par threedslider
Sympa ! Et merci pour le code ^^

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

Publié : dim. 11/févr./2024 9:17
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