Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

30.04.2014, 18:02

C# Verglichenen Text -> unterschiede anzeigen

Hallo
Ja ich hab heute viele Fragen...
Bei meinem kleinen Hexconverter hab ich jetz ein Vergleich eingebaut: Zuerst gibt man dn ersten Pfad der ersten Datei an und dann der zweiten. Dann wird der Text verglichen und ich will das er die Stellen die NICHT gleich sind unten hingeschrieben werden etwa in dem Format: (File1) 2F -> (File2) 3F
Wie mach ich das nun das er es anzeigt?
Hier mal der Code:

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
string path = Console.ReadLine();
                               
                // Open the file to read from.
                string readText = File.ReadAllText(path);
                char[] values = readText.ToCharArray();
                foreach (char letter in values)
                {
                    // Get the integral value of the character.
                    int value = Convert.ToInt32(letter);
                    // Convert the decimal value to a hexadecimal value in string form.
                    string hexOutput = String.Format("{0:X}", value);
                    Console.Write("{1} ", letter, hexOutput, readText);

                }

                string path1 = Console.ReadLine();

                // Open the file to read from.
                string readText1 = File.ReadAllText(path1);
                char[] values1 = readText1.ToCharArray();
                foreach (char letter1 in values1)
                {
                    // Get the integral value of the character.
                    int value1 = Convert.ToInt32(letter1);
                    // Convert the decimal value to a hexadecimal value in string form.
                    string hexOutput = String.Format("{0:X}", value1);
                    Console.Write("{1} ", letter1, hexOutput, readText1);
                }

                string MyString = path;
                Console.WriteLine(String.Compare(MyString, path1));
                if(MyString == path1)
                {
                    Console.WriteLine("Gleich!");
                }
                else
                {
                    Console.WriteLine("Nicht Gleich!");
                }                        
                    Console.ReadKey();


Und ist es eigentlich möglich in der Konsolenanwendung ein Fenster aufzurufen in dem man die Datei auwählen kann statt den Pfad einzugeben?
Und ist es auch möglich Text in die Konsolenanwendung zu kopieren? Diese Frage ist aber nicht so wichtig!

2

30.04.2014, 20:07

Ich nehme an, die Dateien sind gleich lang? Du gehst ganz einfach jedes einzelne Zeichen durch mit einer for-Schleife und prüfst, ob die Zeichen am Index i gleich sind.

Ungefähr so:

C#-Quelltext

1
2
3
4
5
6
7
for(int i = 0; i < texte1.Length(); i++)
{
     if(texte1[i] != texte2[i])
     {
            //ausgabe...
     }
}


Unter System.Windows.Forms gibt es eine Klasse die nennt sich OpenFileDialog. Diese kannst du instanziieren und anschließen mit OpenDialog() anzeigen lassen.

Mit Drag And Drop in einer Konsolenanwendung hab ich mich noch nicht beschäftigt.

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

3

30.04.2014, 20:19

Rechtsklick in der Konsole und Einfügen drücken.
Den Rest beantwortete mein Vorredner bereits.

Werbeanzeige