
Originariamente inviata da
gibra
La prima che mi viene in mente è quella di usare il driver di testo che sfrutta lo Schema.ini:
Schema.ini File (Text File Driver) http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Ecco un esempio. Questo è il contenuto del file SCHEMA.INI (che deve risiedere nella cartella di destinazione):
codice:
[DL-IMA-PUSH.csv] ColNameHeader=False Format=FixedLength MaxScanRows=0 CharacterSet=ANSI col1=DataOra Text Width 20 col2=Tipo Text Width 6 col3=Desc Text Width 100
- txtTargetFolder contiene la cartella di destinazione - l'estensione del file deve essere modificata in CSV, altrimenti ti da errore.
codice:
Imports System Imports System.Data Imports System.IO Imports System.Data.OleDb Public Class Form1 Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click 'D:\DL-IMA-PUSH.log Dim targetFile As String = "DL-IMA-PUSH.csv" Dim LogFile As String = txtTargetFolder.Text + "\" + targetFile File.Delete(LogFile) File.Copy("D:\DL-IMA-PUSH.log", LogFile) Dim fi As FileInfo = New FileInfo(LogFile) Dim sFolderPath As String = fi.DirectoryName() '+ "\" Dim sConnString As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & sFolderPath & ";Extended Properties='Text;HDR=NO;'" Dim sql As String = "SELECT DataOra, Tipo, Desc FROM [" & targetFile & "]" sql = sql + " WHERE CDate(Left(DataOra, 10)) >= #05/01/2014#" Using connJET As OleDbConnection = New OleDbConnection(sConnString) Try connJET.Open() Dim aCommand As OleDbCommand = New OleDbCommand(sql, connJET) Using aReader As OleDbDataReader = aCommand.ExecuteReader() While aReader.Read() ListBox1.Items.Add(aReader.GetString(0) + " " + aReader.GetString(1) + " " + aReader.GetString(2)) End While End Using Catch ex As Exception MessageBox.Show(ex.Message) End Try End Using End Sub End Class
Ho aggiunto alcune righe a quelle che hai postato tu, cambiando la data e funziona. Avevo anche provato ad impostare il primo campo DataOra come tipo DateTime, ma mi restituiva errore. Come vedi, la condizione WHERE ti permette di caricare solo le righe che ti interessano. Poi ci si può lavorare su...
