|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[vb6] ci provo in visual basic...
Codice:
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "19200,n,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
Dim Ricevi
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(App.Path & "\Archivio.txt") Then
fso.CreateTextFile App.Path & "\Archivio.txt"
Set f = fso.OpenTextFile(App.Path & "\Archivio.txt", 2)
Else
Set f = fso.OpenTextFile(App.Path & "\Archivio.txt", 8)
End If
Ricevi = MSComm1.Input
f.Write Ricevi & Now
f.Close
sSave = ""
End Sub
la formattazione non la capisco Mi ripete più di una volta la data, così: Codice:
CODICE LETTO29/11/2004 13.49.44 ->0001<- 29/11/2004 13.49.44
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
scusami... ma da dove ti arrivano questi dati?
Molto probabilmente lui ti fa due passaggi e tu li intercetti tutti e due, così quando scrivi il file lui ti mette due volte...secondo me devi organizzarti in un altro modo! Inanzitutto prova a vedere quanti passaggi fa, ma secondo me sono davvero 2!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein Ultima modifica di matpez : 29-11-2004 alle 22:05. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Ti dico cosa vedo a video ad esempio da hyper terminal: Codice:
CODICE LETTO -> 0001 <- Per altro modo di organizzarmi, cosa mi suggerisci visto che sono a zero?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Prova ad impostare la proprietà RThreshold = 0 e riprova così com'è il codice!
Fammi sapere se ci sono cambiamenti!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
vi riporto una delle specifiche di questo lettore:
"L'invio e la ricezione dei dati avviene tramite porta seriale utilizzando un baud rate di 19200 bit/sec con codifica 8-N-1 senza utilizzare alcun controllo di flusso. Inoltre, per ricevere i comandi e per inviare le proprie risposte, il sistema utilizza sempre dei caratteri MAIUSCOLI in formato ASCII e alla fine delle risposte aggiunge i caratteri speciali A CAPO e INVIO (valore numerico decimale 13 e 10) per indicare la fine delle stringhe. All'accensione il sistema invia la stringa SYSTEM STARTUP ad indicare che è in corso l'inizializzazione. QUando il circuito invia la stringa "CODICE LETTO ->x<- in cui al posto della x vi sono i byte del codice; i caratteri "->" e "<-" sono stati inseriti per facilitare al software il compito di riconoscere il codice all'interno della risposta." Forse è questo il problema.....
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
uhm, per fare una prova, ho provato ad inserire dei caratteri per vedere quante volte me li ripeteva:
Codice:
f.write Ricevi & "O_O" & Now CODICEO_O29/11/2004 23.36.06 LETTO -O_O29/11/2004 23.36.06>0001<- O_O29/11/2004 23.36.06O_O29/11/2004 23.36.06
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Prova a fare una cosa del genere:
Codice:
Private Sub MSComm1_OnComm()
Dim str As String
MSComm1.InputLen = 0
If MSComm1.InBufferCount Then
Text1 = Text1 & MSComm1.Input
End If
End Sub
Cmq il trucco è facile, devi catturare tutte le stringe e separare al vbcrlf che sarebbe appunto il tuo catattere 10 e 13 Ora vado a dormire, domani prova, poi fammi sapere! Ciaoooooooooooooooooooooooooooo!!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein Ultima modifica di matpez : 29-11-2004 alle 23:42. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
PS: metti la proprietà Multiline della textbox=true , così vedi anche dove va a capo ... poi copia quello che ti mette dentro alla textbox e incollalo qui, magari ho + chiaro cosa quell'apparecchio ti passa!!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
senza cercare di fargli scrivere anche l'ora ottengo questo:
CODICE LETTO ->0001<- premetto però, che davanti a "CODICE" ci sono due quadratini neri. Questo invece è ciò che ottengo se cerco di fargli scrivere anche l'ora: CODICE29/11/2004 23.59.53 LETTO -29/11/2004 23.59.53>0001<- 29/11/2004 23.59.53 29/11/2004 23.59.53 anche qui, ci sono dei quadratini ma col copia-incolla non vengono.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Credo di avere visto cosa serve, io adesso sono a lavoro, stasera arrivo a casa per le 19 e vedo di prepararti un esempietto, che spero che funzioni dato che nn lo posso provare!
Magari te lo mando dopo cena... spero che tu nn abbia fretta!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Come promesso ti ho fatto un esempio...prova ad utilizzare il mio e fammi sapere se ti crea il vettore con i codici!
Al massimo ci facciamo qlc modifica!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Però..... a dir la verità, non ti so dire se funziona o meno perchè non riesco a vedere l'output
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Così dovresti vedere anche l'output...
Buona notte PS: cmq dovresti lavorare un po' con i break point, così ti facili la vita!
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
uhm, no, non mi da nessun output
Beh, ci lavoro su stasera poi domani ti so dire. Grazie davvero tanto! RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
>EDITED<
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
Ultima modifica di RaouL_BennetH : 02-12-2004 alle 13:07. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
forse....
Codice:
Option Explicit
Dim sLettura As String
Dim sCodice() As String
Private Sub Form_Load()
ReDim sCodice(0)
MSComm1.CommPort = 1
MSComm1.Settings = "19200,n,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
Dim sAux As String
MSComm1.InputLen = 0
If MSComm1.InBufferCount Then
sLettura = sLettura & MSComm1.Input
'prendo tutta la stringa passata fino a quando non arriva il carettere di fine stringa
If InStr(sAux, Chr$(13)) >= 0 Then
Call EstraiCodice
'sLettura = ""
End If
End If
End Sub
Private Sub EstraiCodice()
Dim nPos(2) As Integer
Dim sCodiceAux As String
'prendo la posizione dentro alla stringa del -> e del <-
nPos(1) = InStr(sLettura, "->")
nPos(2) = InStr(sLettura, "<-")
'controllo che ci sia realmente il codice dentro alla stringa
If nPos(1) > 0 And nPos(2) > 0 Then
nPos(1) = nPos(1) + 2
sCodiceAux = Mid(sLettura, nPos(1), nPos(2) - nPos(1))
Open App.Path & "\archivio.txt" For Append As #1
Write #1, sCodiceAux, Now; w
Close #1
'lo inserisco nel vettore
ReDim Preserve sCodice(UBound(sCodice) + 1)
sCodice(UBound(sCodice)) = sCodiceAux
'Text1 = Text1 & sCodiceAux & vbCrLf
End If
End Sub
Direi che ci sono quasi, devo solo capire perchè all'interno del file, mi scrive due volte la stessa cosa.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
finalmente!!!!
![]() Codice:
Option Explicit
Dim sLettura As String
Dim sCodice() As String
Private Sub Form_Load()
ReDim sCodice(0)
MSComm1.CommPort = 1
MSComm1.Settings = "19200,n,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
Dim sAux As String
MSComm1.InputLen = 0
If MSComm1.InBufferCount Then
'prendo tutta la stringa passata fino a quando non arriva il carettere di fine stringa
If InStr(sAux, Chr$(13)) >= 0 Then
Call EstraiCodice
sLettura = sLettura & MSComm1.Input
End If
End If
End Sub
Private Sub EstraiCodice()
Dim nPos(2) As Integer
Dim sCodiceAux As String
'prendo la posizione dentro alla stringa del -> e del <-
nPos(1) = InStr(sLettura, "->")
nPos(2) = InStr(sLettura, "<-")
'controllo che ci sia realmente il codice dentro alla stringa
If nPos(1) > 0 And nPos(2) > 0 Then
nPos(1) = nPos(1) + 2
sCodiceAux = Mid(sLettura, nPos(1), nPos(2) - nPos(1))
Open App.Path & "\archivio.txt" For Append As #1
Write #1, sCodiceAux, Now
Close #1
'lo inserisco nel vettore
ReDim Preserve sCodice(UBound(sCodice) + 1)
sCodice(UBound(sCodice)) = sCodiceAux
End If
End Sub
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Bene, ora volevo complicarmi un pò la vita per fare questo:
Se anzichè scrivere in un file di testo, volessi fare in modo che il valore di sCodiceAux (ad esempio "0001") ed il valore di Now (che è l'ora e la data corrente) venissero scritti in un db access, magari in una tabella con questi campi "Codice" e "Orario", sarebbe molto complesso? La connessione ad un db access la so fare, solo che non ho mai provato a scrivere dati direttamente in questo modo. Mi aiutate?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Servito su un piatto d'argento...
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:57.





















