Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Confrontare i valori di una Array con dei dati in un file txt
Forum - C# / VB.NET - Confrontare i valori di una Array con dei dati in un file txt

Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 22:58
Domenica, 17/01/2010
Salve a tutti, ben ritrovai.

Probabilmente sbaglio dove cercare, ma non trovo un esempio in cui viene spiegato la procedura che è in oggetto.

Io ho un file txt, in questo file ci sono alcune informazioni intervallate da uno spazio.

Io ho dei valori in un Array, devo confrontarli riga per riga con i dati presenti nel file txt.

Che procedura devo seguire?

Grazie a tutti. :)


Do you know WarDrome?

**we are of peace. always**
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5640
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:44
Domenica, 17/01/2010
Leggi i dati riga per riga e separali con la Split.

Poi confronta i dati ottenuti con quelli che hai ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
balto (Ex-Member)
Rookie


Messaggi: 44
Iscritto: 03/11/2009

Segnala al moderatore
Postato alle 0:12
Lunedì, 18/01/2010
Se possibile, specifica il linguaggio.
Comunque, vuoi confrontare ogni singolo elemento dell'array con tutti i dati del file di testo o semplicemente confrontare il primo elemento dell'array col primo dato del file, il secondo col secondo dato, e così via?

Penso tu intenda questo:

Codice sorgente - presumibilmente C#

  1. string Line;
  2. List<string> Words = new List<string>();
  3.  
  4. //Sostituisci il percorso esatto
  5. string FileName = @"C:\Testo.txt";
  6. //Apri il file di testo
  7. StreamReader strReader = File.OpenText(FileName);
  8.  
  9. //La variabile Line diventa, con un ciclo, ogni riga di testo
  10. while ((Line = strReader.ReadLine()) != null)
  11. {
  12. //Per ogni riga di testo, la dividi per il carattere "spazio"
  13. //E aggiungi ogni parola ad una lista, che conterrà tutte le parole
  14. Words.AddRange(Line.Split(new char[] { ' ' }).ToList<string>());
  15. }
  16.  
  17. //Inizializzi il nuovo array, modifica il numero delle stringhe a tuo piacimento
  18. //E inserisci tutti i valori nell'array altrimenti non riceverai alcun risultato
  19. string[] strArray = new string[10];
  20.  
  21. //Inizi un ciclo in un ciclo(uno che si ripete per tutti gli elementi dell'array
  22. //E uno che si ripete per tutte le parole della lista)
  23. foreach (string Word in Words)
  24. {
  25. for (int i = 0; i < strArray.Lenght; i++)
  26. {
  27. if (Word.Equals(strArray[i]))
  28. MessageBox.Show("La parola " + Word + " è presente sia nel file di testo che nell'array.");
  29. }
  30. }



Il codice è stato scritto in C#. Se hai problemi a comprenderlo dimmelo.


Importante è ricordare, ma più importante è dimenticare.
(Rainer Maria Rilke)
PM Quote
Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 7:27
Lunedì, 18/01/2010
Ops

scusate! :D

Il linguaggio è Visual Basic (.net).


Do you know WarDrome?

**we are of peace. always**
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:09
Lunedì, 18/01/2010
devi isolare ogni dato con la funzione split (che restituisce un array) e poi li confronti, non so se cè una funzione che lo fa...però con un ciclo non è difficile

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:38
Lunedì, 18/01/2010
Testo quotato

Postato originariamente da balto:

Se possibile, specifica il linguaggio.
Comunque, vuoi confrontare ogni singolo elemento dell'array con tutti i dati del file di testo o semplicemente confrontare il primo elemento dell'array col primo dato del file, il secondo col secondo dato, e così via?

Penso tu intenda questo:

Codice sorgente - presumibilmente C#

  1. string Line;
  2. List<string> Words = new List<string>();
  3.  
  4. //Sostituisci il percorso esatto
  5. string FileName = @"C:\Testo.txt";
  6. //Apri il file di testo
  7. StreamReader strReader = File.OpenText(FileName);
  8.  
  9. //La variabile Line diventa, con un ciclo, ogni riga di testo
  10. while ((Line = strReader.ReadLine()) != null)
  11. {
  12. //Per ogni riga di testo, la dividi per il carattere "spazio"
  13. //E aggiungi ogni parola ad una lista, che conterrà tutte le parole
  14. Words.AddRange(Line.Split(new char[] { ' ' }).ToList<string>());
  15. }
  16.  
  17. //Inizializzi il nuovo array, modifica il numero delle stringhe a tuo piacimento
  18. //E inserisci tutti i valori nell'array altrimenti non riceverai alcun risultato
  19. string[] strArray = new string[10];
  20.  
  21. //Inizi un ciclo in un ciclo(uno che si ripete per tutti gli elementi dell'array
  22. //E uno che si ripete per tutte le parole della lista)
  23. foreach (string Word in Words)
  24. {
  25. for (int i = 0; i < strArray.Lenght; i++)
  26. {
  27. if (Word.Equals(strArray[i]))
  28. MessageBox.Show("La parola " + Word + " è presente sia nel file di testo che nell'array.");
  29. }
  30. }



Il codice è stato scritto in C#. Se hai problemi a comprenderlo dimmelo.



:yup:


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
balto (Ex-Member)
Rookie


Messaggi: 44
Iscritto: 03/11/2009

Segnala al moderatore
Postato alle 20:08
Lunedì, 18/01/2010
Codice sorgente - presumibilmente VB.NET

  1. Dim Line As String
  2.         Dim Words As New List(Of String)
  3.  
  4.         'Sostituisci il percorso esatto
  5.         Dim FileName As String = "C:\Users\Valerio\Desktop\Testo.txt"
  6.         Dim strReader As StreamReader
  7.         'Apri il file di testo
  8.         strReader = File.OpenText(FileName)
  9.  
  10.         'La variabile Line diventa la prima riga di testo
  11.         Line = strReader.ReadLine()
  12.  
  13.         'E con un ciclo diventa ogni riga
  14.         'Per ogni riga, divido la variabile Line per il carattere "spazio"
  15.         'E aggiungo ogni parola ad una lista, che conterrà quindi tutte le parole
  16.         Do While (Not Line Is Nothing)
  17.             Words.AddRange(Line.Split(New Char() {" "}).ToList())
  18.             Line = strReader.ReadLine()
  19.         Loop
  20.  
  21.         strReader.Close()
  22.         'Inizializzi un array (modifica la lunghezza a tuo piacimento
  23.         'E inserisci tutti i valori nell'array altrimenti non avrai alcun risultato
  24.         Dim strArray(10) As String
  25.  
  26.  
  27.         'Inizi un ciclo in un ciclo(uno che si ripete per tutti gli elementi dell'array
  28.         'E uno che si ripete per tutte le parole della lista)
  29.         For Each Word As String In Words
  30.             For i As Integer = 0 To strArray.Length - 1 Step 1
  31.                 If Word.Equals(strArray(i)) Then
  32.                     MsgBox("La parola " & Word & " è presente sia nel file di testo che nell'array.")
  33.                 End If
  34.             Next
  35.         Next


Ultima modifica effettuata da balto il 18/01/2010 alle 20:11


Importante è ricordare, ma più importante è dimenticare.
(Rainer Maria Rilke)
PM Quote
Avatar
cesco_fran (Normal User)
Rookie


Messaggi: 25
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 19:56
Sabato, 23/01/2010
Grazie a tutti per la disponibilità, proverò a fare qualche prova per vedere se riesco ad aggiungerlo a quello che avevo pensato. :)


Do you know WarDrome?

**we are of peace. always**
PM Quote