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: 6288
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: 6288
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