Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Confronto File in C#

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Confronto File in C#

Postdi Paolo87 » 13/06/12 13:54

Ragazzi buon pomeriggio,

ho un piccolo problema in C#,ora vengo subito al sodo :

1 - confrontare due file con estensione .txt
2 - scrivere un terzo file,sempre con estensione .txt,contenente le righe differenti dei due files

Ovviamente ringrazio tutti per il vostro aiuto :P
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Sponsor
 

Re: Confronto File in C#

Postdi mikedepetris » 14/06/12 07:57

Che algoritmo vuoi utilizzare? Vuoi partire dalla riga del primo file e scorrere il secondo fino a che non la trovi? Come mai non vuoi usare uno dei tanti programmini free? C'e' anche il comando DOS. Programmi piu' evoluti considerano piu' righe per trovare le eventuali corrispondenze.

Microsoft fornisce un esempio grezzo per i file binari:
http://support.microsoft.com/kb/320348

cercando un po' si trova gia' fatto quello che chiedi, qui ad esempio ci sono valide considerazioni perche' si vuole usare linq:
http://stackoverflow.com/questions/4499 ... using-linq
mikedepetris
Utente Senior
 
Post: 121
Iscritto il: 24/08/07 09:03
Località: Trieste

Re: Confronto File in C#

Postdi Paolo87 » 14/06/12 08:57

Ciao mikedepetris,in realtà ho fatto un piccolo progetto formato da 4 files ".bat",dove uno è il "programma principale" se vogliamo che tramite un semplice scelta ti fa accedere ad uno dei tre bat.
Uno di questi aveva il comando
Codice: Seleziona tutto
fc
che serve in dos proprio per il confronto di due files,fin qui tutto facile.
Il problema è nato dal fatto che il file1 è fatto da 1200 righe e potrebbe crescere ancora,così l'ho travasato su di un db Access e tramite una Macro,mi importo il file2,e mi faccio uscire le differenze fra i due file in un terzo file.
La cosa scomoda è il fatto di aprire il File Access e lanciare la Macro che ti fa il confronto,così speravo che in C# ci fosse un comando di confronto file più potente,ma ho visto che non è così;adesso sto cercando un altra strada,ovvero quella di travasare direttamente il file2,tramite C# nella tabella di Access e dopo,sempre da C#,fargli eseguire la query di confronto e scrivere il terzo file.
Ma pure travasare il file2 direttamente nella tabella di Access da C# non è cosa facile,anche perchè non trovo un esempio fatto proprio in C#.

Cmq le mie ricerche continuano se trovo una soluzione la posto di sicuro ;)
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Re: Confronto File in C#

Postdi Paolo87 » 14/06/12 09:49

Allora ragazzuoli ho trovato una soluzione facile facile e molto veloce da implementare per inserire un file con estenzione ".txt" dentro una tabella di Access.
In pratica,mi leggo il file che desidero riga per riga e nel ciclo in cui estraggo la singola riga del file la inserisco direttamente nella tabella Access.

Codice =>

Codice: Seleziona tutto
using System;
using System.Data;           
using System.Data.OleDb;     
using System.Collections.Generic;
using System.Text;

namespace access_insert_file
{
   class Program
   {
      public static void Main(string[] args)
      {
         int counter = 0;
            string line;
           System.IO.StreamReader file =
           new System.IO.StreamReader(@"C:\WriteText.txt");
           OleDbConnection thisConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db2.mdb");
           thisConnection.Open();
           while((line = file.ReadLine()) != null)
            {
            System.Console.WriteLine (line);
            OleDbCommand thisCommand = thisConnection.CreateCommand();
            thisCommand.CommandText = "Insert into T1(F1) values(('" + line + "'))";
            OleDbDataReader thisReader = thisCommand.ExecuteReader();
            thisReader.Close();
            counter++;
            }
            thisConnection.Close();
            file.Close();
            System.Console.WriteLine("");
            System.Console.WriteLine("There were {0} lines.", counter);
            System.Console.ReadLine();
         Console.Write("Press any key to continue . . . ");
         Console.ReadKey(true);
      }
   }
}


Se a qualcumo serve vi ho messo il codice del programmino 8)
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma


Torna a Programmazione


Topic correlati a "Confronto File in C#":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite