Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-02-2003, 16:37   #61
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "leon84"

Cioè voglio dire perché shiftare ?
Ti faccio il caso in cui vogliamo sapere il valore dei 2 bit più significativi:

Il numero 134 è in binario 128+4+2...cioè 01 00 01 10...
Faccio l'and con 11 00 00 00 ed ottengo 01 00 00 00 che in decimale è 128 ma a me interessa avere il valore della cifra rappresentata da quei due bit (nel caso del messaggio il valore dell'ultimo byte) e per ottenerlo posso shiftare a destra di 6 bit ed ottengo che i due bit più significativi valgono 1 (per la rpecisione 01)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 16:37   #62
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Si ora è veramente chiaro . Toglimi una curiosità : le funzioni ReadFile,WriteFile sono tipizzate e ritornano tutte un valore Long . Come mai per esempio il valore long non viene utilizzato nel codice ad eccezione della CreateFile . Mi è capitato spesso in C++ di realizzare funzioni tipizzate . Il loro valore doveva per forza essere contenuto in una variaible . Non potevo cioè riciamarle come delle funzioni atipizzate (void) . Perché in VB questo è possibile ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 16:40   #63
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "leon84"

Il loro valore doveva per forza essere contenuto in una variaible . Non potevo cioè riciamarle come delle funzioni atipizzate (void) . Perché in VB questo è possibile ?
Nono in C e C++ si può tranquillamente fare

int f(int a)
{
....
}

Si può tranquillamente richiamare:

f(a);

senza usarne il risultato...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 16:46   #64
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
veramente ? lo sai che non lo sapevo ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 16:49   #65
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Nella chat che sto realizzando scambio messaggi di testo senza alcun problema : ora voglio inserire un menù che chiamo "Invia file" . Quando ci clicco si apre la finestra di dialogo che mi fa selezionare il file da inviare . Io lo seleziono e con tutte quelle procedure invio e ricevo il file . Il problema è : Come faccio a far capire all'altra applicazione che i dati che gli giungeranno sono i byte del file e non messaggi di testo ? Avevo pensato ad un identificatore per esempio "-99999999" . Quando riceve questo messaggio attiva la procedura di ricezione del file . Che ne pensi ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 17:34   #66
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fai così...il numero di byte del messaggio invece di metterlo su un Long lo metti su un Integer (16 bit)...
Se lo metti a 16 bit devi togliere le due conversioni per i byte più alti...

tmp fallo di 3 invece di 4 e sul primo Byte ci metti un byte di controllo...

SendMsg diventerà così:
Codice:
Private Sub SendMsg(cmd As Byte, num As Integer, buf() As Byte) 
Dim tmp(3) As Byte
    Dim v As Variant 
    tmp(1) = cmd
    tmp(2) = (num And &HFF00) / &H100 
    tmp(3) = num And &HFF
Ti devi definire diverse costanti all'interno del programma:

Const FILE_NAME &H04
Indica che ilpacchetto contiene un nome di un file (ad esempio per trasferire un file dall'altra parte e dargli lo stesso nome che dalla parte di chi lo manda)

Const FILE_DATA &H02
Indica che il pacchetto contiene i dati di un file

Const TEXT_DATA &H01
Indica che il pacchetto contiene i dati di un messaggio di testo

Const END_OF_DATA &H08
Questo può servire sia per indicare la fine di un nome di file, dei dati di un file e di un messaggio di testo

Const END_OF_CONNECTION &H80
Questo ti può servire per fare la disconnessione...magari l'altro PC dovrà risponderti con un altro apcchetto di END_OF_CONNECTION

Ad esempio l'invio del file diventerà così :
Codice:
        Do 
            ReadFile f, buffer(1), BYTE_PER_MSG, read, ByVal 0& 
            'Ora richiamo la Sub che invia i dati 
            If read < BYTE_PER_MSG Then
                SendMsg read, buffer,  FILE_DATA Or END_OF_DATA
            Else
                SendMsg read, buffer,  FILE_DATA
            End If
        Loop Until read < BYTE_PER_MSG 
        CloseHandle f
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 17:37   #67
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Durante la ricezione...per testare se hai un tipo o un altro di dati basta fare :
Codice:
If (tmp(1) And FILE_NAME) > 0 Then
...
ElseIf (tmp(1) And TEXT_DATA) > 0 Then
...
End If

'Per testare l'END_OF_DATA usi lo stesso metodo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 18:27   #68
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Ora faccio una cosa . Siccome ho creato un progetto a parte per il solo invio del file , domani a scuola lo provo . Se funziona e non mi dà alcun problema allora passo alla parte riguardante quelle costanti . Ah ... una cosa .... ma quelle costanti li definisco io o già esistono ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 18:32   #69
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Nono...le definisci te...
E' importante che ognuna rappresenti un bit del byte cmd...
Ah...aspetta...in SendMsg ho messo in cima cmd, mentre quando l'ho usato l'ho messo in fondo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 18:34   #70
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Si me ne sono accorto ma non ti preoccupare
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 18:42   #71
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Insomma, in poche parole ampliando il numero di byte per cmd puoi farci qualsiasi cosa... Come ad esempio controllare un PC in remoto...ricevere la lista delle directory...la lista dei file nelle directory...cambiare directory remota e qualsiasi altra cosa che ti viene in mente
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 18:48   #72
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Quote:
Originally posted by "cionci"

Insomma, in poche parole ampliando il numero di byte per cmd puoi farci qualsiasi cosa... Come ad esempio controllare un PC in remoto...ricevere la lista delle directory...la lista dei file nelle directory...cambiare directory remota e qualsiasi altra cosa che ti viene in mente
veramente ? in che senso scusa ? Mettiamo che voglio conoscere il contenuto dell'hard disk del computer a cui mi connetto . Come faccio ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 19:06   #73
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Andiamo per gradi...
Metti che cmd sia un integer e non un byte...

Puoi definire altre costanti (fino a 16)...

Ad esempio puoi definire altre costanti DIR_LIST_QUERY, DIR_LIST_RESPONSE e un altra che genera una condizione di errore (significa che il ricevente non può eseguire il comando inviato) che chiamo CMD_ERROR...

SendMsg 9, "C:\CICCIO", DIR_LIST_QUERY Or END_OF_DATA

Mettiamo che nel disco C: ci siano 3 directory: PIPPO, PLUTO, TOPOLINO.
Il ricevente con un ciclo risponderà con una serie di messaggi contenti le varie directory:

SendMsg 5, "Pippo", DIR_LIST_RESPONSE
SendMsg 5, "Pluto", DIR_LIST_RESPONSE
SendMsg 8, "Topolino", DIR_LIST_RESPONSE Or END_OF_DATA

Poi se definisci anche FILE_LIST_QUERY e FILE_LIST_RESPONSE:

SendMsg 9, "C:\CICCIO", DIR_LIST_QUERY Or END_OF_DATA

Ed ovviamente il ricevente risponderà con i file contenuti nella directory Ciccio...

Poi chi più ne ha più ne metta... Cancellare i file...copiarli in un'altra posizione...rinominarli (si può usare anche la copia non c'è bisogno di ridefinire altre costanti)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 19:12   #74
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Quote:
Originally posted by "cionci"

Andiamo per gradi...
Metti che cmd sia un integer e non un byte...

Puoi definire altre costanti (fino a 16)...

Ad esempio puoi definire altre costanti DIR_LIST_QUERY, DIR_LIST_RESPONSE e un altra che genera una condizione di errore (significa che il ricevente non può eseguire il comando inviato) che chiamo CMD_ERROR...

SendMsg 9, "C:\CICCIO", DIR_LIST_QUERY Or END_OF_DATA

Mettiamo che nel disco C: ci siano 3 directory: PIPPO, PLUTO, TOPOLINO.
Il ricevente con un ciclo risponderà con una serie di messaggi contenti le varie directory:

SendMsg 5, "Pippo", DIR_LIST_RESPONSE
SendMsg 5, "Pluto", DIR_LIST_RESPONSE
SendMsg 8, "Topolino", DIR_LIST_RESPONSE Or END_OF_DATA
Scusa non ti seguo . Abbiamo detto che cmd è un byte di controllo . Ora fammi capire DIR_LIST_QUERY e le altre sono costanti che devo sempre dichiarare a mio piacere ? Poi un'altra cosa : cosa significa quando alla funzione SendMSg invii come parametro DIR_LIST_RESPONSE Or END_OF_DATA . Cioè voglio capire quell'or che funzione ha ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 19:27   #75
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Cmd lo puoi ampliare a tuo piacere....e a tuo piacere puoi definire anche quelle costanti...

END_OF_DATA abbiamo detto che significa che il messaggio corrente è l'ultimo della serie... Mettere un Or significa che quando fai il test con l'And per verificare se una costante è settata (in qualche messaggio sopra ti avevo detto che per fare i test per vedere se una costante è settata bisogna fare un OR, ma avevo sbagliot a scrivere...ci vuole l'And) ti rende un numero > zero (questo perchè abbiamo detto che ogni costante è un bit distinto di cmd)...
Nota che questo è il metodo che usano praticamente tutte le funzioni delle API di Windows... Ad esempio in CreateFile se volevi che il file aperto potesse essere sia letto che scritto da altri mentre è aperto da te basta mettere FILE_SHARE_WRITE Or FILE_SHARE_READ...
Oppure se vuoi aprire un file sia in lettura che in scrittura basta combinare le due opzioni GENERIC_READ e GENERIC_WRITE con l'Or...

In pratica usando l'Or setti a 1 il bit di cmd corrispondente alla costante usata...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-02-2003, 19:30   #76
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Inizio a non capirci più . Forse perché ho passato tutto il giorno a capire il resto .
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2003, 14:28   #77
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Allora stamattina ho provato ma sfortunatamente ecco presentarsi i problemi . Quando dichiaro la matrice tmp(4) , dopo mi impedisce di fare :
MSCOMM1.output = tmp . Ed anche quando leggo , facendo tmp = MSCOMM1.input mi da problemi . Come si può ovviare ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2003, 18:08   #78
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Come avevo fatto io...devi assegnare tmp ad un variant...e poi il variant alla output...
Stessa cosa per la input...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2003, 18:13   #79
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Quote:
Originally posted by "cionci"

Come avevo fatto io...devi assegnare tmp ad un variant...e poi il variant alla output...
Stessa cosa per la input...
Allora : per quanto riguarda l'output ok lo assgno al variant . Ma quando leggo come faccio ? Leggo in un variant ? e poi ? come faccio ad assegnare a tmp(1) il primo byte a tmp(2) il secondo e così via ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2003, 18:23   #80
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sinceramente non lo so, prova ad assegnare il variant a tmp...
Semplicemente tmp = v...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Elgato Embrace: una sedia ergonomica pro...
Brad Pitt torna in pista: F1 – Il Film a...
Hitachi Vantara annuncia la sua AI Facto...
Brembo passa all'alluminio riciclato al ...
HONOR pronta a sfidare gli iPad Pro con ...
OpenAI esce allo scoperto: confermati i ...
In arrivo altri due prodotti da Apple en...
Il tool per aggiornare da Windows 10 a W...
Rishi Sunak entra in Microsoft e Anthrop...
Porsche in poche ore chiude la formazion...
iPhone 17 disponibili su Amazon al prezz...
La Ferrari Elettrica non è la cau...
Ricarica da record: Zeekr supera i 1.300...
Un 'capezzolo' con feedback aptico al po...
Porsche Taycan Rush a Misano: prima al v...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v