cesco_fran (Normal User)
Rookie
Messaggi: 25
Iscritto: 26/12/2007
|
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.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
balto (Ex-Member)
Rookie
Messaggi: 44
Iscritto: 03/11/2009
|
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# |
string Line; List <string> Words = new List <string>(); //Sostituisci il percorso esatto string FileName = @"C:\Testo.txt"; //Apri il file di testo StreamReader strReader = File.OpenText(FileName); //La variabile Line diventa, con un ciclo, ogni riga di testo while ((Line = strReader.ReadLine()) != null) { //Per ogni riga di testo, la dividi per il carattere "spazio" //E aggiungi ogni parola ad una lista, che conterrà tutte le parole Words. AddRange(Line. Split(new char[] { ' ' }). ToList<string>());} //Inizializzi il nuovo array, modifica il numero delle stringhe a tuo piacimento //E inserisci tutti i valori nell'array altrimenti non riceverai alcun risultato string[] strArray = new string[10 ]; //Inizi un ciclo in un ciclo(uno che si ripete per tutti gli elementi dell'array //E uno che si ripete per tutte le parole della lista) foreach (string Word in Words) { for (int i = 0; i < strArray.Lenght; i++) { if (Word.Equals(strArray[i])) MessageBox.Show("La parola " + Word + " è presente sia nel file di testo che nell'array."); } }
|
Il codice è stato scritto in C#. Se hai problemi a comprenderlo dimmelo.
|
|
cesco_fran (Normal User)
Rookie
Messaggi: 25
Iscritto: 26/12/2007
|
Ops
scusate!
Il linguaggio è Visual Basic (.net).
|
|
()
Newbie
Messaggi:
Iscritto:
|
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
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
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# |
string Line; List <string> Words = new List <string>(); //Sostituisci il percorso esatto string FileName = @"C:\Testo.txt"; //Apri il file di testo StreamReader strReader = File.OpenText(FileName); //La variabile Line diventa, con un ciclo, ogni riga di testo while ((Line = strReader.ReadLine()) != null) { //Per ogni riga di testo, la dividi per il carattere "spazio" //E aggiungi ogni parola ad una lista, che conterrà tutte le parole Words. AddRange(Line. Split(new char[] { ' ' }). ToList<string>());} //Inizializzi il nuovo array, modifica il numero delle stringhe a tuo piacimento //E inserisci tutti i valori nell'array altrimenti non riceverai alcun risultato string[] strArray = new string[10 ]; //Inizi un ciclo in un ciclo(uno che si ripete per tutti gli elementi dell'array //E uno che si ripete per tutte le parole della lista) foreach (string Word in Words) { for (int i = 0; i < strArray.Lenght; i++) { if (Word.Equals(strArray[i])) MessageBox.Show("La parola " + Word + " è presente sia nel file di testo che nell'array."); } }
|
Il codice è stato scritto in C#. Se hai problemi a comprenderlo dimmelo. |
|
|
balto (Ex-Member)
Rookie
Messaggi: 44
Iscritto: 03/11/2009
|
Codice sorgente - presumibilmente VB.NET |
Dim Line As String Dim Words As New List(Of String) 'Sostituisci il percorso esatto Dim FileName As String = "C:\Users\Valerio\Desktop\Testo.txt" Dim strReader As StreamReader 'Apri il file di testo strReader = File. OpenText(FileName ) 'La variabile Line diventa la prima riga di testo Line = strReader.ReadLine() 'E con un ciclo diventa ogni riga 'Per ogni riga, divido la variabile Line per il carattere "spazio" 'E aggiungo ogni parola ad una lista, che conterrà quindi tutte le parole Do While (Not Line Is Nothing) Words.AddRange(Line.Split(New Char() {" "}).ToList()) Line = strReader.ReadLine() Loop strReader.Close() 'Inizializzi un array (modifica la lunghezza a tuo piacimento 'E inserisci tutti i valori nell'array altrimenti non avrai alcun risultato Dim strArray(10) As String 'Inizi un ciclo in un ciclo(uno che si ripete per tutti gli elementi dell'array 'E uno che si ripete per tutte le parole della lista) For Each Word As String In Words For i As Integer = 0 To strArray.Length - 1 Step 1 If Word.Equals(strArray(i)) Then MsgBox("La parola " & Word & " è presente sia nel file di testo che nell'array.") End If Next Next
|
Ultima modifica effettuata da balto il 18/01/2010 alle 20:11 |
|
cesco_fran (Normal User)
Rookie
Messaggi: 25
Iscritto: 26/12/2007
|
Grazie a tutti per la disponibilità, proverò a fare qualche prova per vedere se riesco ad aggiungerlo a quello che avevo pensato.
|
|