Ich würde dir ja gerne helfen, auch wenn ich kein VB kann, aber ich verstehe nicht was du erreichen willst ...
Als erstes sehe ich einen wichtigen Fehler bei deinem Replace. Ich schreibe das jetzt in C#, du solltest es eigentlich in VB übersetzen können.
Code:
string meinString = "Hallo Welt";
// Du hast geschrieben
meinString.Replace("Welt", "Elitepvpers");
// Damit bekommst du dann
Console.WriteLine(meinString); // Hallo Welt
// Richtig wäre es so, weil du den geänderten String natürlich speichern musst
meinString = meinString.Replace("Welt", "Elitepvpers");
// Damit bekommst du dann
Console.WriteLine(meinString); // Hallo Elitepvpers
So und jetzt versuche ich zu verstehen was du erreichen willst. Also du hast eine Zeichenkette, bei der in jeder Zeile ein Zahl steht. Jetzt willst du diese Zahlen durch Buchstaben (und Zahlen) ersetzten.
Wie sieht da deine Regel aus? Zahl 102 ist immer Zeichen a oder die Zahl in Zeile 1 ist immer Zeichen a?
Also wenn 102 immer a ist, dann könnte es so aussehen:
Code:
Key = Key.Replace("102", "a");
Key = Key.Replace("698", "b");
// ...
Das solltest du dann aber auch irgendwo speichern, denn so wird es einfach mit der nächsten Zeile überschrieben und es ist weg.
Wenn Zeile 1 immer a ist und Zeile 2 immer b, welchen Zweck haben die Zahlen? Soll damit eine zweite Zeichenkette "entschlüsselt" werden, die nur aus diesen Zahlen besteht?
Oder geht es wirklich nur darum Zeile 1 durch a zu ersetzten und fertig? Dann ist mir der Sinn des Programms schleierhaft ...
Jetzt noch etwas zu deiner Schleife und dem Ersetzten:
Code:
// Du hast das da stehen:
foreach(string key in strReader.ReadLine())
{
Key.Replace(strReader.ReadLine(), "a");
// ...
}
Ich habe es nicht getestet, aber ich bin mir ziemlich sicher, dass es nicht so funktioniert wie du dir das vorstellst. Nehmen wir mal dein "102|698|237" (| sollen die Zeilenumbrüch sein) jetzt setzten es in die Schleife ein:
Code:
foreach(string key in "102")
{
// Key == 1
// Vorrausgesetzt .NET spielt mit und speichert char in string
}
Dann kommt dein Code zum Ersetzten der Zahlen und du suchst in "1" nach "698" um es durch "a" zu ersetzten, findet er nicht. Dann suchst du in "1" nach "237" um es durch "b" zu ersetzten, kann er auch nicht finden.
Zum Schluss noch eine kleine Anmerkung. Wenn hinter jeder dieser Zahlen ein Zeilenumbruch ist, dann sollte es auch so (oder zumindest ähnlich) gehen:
Code:
downloaded_string= downloaded_string.Replace("102\n", "a\n");
Wer Fehler in dem Text und den Codes findet darf sie gerne korrigieren. Ich habe jetzt alles hier im Textfeld geschrieben und nichts getestet.
Edit:
Ich habe hier den Eindruck, dass du die Grundlagen der Programmierung (das hat auch nichts mit der verwendeten Sprache zu tun) nicht verstanden hast. Ich kann dir also nur empfehlen dich noch mal intensiv damit zu beschäftigen. Solange du nicht verstehst, wie ein Programm funktioniert, wirst du immer wieder solche äußerst dämlichen Fehler produzieren.
Fehler die man selbst nicht findet, weil eine Kleinigkeit nicht stimmt, die gibt es immer und die hat auch der beste Programmierer. Ich rede hier von Fehlern, die aus einem völlig falschen Ansatz entstehen und das sollte jeder Programmierer erkenne können.
Wenn ich mir deinen Code nehme und versuche mir vorzustellen was du erreichen willst, dann lässt sich daraus wahrscheinlich recht schnell eine funktionierende Lösung basteln. Es ist definitiv nicht die beste Lösung, aber es ist eine Lösung und darauf kommt es an.