Hallo,
ich will die Langlängencodierung entcoden. Ich habe es folgendermasen probert: in der text string schreibe ich einen codierten text.
In der forschleife laufe ich die string text durch, Wenn die ausgewählte Stelle eine Zahl ist Zahl in Zahl int speichern. Wenn es keine Zahl ist will ich abfragen ob der Wert "#" ist (Das geht aber noch nicht) dann soll er die if beenden. Wenn der wert kein "#" ist wieder abgefragt ist der zähler größer 0 dann soll der buchstabe sooft ausgegeben werden wie der Zähler groß ist. Sonst buchstabe nur einmal ausgeben.
Die Ausgabe sieht so aus:
a#b(52 mal)c(52 mal)i(52 mal)l(52 mal)löp
Die sollte aber so aussehen:
abbbbcciillllöp
Mein Probleme sind jetzt, die Abfrage ob der Wert gleich "#" ist funktioniert noch nicht.
Und wenn er in die Schleife geht um den buchstaben sooft wie der Zähler groß ist auszugeben, gebt er den Zähler immer 52 mal aus.
ich hoffe ihr kennt denn Fehler erkennen, schonmal danke im vorraus
gruß Madagaska
ich will die Langlängencodierung entcoden. Ich habe es folgendermasen probert: in der text string schreibe ich einen codierten text.
In der forschleife laufe ich die string text durch, Wenn die ausgewählte Stelle eine Zahl ist Zahl in Zahl int speichern. Wenn es keine Zahl ist will ich abfragen ob der Wert "#" ist (Das geht aber noch nicht) dann soll er die if beenden. Wenn der wert kein "#" ist wieder abgefragt ist der zähler größer 0 dann soll der buchstabe sooft ausgegeben werden wie der Zähler groß ist. Sonst buchstabe nur einmal ausgeben.
Code:
string text = "a#4b2c2i3llöp";
string kontrollzeichen = "#";
char buchstabe;
int zähler = 0;
for (int i = 0; i < text.Length; i++)
{
buchstabe = text[i];
if (char.IsDigit(text[i]))///Wenn es eine Zahl ist
{
zähler = text[i];
}
else if (kontrollzeichen == buchstabe)
{
//do nothing
}
else if (zähler > 0)
{
for (int j = 0; j < zähler; j++)/
{
Console.Write(buchstabe);///Wenn Zahl davor, wir der Buchstabe sooft ausgegeben
}
zähler = 0;
}
else
{
Console.Write(buchstabe);///Keine Zahl davor, dann nur Buchstabe ausgeben
}
}
a#b(52 mal)c(52 mal)i(52 mal)l(52 mal)löp
Die sollte aber so aussehen:
abbbbcciillllöp
Mein Probleme sind jetzt, die Abfrage ob der Wert gleich "#" ist funktioniert noch nicht.
Und wenn er in die Schleife geht um den buchstaben sooft wie der Zähler groß ist auszugeben, gebt er den Zähler immer 52 mal aus.
ich hoffe ihr kennt denn Fehler erkennen, schonmal danke im vorraus
gruß Madagaska