Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    VB 2010 "TextFieldParser"

    Chiedo gentilmente un vostro aiuto, ho creato un form dove devo effettuare una ricerca contenuta nel file di testo e la voglio visualizzare dentro una casella textbox, nel form ho creato una combobox con dentro i nomi delle persone e due caselle DateTimePiker, in modo che quando seleziono il nome, data di ingresso, data di uscita di un determinato giorno, vorrei che comparissero dentro la textbox. Es. 19/12/2008 entrato pinco pallino macchina rolls royce etc..
    posto qui il codice:

    Private Sub Ricerca_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ricerca.Click

    Using MyReader As New _
    Microsoft.VisualBasic.FileIO.TextFieldParser("C:\A ccessi\ArchivioGenerale\ArchivioEntrateUscite.txt" )
    MyReader.TextFieldType = FileIO.FieldType.Delimited
    MyReader.SetDelimiters(",")
    Dim currentRow As String()
    While Not MyReader.EndOfData
    Try
    currentRow = MyReader.ReadFields()

    If currentRow(0) = ComboBox2.Text AndAlso currentRow(1) >= DateTimePicker1.Value.Date AndAlso currentRow(1) <= DateTimePicker2.Value.Date Then
    TextBox1.Text = currentRow(0)

    Exit While
    End If

    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineExceptio n
    MsgBox("Line " & ex.Message & "is not valid and will be skipped.")
    End Try
    End While
    End Using
    End Sub

    grazie

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    maritelex ... è da un po' che scrivi in questo forum ... vuoi cominciare ad usare i tag CODE per postare il codice e ad indentarlo un po' meglio per farci capire qualcosa?

    Se non lo fai, non avrai molte risposte perché pochi impiegheranno il tempo per individuare e sistemare il codice che dovresti sistemare tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Oregon io provo a mettere il codice ma quando inoltro vedo che non me lo riconsce, mi puoi aiutare? in base a quello che ho fatto?

  5. #5
    codice:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click          
    Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Accessi\ArchivioGenerale\ArchivioEntrateUscite.txt")
    MyReader.TextFieldType = FileIO.FieldType.Delimited 
    MyReader.SetDelimiters(",")             
    Dim currentRow As String()             
    While Not MyReader.EndOfData                 
    Try                     
    currentRow = MyReader.ReadFields()                     
    Dim data = DateTime.ParseExact(currentRow(0), "dd-MM-yyyy", _ System.Globalization.CultureInfo.InvariantCulture) data.Date (>= DateTimePicker1.Value.Date 'AndAlso data.Date <= DateTimePicker2.Value.Date)                     
    If currentRow(0) = ComboBox2.Text AndAlso currentRow(1) >= DateTimePicker1.Value.Date AndAlso currentRow(1) <= DateTimePicker2.Value.Date Then
    TextBox1.Text = currentRow(4)                         
    Exit While                     
    End If                 
    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException                     
    MsgBox("Line " & ex.Message & "is not valid and will be skipped.")                 
    End Try                 
    End While         
    End Using     
    End Sub
    Riferimento al primo messaggio, per Gibra non Capisco Quindi???? quello che chiedo gentilmente non deve essere di far sentire le persone di basso livello, anche se sono alle prime armi, e faccio di tutto per imparare chiedo umilmente un aiuto, se fossi bravo, non sarei in questo sito, scusate
    quello che ho scritto e una forma un po oggettiva...

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Maritelex
    Riferimento al primo messaggio, per Gibra non Capisco Quindi???? quello che chiedo gentilmente non deve essere di far sentire le persone di basso livello, anche se sono alle prime armi, e faccio di tutto per imparare chiedo umilmente un aiuto, se fossi bravo, non sarei in questo sito, scusate
    quello che ho scritto e una forma un po oggettiva...
    Devi semplicemente leggere il Regolamento.

    Posti un codice e NON, ripeto NON, indichi qual'è il tuo problema.
    Dobbiamo scoprircelo da soli?

    Non è così che funziona un forum tecnico.

    Non è questione di essere bravi o no, non c'entra il livello basso o alto.

    Basta solo seguire le indicazioni del Regolamento .

    Come ricorda oregon:
    maritelex ... è da un po' che scrivi in questo forum ...
    sono cose dovresti sapere da un po'.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Riferimento al primo messaggio, per Gibra non Capisco Quindi???? quello che chiedo gentilmente non deve essere di far sentire le persone di basso livello, anche se sono alle prime armi, e faccio di tutto per imparare chiedo umilmente un aiuto, se fossi bravo, non sarei in questo sito, scusate
    quello che ho scritto e una forma un po oggettiva...
    Ma cosa c'entra il basso livello e l'alto livello???
    Chi ha problemi di livello non ti risponde proprio.

    Se ti si dice di essere più chiaro è proprio perché ti si vuole dare una mano.

    Perché non fai una domanda diretta?

    Qual'è il problema del codice che hai proposto? (adesso con i tag corretti, finalmente) ...
    Se rileggi il primo post, fai una descrizione di quello che hai fatto ma non c'è la domanda che, invece, deve essere precisa e chiara.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Scusate se sono stato scorbutico siccome devo convertire una stringa in formato testo da file esterno in formato date, il compilatore non riesce a convertirlo utilizzando ParseExact per controllare la date nell'array CurrentRow(0) potete suggerirmi se ci sono altri metodi o meglio ancora la sintassi da utilizzare?
    Ps il blocco while lo utilizzo per legger tutto il file e gestisco le eccezioni con try catch.
    Vi fornisco il codice che sto utilizzando per eventuali controlli.

    codice:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Accessi\ArchivioGenerale\ArchivioEntrateUscite.txt")
                MyReader.TextFieldType = FileIO.FieldType.Delimited
                MyReader.SetDelimiters(",")
                Dim currentRow As String()
                While Not MyReader.EndOfData
                    Try
                        currentRow = MyReader.ReadFields()
                        Dim data = DateTime.ParseExact(currentRow(0), "dd/MM/yyyy HH.mm.ss", Globalization.CultureInfo.InvariantCulture)
                        If data.Date = currentRow(0) AndAlso currentRow(3) = ComboBox2.Text AndAlso data.Date >= DateTimePicker1.Value.Date AndAlso data.Date <= DateTimePicker2.Value.Date Then
                            TextBox1.Text = currentRow(3)
                        End If
                    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
                        MsgBox("Line " & ex.Message & "is not valid and will be skipped.")
                    End Try
                                End While
            End Using

  9. #9
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Se non sbaglio...penso dipenda dal formato della "data" in input e da quello che usi per il "ParseExact".
    Tu indichi "dd/MM/yyyy HH.mm.ss" quindi la stringa deve essere per forza nel formato, ad esempio, "01/01/2012 01.01.01". In caso contrario si genera un' eccezione che tra l' altro non gestisci...o meglio, nel try/Catch ne gestisci un' altro tipo...per quello si blocca, al posto di:
    codice:
    Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
    metti un generico:
    codice:
    Catch ex As Exception
                MsgBox("errore:" & ex.Message)
    così le becchi tutte...certe volte basta "leggere" il codice e l' errore restituito da VS per avere una minima "intuizione"....pensaci su, fatti una domanda e datti una risposta...alla "coso" della Rai che non ricordo il nome *
    Puoi partire dal discorso dei formati sopra o prendere determinati formati in input per convertirli in un' altro.
    Il codice sotto lo utilizzo per convertire il testo digitato in una textbox in un formato specifico. Nella textbox sono accettati i formati(maschera) indicati dopo "New String()", se nella textbox viene scritta la data e l'ora "01012012010101" o "01.01.2012.01.01.01" o "01abc01abc2012abc01abc01abc01" il risultato sarà "01/01/2012 1.01.01". altrimenti si genera l' eccezione.
    codice:
            Try
                Dim data_old As String = TextBox1.Text
                Dim formati_dateTime As String() = New String() {"ddMMyyyyHHmmss", "dd.MM.yyyy.HH.mm.ss", "ddabcMMabcyyyyabcHHabcmmabcss"}
                Dim data_new = DateTime.ParseExact(data_old, formati_dateTime, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)
                TextBox1.Text = CStr(data_new)
            Catch ex As System.Exception
                Console.WriteLine("errore: " & ex.Message)
            End Try


    * Gigi Marzullo!!!

  10. #10
    è davvero un rompicapo, grazie per essere stato cortese nel farmi capire, ho provato a cambiare come mi hai detto, ma non visualizza nulla nella textbox1 e si blocca tutto, metto il codice cosi come me lo hai fatto capire:

    codice:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
    Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Accessi_\ArchivioGenerale\ArchivioEntrateUscite.txt")
    MyReader.TextFieldType = FileIO.FieldType.Delimited
    MyReader.SetDelimiters(",")
    Dim currentRow As String()
    While Not MyReader.EndOfData
    currentRow = MyReader.ReadFields()
    Try 
    Dim data_old As String = TextBox1.Text
    Dim formati_dateTime As String() = New String() {"ddMMyyyyHHmmss", _ "dd.MM.yyyy.HH.mm.ss", "ddabcMMabcyyyyabcHHabcmmabcss"} 
    Dim data_new = DateTime.ParseExact(data_old, formati_dateTime, _ System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None) 
    TextBox1.Text = CStr(data_new)
    Catch ex As Exception 
    MsgBox("errore:" & ex.Message) 
    End Try  
    End While 
    End Using
    Ripeto il post iniziale, ho creato nel programma che sto sviluppando un form dove vorrei effettuare una ricerca contenuta nel file di testo e la voglio visualizzare dentro una casella textbox1, nel form ho creato una combobox2 con la quale selezionando il nome della persona e contemporaneamente selezionando le date sulle caselle DateTimePiker1 e 2, vorrei che comparissero dentro la textbox1.
    Es. 19/12/2008 20.40.33 entrato Pinco Pallino Macchina Ferrari etc..
    La domanda è:
    E' possibile poter fare la ricerca anche tramite un file di testo, dove dentro questo file sono memorizzate tutte le entrate e le uscite delle persone?
    se si come potrei svilupparla questa procedura, grazie
    e scusate la mia ignoranza, ma e grazie alle vostre risposte che riesco a seguire passo passo le procedure assieme al manuale.
    per Gibra e Oregon

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.