Oppure

Loading
17/02/12 15:05
1n4148
Salve
Premetto che sono un testardo perché potrei fare molto più facilmente in VisualB quello che mi ostino a cercare in Quick.
Il problema che vorrei risolvere è il seguente:
Vorrei sapere quanti drive sono disponibili sul PC comprese le porte USB, per avere un elenco di tutti i possibili drive.
Ho cercato di usare i vari Interrupt del DOS ma non ho trovato nessuno che funzionasse come volevo io.
Ho usato la sub rutine che allego ma il risultato non mi piace anche se la risposta è giusta.

GOSUB ListaDrivers
ListaDrivers:
ListaDrv$ = ""
FOR i = 1 TO 26
FILES CHR$(i + 64) + ":*.pip"
IF E% = 68 THEN
ELSE
ListaDrv$ = ListaDrv$ + CHR$(i + 64)
END IF
NEXT i
RETURN

Mi ritorna in ListaDrive$ "ACDEFGHIJKL"
C'e modo di avere lo stesso risultato usando gli interrupt del DOS?
aaa
17/02/12 18:13
HeDo
domanda totalmente inutile, mi chiedo perchè la sezione qbasic sia ancora aperta...
aaa
18/02/12 5:26
1n4148
Grazie comunque
Però avevo fatto una premessa e la risposta è comunque utile.
aaa
18/02/12 8:50
nessuno
L'interrupt 21 AX 4408 restituisce info sui device (da A in poi) ma non ti puoi aspettare informazioni particolari dal DOS (o da quello che rimane del DOS) dato che questo non può avere conoscenza di specifici device ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
18/02/12 9:16
Poggi Marco
(doppio)
Ultima modifica effettuata da Poggi Marco 18/02/12 9:17
aaa
18/02/12 9:16
Poggi Marco
Una possibile soluzione al problema, consiste nel tentativo di scrivere un file su ogni drive possibile?
aaa
18/02/12 9:26
nessuno
Questo non ti dice se il drive c'è ... potrebbe essere protetto in scrittura o non avere i permessi.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
21/02/12 15:59
1n4148
Con questo listato sono riuscito l'unico arzigogolo che ho dovuto fare è stato di inviare l'output su altro schermo per non avere scritte indesiderate.
Però proverò anche L'INT 21 AX4408 grazie
On Error goto Errore
Gosub ListaDriver
ListaDrivers:
   ListaDrv$ = ""
   SCREEN , , 1, 0 'Invia output su altro schermo
   FOR i = 1 TO 26
      FILES CHR$(i + 64) + ":*.pip"  'estensione improbabile
      IF E% = 68 THEN
      ELSE
         ListaDrv$ = ListaDrv$ + CHR$(i + 64)
      END IF
   NEXT i
RETURN
' ****************    Gestore di errori  **************************
Errore:
IF ERR = 71 THEN E% = ERR: RESUME NEXT
IF ERR = 68 THEN E% = ERR: RESUME NEXT
IF ERR = 53 THEN E% = 53: RESUME NEXT
Ultima modifica effettuata da 1n4148 21/02/12 16:06
aaa