Hallo Forenmitglieder,
Ich habe eine Frage an euch und bräuchte dabei Hilfe:
Ich möchte mit C++ 2008 eine Formsanwendung, welche einen Text einliest,
umformt und ausgibt.
Das Bild zeigt wie weit ich schon bin :-)
Beispiel:
Eingabe = Hallo Welt, schön hier!
Ausgabe (SOLL) = ['H','a','l','l usw........] auch das Leerzeichen :-)
Soweit habe ich es geschafft, bin aber nun am Enden mit meinem Latein,
denke es ist aber kein großer Schritt mehr..oder?
***CODE****************
private void formatieren(object sender, EventArgs e)
{
string eingabe = textBox1.Text; //einlesen der Textbox1
= Eingabefenster
string eingabeform = eingabe.Substring(0, 1) + "','" +
eingabe.Substring(1, 1) + "','" + eingabe.Substring(2, 1) + "','" +
eingabe.Substring(3, 1) + "','" + eingabe.Substring(4, 1) + "',0}";
textBox2.Text = eingabeform; //Text von Textbox1
ausgeben, ohne Formatänderung
}
**********************
Würde gerne Texte bis zu, ich sag mal 80 Zeichen, so umformen.
Danke für jede Hilfe!!
Stringer schrieb:> C++ 2008
Das Gefriemel sieht er nach C# und Konsorten aus, irre ich mich?
> Soweit habe ich es geschafft, bin aber nun am Enden mit meinem Latein,> denke es ist aber kein großer Schritt mehr..oder?
Doch, ein ganz Großer. Programmieranfänger? Merkt man (nicht übel
nehmen). Du solltest ein gutes Buch zum Thema kaufen und durcharbeiten,
im konkreten Fall heißt das Zauberwort "Schleife".
Da mir gerade langweilig war eine Q&D-Lösung in reinem C,
Sicherheitsmaßnahmen gegen Bereichsüberschreitungen usw. musst du selber
einbauen. Scheint zu funktionieren, trotzdem ohne Gewähr und Garantie.
Stringer schrieb:> hm.. auf ein "Ohje.." wollte ich nicht hinaus :-(> Hab ich was falsch gemacht/angefangen? Bin ich auf einem falschen Weg> für mein Ergebnis?
Das Ohje bezog sich wahrscheinlich auf deine Kentnisse
> Würde gerne Texte bis zu, ich sag mal 80 Zeichen, so umformen.
Du kannst natürlich dieses SChema genau so weitertreiben (solltest dir
aber überlegen, wie du es hinkriegst, dass auch nur tatsächlich benutzte
Zeichen aus dem Eingabestring kommen, oder du kannst beobachten, dass
sich dein Ergebnis mit etwas umformatieren so zusammensetzt
string eingabeform = eingabe.Substring(0, 1) + "','" +
eingabe.Substring(1, 1) + "','" +
eingabe.Substring(2, 1) + "','" +
eingabe.Substring(3, 1) + "','" +
eingabe.Substring(4, 1) + "',0}";
und da nach einem Schema suchen.
Das einzige was sich (in erster Näherung) ändert ist die erste Zahl beim
Substring. Und diese Zahl läuft von 0 weg bis hoch zu der Anzahl der
Zeichen im eingabe String. Wenn das mal nicht ein deutlicher Hinweis für
den Einsatz einer for-Schleife ist :-)
erstmal danke für die Antworten:-)
Karl Heinz Buchegger schrieb:> und da nach einem Schema suchen.> Das einzige was sich (in erster Näherung) ändert ist die erste Zahl beim> Substring. Und diese Zahl läuft von 0 weg bis hoch zu der Anzahl der> Zeichen im eingabe String. Wenn das mal nicht ein deutlicher Hinweis für> den Einsatz einer for-Schleife ist :-)
Ja soweit habe ich das nun verstanden. Ich nehme also anstatt der festen
Zahlen, den Wert der Stringlänge. Und mache das ganze so oft, wie der
eingelesene String lang ist ?!
************
string eingabe = textBox1.Text;
int l = eingabe.Length;
for (int i = 0; i < l ; i++)
{
string eingabeform = eingabe.Substring(l, 1) + "','";
}
***********
jetzt fehlt mir wie ich das nun zusammensetzte am Ende.... wenn ich
"eingabeform" ausgeben möchte, sagt er dass es nicht geht, da es nicht
im aktuellen Kontext verwendet wird?? Weil es in der for-Schleife ist???
Dann definiere die Variable mal auserhalb der For-Schleife.
Ansonsten empfielt sich Google.
Wenn Du "String formatieren C#" oder ähnliches eingibst findest Du
einiges.
Wie z.B. die Concatenation-Funktion:
http://msdn.microsoft.com/de-de/library/ms228504.aspx
Nur mal am Rande bemerkt:
C und C++ können Strings (nicht anderes sind char-Arrays) auch direkt
mit Stringkonstanten initialisieren.
Ob man nun
1
chartext[]={'H','a','l','l','o',0};
oder
1
chartext[]="Hallo";
schreibt, ist egal, das Ergebnis ist dasselbe. Besser lesen aber kann
man eindeutig die zweite Variante.
Daher erscheint mir der Aufwand, aus einer Zeichenkette obige
Darstellungsform zu erzeugen, recht ... sinnarm.
Was ist der Hintergrund des ganzen, wofür soll das gut sein?
Hi,
danke ihr habt mir mit euren Anregungen sehr geholfen.
Ich habe es hinbekommen und möchte hier natürlich meine Lösung auch
präsentieren, damit auch andere etwas davon haben:
**********
for (int i = 1; i < l; i++)
{
eingabeform = eingabe.Insert(i, "','");
eingabe = eingabeform;
l = l + 3;
i = i + 3;
}
****************
So wird aus Hallo -> H','a','l','l','o
Bestimmt kein sauberer Stil wie ich es programmiert habe, aber es
erfüllt seinen Zweck :-)