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

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

11

04.05.2014, 12:27

Ich habe den anderen Thread als zu schließen vermert, bleib doch bitte bei einem Thread und mach nicht immer einen neuen auf.

Bei deinen Fragen zu meinen Änderugnen an deinem Code: Ich habe diesen 1:1 übernommen, den Inhalt musst du dich selber Fragen, das habe ich auch nicht wirklich verstanden, was du da tust :).

Man merkt leider, dass es dir an Analyse-Wille mangelt, was ich sehr schade finde :(. Schau dir doch mal genau den Code an, der den Text in dein Label packt und der, der die richtige Ausgabe erzeugt. Was ist denn der Unterschied?

12

04.05.2014, 12:44

Ich habe den anderen Thread als zu schließen vermert, bleib doch bitte bei einem Thread und mach nicht immer einen neuen auf.

Bei deinen Fragen zu meinen Änderugnen an deinem Code: Ich habe diesen 1:1 übernommen, den Inhalt musst du dich selber Fragen, das habe ich auch nicht wirklich verstanden, was du da tust :).

Man merkt leider, dass es dir an Analyse-Wille mangelt, was ich sehr schade finde :(. Schau dir doch mal genau den Code an, der den Text in dein Label packt und der, der die richtige Ausgabe erzeugt. Was ist denn der Unterschied?

Meiner Meinung nach ist das Problem folgendes:
Hier geht es:

C#-Quelltext

1
2
3
4
5
6
7
8
 var readText = File.ReadAllText(path);
            var values = readText.ToCharArray();
            foreach (var letter in values)
            {
                var value = Convert.ToInt32(letter);
                var hexOutput = String.Format("{0:X}", value);
                Console.Write("{1} ", letter, hexOutput, readText);
            }


Hier geht es nicht(er wird einfach nicht konvertiert):

C#-Quelltext

1
2
3
4
5
6
7
8
9
var hex2 = File.ReadAllText(path1);
            values = hex2.ToCharArray();
            foreach (var letter in values)
            {
                var value = Convert.ToInt32(letter);
                var hexOutput = String.Format("{0:X}", value);
                form.lblText2.Text = hex2;
                form.Show();
            }


Ich vermute, dass es mit der Zeile:

C#-Quelltext

1
 Console.Write("{1} ", letter, hexOutput, readText);

zu tun hat weil erst dort die vollständige Konvertierung erfolgt: ("{1} ", letter, hexOutput, readText)
Diese Zeile gibt es aber bei der WinForm nicht also kann folglich die Konvertierung nicht zu Ende geführt werden.
Das Problem besteht einfach darin, dass ich nicht herausfinde wie ich die Zeile in die WinForm implementieren könnte.
Ich habe dies schon versucht:

C#-Quelltext

1
 form.lblText2.Text("{1} ", letter, hexOutput, readText);

Habe aber nur eine Fehlermeldung gekriegt:
Fehler 1 Der nicht aufrufbare Member "System.Windows.Forms.Control.Text" kann nicht wie eine Methode verwendet werden.
Fehler 2 "System.Windows.Forms.Label.Text" ist ein(e) "Eigenschaft", wird aber wie ein(e) "Methode" verwendet.
Wäre eine mögliche Lösung der Befehl console.SetOut?

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

13

04.05.2014, 13:12

Der wesentliche Unterschied ist, dass du bei der Konsole jedes konvertierte Zeichen einzeln ausgibst:

C#-Quelltext

1
2
var hexOutput = String.Format("{0:X}", value);
Console.Write("{1} ", letter, hexOutput, readText);


Wenn man dienen Code im zweiten Teil auf das wesentliche reduziert, sieht man denke ich das Problem:

C#-Quelltext

1
2
3
4
5
6
var hex2 = File.ReadAllText(path1);
foreach (var letter in values)
{
    form.lblText2.Text = hex2;
    form.Show();
}


Ich habe einfach allen Code entfernt, der nichts mit dem Übergeben des Textes an das Formular zu tun hat.

Geht dir ein Licht auf? ;)

EDIT: Das Problem was halt viele haben, man will alles auf einmal irgendwie zusammenstopfen - So funktioniert Software-Entwicklung aber nunmal nicht. Entwickle dir kleine funktionale Bausteine, aus deinen du deine Logik zusammensetzt, dann wird einem oftmals vieles klarer :).

Zitat

Wäre eine mögliche Lösung der Befehl console.SetOut?


Nein, definitiv nicht. Was du ja eher möchtest, ist, dass man deine Hexadezimalzeichen zwischenspeichert. Da ist SetOut ein ekliger Hack. Du solltest die konvertierten Daten einfach zwischenspeichern, und dann einmal auf der Konsole und einmal in den Fomular tun. Das ist wieder ein neuer Baustein, also eine Funktion! Vermutlich eine, die eine Datei bekommt, liest und die Hexadezimalzeichen als string zurückliefert.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

04.05.2014, 13:49

Lies ein Buch. Die Fragen sind zum Wegrennen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (04.05.2014, 16:37)


birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

15

04.05.2014, 15:35

Jo, du kannst außerdem die Eigenschaft Text nicht als Methode verwenden, was dir der Compiler ja schon mitgeteilt hat.
Versuch mal etwas über den Datentyp der Eigenschaft 'Text' herauszufinden und wie man dort Zeichen anhängen kann.

Werbeanzeige