Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
FileSystemWatcher
martedì 21 agosto 2007 - 18.04
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
denis.basei
Profilo
| Senior Member
222
messaggi | Data Invio:
mar 21 ago 2007 - 18:04
Dichiaro in una classe un oggetto FileSystemWatcher:
Dim WithEvents fsw As New FileSystemWatcher()
... lo inizializzo
fsw.Path = clParametriCarico.LCRPathFile
fsw.IncludeSubdirectories = False
fsw.Filter = clParametriCarico.LCRNomeFile ' Osservo solo un file specifico.
fsw.NotifyFilter = NotifyFilters.FileName
' Abilito la notifica degli eventi.
fsw.EnableRaisingEvents = True
ed ho poi questa sub per intercettare la presenza di un nuovo file in una certa cartella
Private Sub fsw_Created(ByVal sender As Object, ByVal e As FileSystemEventArgs) Handles fsw.Created
Dim PosErrore As Byte = 0
Try
PosErrore = 1
Dim parser As New TextFieldParser(clParametriCarico.LCRPathFile & clParametriCarico.LCRNomeFile, System.Text.Encoding.Default)
parser.Delimiters = New String() {";"}
parser.TrimWhiteSpace = True
PosErrore = 2
Dim fields() As String = parser.ReadFields()
parser.Close()
If DatiFileInputCorretti(fields) = False Then
' Apro un form per consentire all'operatore di correggere i dati sbagliati.
Dim frm As New EditorDatiFileIngressoPz
' Passo al form i dati da visualizzare, letti dal file.
frm.BarCode = fields(0)
frm.LunghezzaConImballo = fields(1)
frm.LarghezzaConImballo = fields(2)
frm.SpessoreConImballo = fields(3)
frm.Cliente_RagioneSociale = fields(4)
frm.Cliente_Indirizzo = fields(5)
frm.Cliente_LocalitaProvincia = fields(6)
frm.Cliente_Cap = fields(7)
frm.Riferimento = fields(8)
frm.Qta = fields(9)
frm.CodiceArticolo = fields(10)
frm.Descrizione = fields(11)
frm.Finitura = fields(12)
frm.Lunghezza = fields(13)
frm.Larghezza = fields(14)
frm.Spessore = fields(15)
frm.NroOrdine = fields(16)
frm.DataConsegna = fields(17)
frm.Serie = fields(18)
frm.Marca = fields(19)
frm.Corriere = fields(20)
frm.Settimana = fields(21)
frm.NroCollo = fields(22)
frm.ColliTot = fields(23)
' La variabile a seguire è stata valorizzata nella funzione DatiFileInputCorretti.
frm.Log = class_mchIngresso1.LogIngresso1
frm.InputRichiesta = 1 ' Origine della richiesta di apertura del form (class_mchIngresso1)
frm.ShowDialog()
Else
If clTask_dsCarico.BarCodeUnivoco(fields(0), class_mchIngresso1.LogIngresso1) Then
' Aggiungo un nuovo record alla datatable SequenzaColli.
clTask_dsCarico.Accoda_SequenzaColli(fields(0), CType(fields(1), Integer), CType(fields(2), Integer), CType(fields(3), Integer), fields(4), fields(5), fields(6), _
fields(7), fields(8), CType(fields(9), Integer), fields(10), fields(11), fields(12), CType(fields(13), Integer), CType(fields(14), Integer), _
CType(fields(15), Integer), fields(16), fields(17), fields(18), fields(19), fields(20), CType(fields(21), Byte), CType(fields(22), Integer), CType(fields(23), Integer), _
StatoBufferOutImballo01_Pos9_InIngresso, class_mchIngresso1.LogIngresso1)
Else
MessageBox.Show("Già presente nella sequenza dei colli passati." & ControlChars.CrLf & "Il pezzo verrà saltato.", "BarCode " & fields(0) & ":", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
' Rinomino il file, così da mantenere uno storico dei files e consentire al supervisore dell'imballo di scriverne un altro.
Dim NomeFileStorico As String
clParametriCarico.PgrStorico += 1
NomeFileStorico = clParametriCarico.LCRNomeFileStorico & "." & clParametriCarico.PgrStorico.ToString.PadLeft(3, "0")
File.Copy(clParametriCarico.LCRPathFile & clParametriCarico.LCRNomeFile, clParametriCarico.LCRPathFile & NomeFileStorico, True)
File.Delete(clParametriCarico.LCRPathFile & clParametriCarico.LCRNomeFile)
Catch ex As Exception
MessageBox.Show("fsw_Created: PosErrore " & PosErrore & " " & ex.Source & ": " & ex.Message)
End Try
End Sub
Ogni tanto, la sub mi ritorna l'errore object reference non set to an istance of an object. Se metto un punto di interruzione all'inizio della sub e procedo con F8 funziona senza errore. Cosa può essere?
Denis
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !