C# , ein grosses C mit kleine Zaun, darauf will ich jetzt vertraun

Hi MCoder,

danke für die Beantwortung einer Frage, welche mich bis jetzt irgendwie verunsichert hatte und weshalb ich mir schon Notlösungen erdacht habe.
Denn ich habe wirklich nur Beispiele gefunden, in denen in einem String auf Einzelzeichen oder Zeichengruppe zugegriffen wurde, aber nirgendwo war es mal das erste Zeichen, ich hoffe, nun wirst Du auch mein wiederholtes Nachfragen besser verstehen.
Noch eine Frage hierzu, hast Du es schonmal selbst praktiziert, weil Deine Antwort so sicher klingt.

Viele Grüsse

Duda
 
Hallo,

ja, das habe ich schon selber angewendet.

Abgesehen davon kannst du solche einfachen Sachen auch selbst schnell ausprobieren. Einfach im Debugger einen Breakpoint setzen und schauen, welches Ergebnis eine bestimmte Operation liefert.

Gruß
MCoder
 
Hallo Endurion,
ich komme noch mal auf Deine Code-Zeilen zurück und noch mal vielen Dank dafür.
Habe mich ja dazu schon geäußert. Mir ist da schon soweit klar geworden, daß "Großstr" nicht nur in "Int32" gewandelt wurde, sondern diese Werte als Zahlen dem Array "meineWerte[ i ]" zugewiesen wurde. Da "Großstr.Length" 16 Zeichen enthielt, somit könnte ich mit den Zahlen von 0 bis 15 auf die Werte zugreifen. Damit meine ich, wenn ich mit den Werten rechnen möchte, beispielsweise meineWerte[ 0 ] hat Wert 4 und meineWerte[ 2 ] hat den Wert 2, meineWerte[15] hat den Wert 10,
dann brauche ich nur wie folgt zu verfahren:

int Summe = meineWerte[ 1 ] + meineWerte[ 3 ];

Hierbei spielt es wohl keine Rolle, wenn es 8 oder 10 "meineWerte[ ]" sind, welche so addiert werden.
Naja, den Name etwas kürzen (mW[ ]), sonst werden die Zeile zu lang.
Ich hoffe, daß Du dem, was hier beschrieben habe, zustimmen kannst.
Doch schnell noch eine Frage zur Konvertierung des Array zum String, worin wieder die Hexzeichen sind.
Geht dies auch in nur drei Zeilen? Oder muß ich es für jeden "meineWert[ ]" einzeln tun?

@ Community, noch C# und etwas Gereimtes.

Ein Member hatte kritisiert,
weil es nicht leicht zum Thema führt, // leider wurde die I-Net-Verbindung unterbrochen
bissl schwer zum Lesen sei es auch, // hier gehts weiter
doch Reimen ist ein alter Brauch,
moderner führt es zum Sprechgesang,
doch Ihr Member seid nicht bang,
damit fang ich nicht auch noch an,
der Kritiker hat Fragen nicht entdeckt,
weil sie unauffällig im Text versteckt,
Fragen kommen erst zu letzt,
darüber war er ganz entsetzt,
deshalb sei allen hier Kund getan,
mit Fragen fangen weiter vorne an,
ich versuche sie auch farbig zu gestalten,
doch die Buchstaben bleiben noch die Alten.

@ Endurion, nachdem ich in das Eingabefeld mit Namen "textBox1" mit 16 Zeichen gefüllt habe
und nun mit "OK" ein Ereignis auslöse, wonach einige Code-Zeichen abgearbeitet werden sollen,
welche mir den Text aus der textBox1 in meinen "Großstr" bringen sollen. Wie gehe ich da vor?
Sollte ich da Großstr als Leerstring einrichten und mit Concat TextBox1 anhängen oder mit Append oder Insert arbeiten, was ja in dem Fall mit Hilfe von StrinBuilder möglich wäre.
Oder würde es auch wie in den Code-Zeilen gehen?
Wenn ich nun auf die Werte in"meineWerte[ i ]"zugreifen möchte, dann bräuchte ich doch nur die entsprechende Zahl (0 bis 15) in den Operator [ ] eingeben.
damit man sieht was ich meine, noch ein paar Code-Zeilen
C#:
// textBox1.Text, diesen Text in Gstr überführen 
string textBox1 = "422748C08700843A";
// nun wird OK geklickt
// nun haben wir folgende Zeile
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
string Gstr = textBox1.Text;
int meineWerte = new[Gstr.Length];
for (int i = 0; i < Gstr.Length; ++i );
{
mW[ i ] = Convert.ToInt32(Gstr.Substring(i, 1), 16);
// hier nun der Zugriff auf die Werte von mW[ ]
// der berechnete Wert von Summe sollte 16 sein
int Summe = mW[0] + mW[2] + mW[15];
}
}

Was meinst Du hierzu?
Wenn es nicht so geht, dann mit StringBuilder/Append etc..

Für Antworten, schonmal danke im Voraus.

Viele Grüsse

Duda
 
Zuletzt bearbeitet:
Hi MCoder,

danke für Dein Feedback. Ja natürlich werde ich, wenn ich mit der Theorie fertig bin auch auch mal dieses oder jenes, wo ich unsicher bin, in der Console eingeben und debuggen bzw, mal als Progrämmchen durchlaufen lassen. Doch damit beschäftige ich mich dann erst zu einem späterem Zeitpunkt. Aber trotzdem noch eine Frage hierzu.
Was passiert, wenn ich den vom Designer erstellten Programmcode nur
schrittweise erweitere und gelegentlich mal ausprobiere, ob das Programm bis zum momentan letzten Schritt durchläuft. Damit meine ich, könnte ich den zuerst erstellten Code mit dem neu hinzugefügtem Code
wann immer ich will durch den Debugger schicken und wenn fehlerfrei auch compilieren, auch wenn das Programm noch nicht komplett ist?

So das soll es erstmal wieder sein.

Duda
 
Hi

natürlich muss das Programm nicht komplett fertig ein, um die schon gemachten Teile auszuprobieren.
Was nur da sein muss sind alle (im Code schon verwendeten) Variablen etc.
 
Hallo,

sofern dein Programmcode fehlerfrei kompiliert und ergo eine ausführbare EXE erstellt wird, kannst du es natürlich jederzeit laufen lassen. Es spielt keine Rolle, ob es schon komplett ist.

Zu deinem Post davor:
Ich nehme an, du willst die Eingabe nur verarbeiten, wenn alle Zeichen komplett eingegeben wurden? In dem Falle ist das KeyPress-Event eher ungeeignet, weil es bei jedem eingegeben Zeichen auslöst. Besser wäre z.B. das Validated-Event, das erst auslöst, wenn das Textfeld den Fokus verliert, also wenn etwa OK geklickt wird.

Gruß
MCoder
 
Hi sheel,

ich sage nur mal schnell danke,
ich finde es wirklich nett von Dir,
daß Du zu einer Antwort auch immer auf etwas Wichtiges hinweist.
Ich werde also darauf achten, daß immer alle Variablen für den entsprechenden/schon fertigen Programmabschnitt vorhanden sind.

Viele Grüsse

Duda
 
Hi MCoder,

auch bei Dir bedanke ich mich, für Deine Aufmerksamkeit, denn ich merke schon, daß Du auch wirklich Alles liest was ich schreiben. Das mit dem Ereignis ist nicht vorsätzlich mir gemacht, wie Du ja an mein OK erkennen kannst. Habe nur mal auf die Schnelle ein Ereignis abgeschrieben und nicht daran gedacht, daß es ja ein KeyPress_Click war. Ich freue mich über Deinenberechtigten Hinweis. Ich habe natürlich vor da zwei Dialog-Buttons wie CANCEL und OK einzusetzen. Das CANCEL in Verbindung mit Löschen und den Focus neu setzen, weil ich einen Schreibfehler entdeckt habe und das OK, wenn die Eingabe fehlerfrei ist.
So das auch nur mal kurz, bis bald.

Viele Grüsse

Duda
 
Hallo Endurion,
habe mich einige Tage mit anderen Dingen beschäftig, damit meine ich, habe den PC und das Internet mal ruhen lassen. Doch nun möchte ich mich noch für Dein Feedback bedanken. Wenn Du schreibst:"ist wunderbar", dann nehme ich an, daß ich dank Deiner Hilfe (und der Hilfe anderer Mitglieder) auf dem richtigem Weg bin.
Habe mir das Buch "Visual C# 2005, Entwicklerbuch" zum Preis von 1,-- EUR zugelegt. Und bin davon begeistert, auch wenn es nicht das Aktuellste ist, so sind doch alle Grundlagen darin enthalten und ich habe was in der Hand, wo ich bei Bedarf drin rumblättern kann soviel ich will. Habe natürlich auch Ähnliches wie Deinen Beispiel-Code gefunden und noch vieles mehr, so daß ich eigentlich kaum noch Fragen stellen müßte, aber es sind doch hin und wieder so kleine Raffinessen, welche nur ein erfahrenes Mitglied drauf hat und was dann nicht in Büchern beschrieben ist.
Deshalb werde ich wohl nicht umhin kommen und doch noch dies oder das zu erfragen. Noch kurz zu dem Titel dieses Threads. Der Titel hätte auch heißen können: "Mit Visual C# 2010 da wird es sicher geht"!
Also bis bald mal wieder hier im Forum.

Viele Grüsse

Duda
 
Zurück