Entwickler-Ecke

Sonstiges (.NET) - 2 Dateien miteinander vergleichen


Böseskeksi - Di 14.06.11 08:38
Titel: 2 Dateien miteinander vergleichen
Halluuu,
ich hmöchte gerne 2 xls Dateien miteinander vergleichen. Erschwerend kommt hinzu, dass in der einen Xls Datei vieles drinsteht was ich nicht brauche. Es soll erst ab dem ";" gelesen werden.
Da ich ÜBERHAUPT keine Ahnung von C# habe bitte ich um Hilfe.


LG
Böseskeksi (Anfänger/In)
:)


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 14.06.2011 um 08:43


jaenicke - Di 14.06.11 09:53

Hallo und :welcome:

Wenn du einmal bei Google suchst, findest du bei MS auch schon was Fertiges als Beispiel...
Suche bei Google C# COMPARE FILES
--> http://support.microsoft.com/kb/320348/en-us
(und es gibt noch jede Menge mehr Ergebnisse)


Böseskeksi - Di 14.06.11 12:25

Erstmal danke für den Link :)
Nun klingt dass vllt blöd,aber ich komm damit trotzdem nicht weiter...:(
Ich brauche wirklich von anfangan Hilfe.
Wie müsste mein Code aussehen :S


jaenicke - Di 14.06.11 13:12

user profile iconBöseskeksi hat folgendes geschrieben Zum zitierten Posting springen:
Wie müsste mein Code aussehen :S
Sorry, aber der Code ist absolut komplett, den kannst du 1:1 kopieren. Du musst schon sagen was du nicht verstehst... :nixweiss:


Th69 - Di 14.06.11 13:19

Hallo jaenicke,

für Excel-Dateien (.xls) wird das aber nicht ausreichen...


jaenicke - Di 14.06.11 13:29

Die Frage ist ja, was als Ergebnis erwartet wird. Wenn es reicht zu wissen, ob die Dateien unterschiedlich sind, reicht das.

Wenn es darum geht was anders ist, wird es natürlich schwieriger. Davon stand da aber erst einmal nichts.


Böseskeksi - Di 14.06.11 13:40

Mein Fehler.
Unzwar wäre es ganz gut wenn der Vergleich bzw. die Unterschiede zwischen Tabelle A.xls und Tabelle B.xls, in einer neuen Tabelle C.xls oder txt geschrieben wird.
Und mit dem Code wird ja trotzdem nicht ab ";" gelesen sondern die komplette Datei :(


Böseskeksi - Do 16.06.11 09:52

Ich brauche dringend die Hilfe :(

Eine andere Programmiersprache wäre auch ok. Dass kann man alles bestimmt auch mit Excel machen oder?


Delete - Do 16.06.11 09:57

user profile iconBöseskeksi hat folgendes geschrieben Zum zitierten Posting springen:
die Unterschiede zwischen Tabelle A.xls und Tabelle B.xls, in einer neuen Tabelle C.xls

Würde sich dazu nicht ein Makro in Excel anbieten?


Böseskeksi - Do 16.06.11 11:12

ja, aber dann hätte ich das problem mit dem lesen ab den ";" nicht gelöst...oder?!


jaenicke - Do 16.06.11 11:58

Wo steht denn das Semikolon? Ich hatte zuerst gedacht du meinst CSV-Dateien. Du kannst jedenfalls auch in Excel Stringfunktionen nutzen, wenn du mit den Werten in den Zellen arbeitest.


Böseskeksi - Do 16.06.11 12:45

Das Problem ist ja, dass das ";" in der selben spalte ist, deren Text ich benötige.

So in etwa:
|Blablablaa;den Teil hier brauche ich|

Tatsächlich ist einer der Dateien eine CSV-Datei aber das sollte jetzt weniger das Problem darstellen.


jaenicke - Do 16.06.11 13:41

Lang ists her... aber ich würde sagen du brauchst InStr und Mid in VBA um den zweiten Teil des Inhalts dieses Strings zu bekommen...


Böseskeksi - Do 16.06.11 13:47

Von VBA hab ich sogar noch weniger Ahnung als von C#....:(


Böseskeksi - Mi 29.06.11 09:19

Habe etwas zsm gebastelt...ich weiß dass das ein kuddelmuddel ist...


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;


class MainClass
{
    public static void Main(string[] args)

    {
        FileStream fin;
        string s;

        try
        {
            fin = new FileStream(@"C:....txt", FileMode.Open);
        }
        catch (FileNotFoundException exc)
        {
            Console.WriteLine(exc.Message + "Cannot open file.");
            return;
        }

        StreamReader fstr_in = new StreamReader(fin);

        // lesen der Zeilen
        while ((s = fstr_in.ReadLine()) != null)
        {
            Console.WriteLine(s);
        }
        static string CreateHash(string valueToHash)
        {
            MD5 md5 = new MD5CryptoServiceProvider(); 
            byte[]textBytes = Encoding.Default.GetBytes(input());
            byte[] result = md5.ComputeHash(textBytes);
            return BitConverter.ToString(result);
        }       

        Console.ReadKey();
    }
}


Das Programm funktioniert leider immer noch nicht, weil der Hash net stimmt. Was muss ich an meinem Code verbessern?


Habe im übrigen das Problem mit dem ":" gelöst. Jetzt sinds nur noch 2 txt Dateien die verglichen werden müssen.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt