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

    vb 2010 " Effettuare una ricerca"

    tramite questo codice mi permette di effettuare una ricerca su un file di testo, e tramite la procedura "TextFieldParser" posso leggere tutti i campi:
    currentRow(0) legge la data e l'ora "29/12/2012 08.05.12";
    currentRow(1) legge "Entrata" o "Uscita";
    currentRow(2) legge "Cognome e Nome";
    currentRow(4) legge "Motivo" (es. pausa pranzo);
    currentRow(5) legge "FORD FIESTA AZ 504 BB" (ogni riferimento a qualcuno e puramente casuale)
    etc. etc.
    e li visualizzo nella "TextBox"
    Domanda:
    Quando faccio la ricerca mi legge solamente l'ultima stringa del file di testo, come posso far si che mi legga tutte le entrate ed uscite della persona selezionata ? mi potete aiutare in questo ? spero di essere stato chiaro.
    posto il codice:
    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 H.mm.ss", Globalization.CultureInfo.InvariantCulture)
    Dim Ricerca As String
    Ricerca = TextBox1.Text
    If currentRow(2) = ComboBox2.Text Then
    If data.Date >= DateTimePicker1.Value.Date AndAlso data.Date <= DateTimePicker2.Value.Date Then
    TextBox1.Text = currentRow(0) & " " & currentRow(1) & " " & currentRow(2) & " " & currentRow(3) & " " & currentRow(4) & vbCrLf
    End If
    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

  2. #2
    Ciao
    Con il codice che hai postato, non è vero che "legge solo l'ultima stringa" .... è vero che "ti restituisce solo l'lultima stringa".
    Non conosco nel dettaglio TextFieldParser ... ma rimane comunque il fatto che tu esegui un ciclo While, che legge riga per riga(presumo) fino all'ultima riga, ma assegni il risultato di una condizione sempre e solo alla textbox1, quindi ..... nella textbox1, troverai sempre e soltanto il risultato dell'ultima occorrenza.

  3. #3
    puoi aiutarmi ad impostare il codice giusto ?

  4. #4
    puoi aiutarmi ad impostare il codice giusto ?
    Non so il risultato che vuoi ottenere....
    Se ci sono più occorrenze, cosa vuoi fare?Vuoi visualizzarle tutte?Se si dove? In una lista od in un'altra TextBox? Vuoi solo essere avvisato? Oppure vuoi solo la prima o solo l'ultima? ....? Potrei fartene tante altre, ma tutto si riduce ad un semplice Exit While al momento giusto dopo aver tutto quello che devi fare.

    Facci sapere...
    Ciao

  5. #5
    No quello che vorrei fare è, se è possibile:
    1) selezionare il nome dalla casella "ComboBox,
    2) vedere tutti i suoi ingressi ed uscite "dal - al" nella textbox
    solo ed esclusivamente della persona selezionata
    grazie

  6. #6
    E il file come è strutturato? ... puoi mostrare un esempio pratico di come è fatto il file?

  7. #7
    Il file di testo è strutturato in questo modo e viene memorizzato nella sua cartella così:

    13/11/2011 08.00.00-ENTRATA-Pippo Tonio - Imp.-Lavoro-Macchina
    13/11/2011 13.00.00-USCITA-Pippo Tonio - Imp.-Pausa pranzo-Macchina
    13/11/2011 14.00.00-ENTRATA-Pippo Tonio - Imp.-Pausa pranzo-Macchina
    13/11/2011 15.30.13-USCITA-Pippo Tonio - Imp.-Lavoro-Macchina
    13/11/2011 15.50.00-ENTRATA-Pippo Tonio - Imp.-Lavoro-Macchina
    13/11/2011 16.30.00-USCITA-Pippo Tonio - Imp.-Fine Lavoro-Macchina

    ora la ricerca mi mostra nella textbox solo l'ultimo accesso cosi:

    24/01/2012 20.45.23-USCITA-GARIBALDI Anita - Imp.-Svc-PEDONE

    Io vorrei visualizzare nella textbox tutti gli ingressi e le uscite della persona effettuate nel giorno X.
    sapendo che:
    currentRow(0) legge la data e l'ora "13/11/2011 08.00.12";
    currentRow(1) legge "Entrata" o "Uscita";
    currentRow(2) legge "Cognome e Nome";
    currentRow(4) legge "Motivo" (es. pausa pranzo);
    currentRow(5) legge "Macchina"

    spero di essermi spiegato. Grazie per la tua attenzione

  8. #8
    Ciao
    Gli ho dato un occhio .....
    Devi semplicemente sostituire questa riga
    codice:
    TextBox1.Text = currentRow(0) & " " & currentRow(1) & " " & currentRow .......
    con questa
    codice:
    TextBox1.Text &= currentRow(0) & " " & currentRow(1) & " " & currentRow .......
    Facci sapere....
    Ciao

  9. #9
    Come posso ringraziarti, ho un'ultima domanda da farti perchè non basta copiare, dove posso trovare l'argomento "&" di congiunzione per poterlo studiare a fondo.
    Veramente grazie.

  10. #10
    mostro il codice corretto e funzionante:
    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 H.mm.ss", Globalization.CultureInfo.InvariantCulture)
    Dim Ricerca As String
    Ricerca = TextBox1.Text
    If currentRow(2) = ComboBox2.Text AndAlso data.Date >= DateTimePicker1.Value.Date AndAlso data.Date <= DateTimePicker2.Value.Date Then
    TextBox1.Text &= currentRow(0) & " " & currentRow(1) & " " & currentRow(2) & " " & currentRow(3) & " " & currentRow(4) & vbCrLf
    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
    grazie

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.