Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Secondo voi non c'è un errore nel capitolo 16 della guida VB
Forum - C# / VB.NET - Secondo voi non c'è un errore nel capitolo 16 della guida VB

Avatar
robbe (Normal User)
Newbie


Messaggi: 4
Iscritto: 14/10/2018

Segnala al moderatore
Postato alle 17:17
Domenica, 14/10/2018
In fondo al capitolo 16 spiega come leggere i campi a bit immagazzinati usando and.

Ho provato a scrivere dei programmini per provare il comando ma non mi funziona regolarmente.

Ho provato a cambiare nel programma di Piero

F = FileAttributes.Archive Or FileAttributes.System Or FileAttributes.Hidden

con

F = FileAttributes.Normal Or FileAttributes.System Or FileAttributes.Hidden

In questo caso quindi l'opzione archive non è flaggata ma lui me la vedo lo stesso.

Non riesco a venirne a capo e forse sono solo stanco perchè sto studiando da moltissimo.

Vi chiedo scusa in anticipo se ho detto delle stupidate.


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:26
Domenica, 14/10/2018
Puoi mostrare il codice a cui ti riferisci e il tuo senza fare riferimento a delle lezioni che bisogna andare a cercare?



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à.
PM Quote
Avatar
robbe (Normal User)
Newbie


Messaggi: 4
Iscritto: 14/10/2018

Segnala al moderatore
Postato alle 17:30
Lunedì, 15/10/2018
Si grazie per l'interessamento, ieri ci ho perso tutto il pomeriggio.  Il codice è questo e mi sa proprio che c'è un errore.

Module Module1
    Sub Main()
        Dim F As FileAttributes

        F = FileAttributes.Archive Or FileAttributes.System Or _
            FileAttributes.Hidden

        'Ora F è 00001110 e bisogna eseguire un'operazione di And
        'sui bit, confrontando questo valore con Archive, che è 8.
        'And restituisce Vero solo quando entrambe le condizioni
        'sono vere:
        '00001110 And
        '00001000 =
        '00001000, ossia Archive!
        If F And FileAttributes.Archive = FileAttributes.Archive Then
            Console.WriteLine("Il file è marcato come 'Archive'")
        End If
        Console.ReadKey()
    End Sub
End Module  


Questa riga

If F And FileAttributes.Archive = FileAttributes.Archive Then

Secondo me va cambiata con questa:

If F And FileAttributes.Archive Then


Sai dirmi se ho ragione?  Se si, bisognerebbe modificare la lezione 16 altrimenti altri potrebbero perderci un pomeriggio non riuscendo a capire i comandi.

Comunque grazie mille per l'interessamento.

PM Quote
Avatar
robbe (Normal User)
Newbie


Messaggi: 4
Iscritto: 14/10/2018

Segnala al moderatore
Postato alle 17:31
Lunedì, 15/10/2018
Si grazie per l'interessamento, ieri ci ho perso tutto il pomeriggio.  Il codice è questo e mi sa proprio che c'è un errore.

Module Module1
    Sub Main()
        Dim F As FileAttributes

        F = FileAttributes.Archive Or FileAttributes.System Or _
            FileAttributes.Hidden

        'Ora F è 00001110 e bisogna eseguire un'operazione di And
        'sui bit, confrontando questo valore con Archive, che è 8.
        'And restituisce Vero solo quando entrambe le condizioni
        'sono vere:
        '00001110 And
        '00001000 =
        '00001000, ossia Archive!
        If F And FileAttributes.Archive = FileAttributes.Archive Then
            Console.WriteLine("Il file è marcato come 'Archive'")
        End If
        Console.ReadKey()
    End Sub
End Module  


Questa riga

If F And FileAttributes.Archive = FileAttributes.Archive Then

Secondo me va cambiata con questa:

If F And FileAttributes.Archive Then


Sai dirmi se ho ragione?  Se si, bisognerebbe modificare la lezione 16 altrimenti altri potrebbero perderci un pomeriggio non riuscendo a capire i comandi.

Comunque grazie mille per l'interessamento.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:44
Lunedì, 15/10/2018
Quella If è sbagliata perché mancano delle parentesi

If (F And FileAttributes.Archive) = FileAttributes.Archive Then

Può essere anche scritta, correttamente

If F And FileAttributes.Archive Then


Quindi in effetti c'è un errore.


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à.
PM Quote
Avatar
robbe (Normal User)
Newbie


Messaggi: 4
Iscritto: 14/10/2018

Segnala al moderatore
Postato alle 19:06
Lunedì, 15/10/2018
Grazie mille, sei stato molto gentile.
Ho da poco incominciato a studiare Visual Basic e devo dire che grazie a questa guida ho scoperto quanto sia bello!!

Poi ieri per colpa di questo errore ho scoperto anche il forum, spettacolo.

Bisognerebbe correggere l'errore altrimenti altri andranno a sbatterci il muso.

Ciao e grazie mille.

PM Quote