Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - aiuto ricerca in un file txt
Forum - C# / VB.NET - aiuto ricerca in un file txt

Avatar
DavidP21 (Normal User)
Newbie


Messaggi: 2
Iscritto: 09/05/2024

Segnala al moderatore
Postato alle 19:05
Giovedì, 09/05/2024
Ho creato un piccolo programmino per il lavoro, ove possiamo mettere all'interno dati relativi ai clienti che accedono all'nterno del negozio e fin qui tutto ok. In una seconda userform deve effettuare la ricerca all'interno del file txt nel quale aveva incamerato tutti i dati.
la ricerca puo essere effettuata per nome, cognome, cognome e nome o per data.
Fino a che il programma non era ancora aggiornato per la ricerca in data, le ricerche funzionavano perfettamente, adesso che ho implementato una piccola parte di codice per la ricerca per data sto andando in crisi.
la parte di codice  è la seguente:

Codice sorgente - presumibilmente VB.NET

  1. Imports System.IO
  2.  
  3. Public Class Form2
  4.     Dim ricerca As Boolean = False
  5.     Dim datamin As Date
  6.     Dim datamax As Date
  7.  
  8.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  9.         ricerca = False
  10.         Dim nome As String = ""
  11.         Dim cognome As String = ""
  12.  
  13.         If RadioButton1.Checked Then
  14.             nome = InputBox("Inserisci il NOME da ricercare", "Ricerca per nome")
  15.         ElseIf RadioButton2.Checked Then
  16.             cognome = InputBox("Inserisci il COGNOME da ricercare", "Ricerca per cognome")
  17.         ElseIf RadioButton3.Checked Then
  18.             cognome = InputBox("Inserisci il COGNOME da ricercare", "Ricerca per cognome")
  19.             nome = InputBox("Inserisci il NOME da ricercare", "Ricerca per nome")
  20.         Else
  21.             If Not Date.TryParse(InputBox("Inserisci la data di inizio (yyyy-MM-dd)", "Ricerca per data"), datamin) Then
  22.                 MsgBox("Formato data non valido per la data di inizio.", MsgBoxStyle.Exclamation, "Errore")
  23.                 Exit Sub
  24.             End If
  25.  
  26.             If Not Date.TryParse(InputBox("Inserisci la data di fine (yyyy-MM-dd)", "Ricerca per data"), datamax) Then
  27.                 MsgBox("Formato data non valido per la data di fine.", MsgBoxStyle.Exclamation, "Errore")
  28.                 Exit Sub
  29.             End If
  30.         End If
  31.  
  32.         Dim dataGridViewColumnsCount As Integer = 13 ' Numero di colonne della DataGridView
  33.  
  34.         DataGridView1.Rows.Clear() ' Cancella le righe esistenti prima di aggiungere nuove righe
  35.  
  36.         Try
  37.             Using sr As StreamReader = File.OpenText("registro_accessi.txt")
  38.                 While sr.Peek() <> -1
  39.                     Dim riga As String = sr.ReadLine()
  40.                     Dim campi() As String = riga.Split("|")
  41.  
  42.                     Dim dataCampo1 As Date
  43.                     If Date.TryParse(campi(1), dataCampo1) AndAlso
  44.                     campi.Length >= dataGridViewColumnsCount Then
  45.  
  46.                         If ((String.IsNullOrEmpty(nome) OrElse campi(4).ToUpper() = nome.ToUpper()) AndAlso
  47.                         (String.IsNullOrEmpty(cognome) OrElse campi(3).ToUpper() = cognome.ToUpper())) AndAlso
  48.                         (dataCampo1 >= datamin AndAlso dataCampo1 <= datamax) Then
  49.                             ricerca = True
  50.                             DataGridView1.Rows.Add(campi.Take(dataGridViewColumnsCount).ToArray())
  51.                         End If
  52.                     End If
  53.                 End While
  54.             End Using
  55.  
  56.             If Not ricerca Then
  57.                 MsgBox("La ricerca non ha prodotto risultati.", MsgBoxStyle.Information, "Nessun elemento trovato")
  58.             End If
  59.         Catch ex As Exception
  60.             MsgBox("Si è verificato un errore durante la lettura del file: " & ex.Message, MsgBoxStyle.Critical, "Errore di lettura del file")
  61.         End Try
  62.     End Sub
  63.  
  64.     Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  65.         RadioButton2.Checked = True
  66.     End Sub
  67. End Class



Adesso se effettuo la ricerca per data funziona, per gli altri casi mi riporta sempre all'errore "la ricerca non ha prodotto risultati"
cosa può essere?

note: il file txt è cosi strutturato
ID|DATA|ORA|COGNOME|NOME|LUOGO NASCITA|DATA NASCITA|LUOGO RESIDENZA|INDIRIZZO|TELEFONO MOBILE|MOTIVO INGRESSO|OPERATORE|NOTE

Grazie anticipate :k:

Ultima modifica effettuata da DavidP21 il 09/05/2024 alle 19:15
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1388
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 21:02
Giovedì, 09/05/2024
Testo quotato

Postato originariamente da DavidP21:
Adesso se effettuo la ricerca per data funziona, per gli altri casi mi riporta sempre all'errore "la ricerca non ha prodotto risultati"
cosa può essere?


Metti un BreakPoint alla riga 13, lancia il programma, clicca su Button1
Con il debug avanza riga riga (F11), controlla quali porzioni di codice vengono eseguite e quali sono i valori nelle variabili.
In un attimo capisci cosa non funziona più e perché.

Ultima modifica effettuata da Carlo il 10/05/2024 alle 8:02


in programmazione tutto è permesso
PM Quote