For Each Replace ? // Aber wie ?

01/12/2016 16:38 anonymous-29742#1
Moin ^^
Also folgendes..

Ich lade mir einen String runter zb :
102
698
237
usw.. (26 mal)

Und möchte nun das diese strings
a
b
c
usw..

Replacen..

Heißt..
102 wird zu a
698 wird zu b
237 wird zu c

usw..


Wäre nett wenn sich jemand meldet :)

MFG #Lucas#

Hoffe der Ansatz ist richtig :D
Code:
            Dim strReader As New StringReader(downloaded_string)
            For Each Key As String In strReader.ReadLine
                Key.Replace(strReader.ReadLine, "a")
                Key.Replace(strReader.ReadLine, "b")
                Key.Replace(strReader.ReadLine, "c")
                'USW.. möchte dazu noch die ganzen zahlen :s 0-9
            Next
01/12/2016 17:20 ComputerBaer#2
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.
01/12/2016 18:39 hazejp#3
Falls Du eine eigene, simple Kodierung schaffen willst, sollte dein Ziel mit einem einfachen .NET-Wörterbuch erreicht werden können.
01/12/2016 19:10 YatoDev#4
Quote:
Originally Posted by ComputerBaer View Post
foreach(string key in "102")
{
// Key == 1
// Vorrausgesetzt .NET spielt mit und speichert char in string
}
foreach(char chr in string)

wäre richtig
01/12/2016 19:38 anonymous-29742#5
Wollte mir so ein Login mit Verschlüsslung basteln ^^
Was ich machen wollte..

Downloaded ein String mit den Usernamen und Passwörtern.. (Verschlüsselt mit Replace.. Ja das ist schlecht ^^)
Und dann sollen die Strings Replacet werden 465465465 zu A, 784654655 zu B usw.. und danach mit den Textboxen abgeglichen werden. Aber diese zahlen wie "465465465" und "784654655" sollen auch gedownloaded werden damit sie nicht im Code stehen.

Naja.. suche mir gerade etwas wo mit MySQL und PHP arbeitet.. vllt kann da ja jemand helfen :3 (Login und Register)

MFG #Lucas#
01/12/2016 20:02 ComputerBaer#6
Das wichtigeste zu erst:
Quote:
Originally Posted by #Lucas# View Post
Und dann sollen die Strings Replacet werden 465465465 zu A, 784654655 zu B usw.. und danach mit den Textboxen abgeglichen werden.
Das solltest du in zwei Schritte aufteilen, dein Code sieht aus als hättest du es in einem Schritt versucht.

Schritt 1: Du lädst deine Entschlüsselungsdatei mit den Zahlen für die Zeichen runter. Dann liest du die Datei ein und speicherst dir welches Zeichen welche Zahl hat.

Schritt 2: Du gehst das was du Verschlüsseln/Entschlüsseln willst Zeichen für Zeichen durch und hängst das Ergebnis jedes Zeichens in eine Ergebnis-Zeichenkette an.

Ok, dann in Schritt 3 vergleichen.


Und jetzt der ganze Rest:
Quote:
Originally Posted by hazejp View Post
Falls Du eine eigene, simple Kodierung schaffen willst, sollte dein Ziel mit einem einfachen .NET-Wörterbuch erreicht werden können.
Das wäre wohl ein anderer Ansatz für das Problem und ich würde ihn auch als besser bezeichnen. (Anmerkung: Schritt 1 ist Wörterbuch füllen/schreiben und Schritt 2 in Wörterbuch suchen/lesen.)

Quote:
Originally Posted by »FlutterShy™ View Post
foreach(char chr in string)

wäre richtig
Ich habe es vermutet, wie du ja an dem Kommentar im Code siehst. An der Stelle ging es mir vorallem darum, dass er mit der Schleife jedes Zeichen durchgeht und versucht mehrere Zeichen darin zu finden. Aber was schreibe ich hier, das hast du bestimmt auch erkannt.

Quote:
Originally Posted by #Lucas# View Post
Wollte mir so ein Login mit Verschlüsslung basteln ^^
Ja, da könntest du es auch im Klartext übertragen. Das ignorieren wir jetzt mal und versuchen dich zu einer Lösung bei dieser Idee zu bringen.

Quote:
Originally Posted by #Lucas# View Post
Downloaded ein String mit den Usernamen und Passwörtern.. (Verschlüsselt mit Replace.. Ja das ist schlecht ^^)
Ich würde eher Benutzername und Passwort an den Server schicken, dann kann keiner einfach alle Accounts knacken nur weil er deine accounts.txt entschlüsselt hat.

Quote:
Originally Posted by #Lucas# View Post
Aber diese zahlen wie "465465465" und "784654655" sollen auch gedownloaded werden damit sie nicht im Code stehen.
Macht es einen Unterscheid ob man in den Code schaut und dort die Zahlen sieht oder die Stelle an der man die Zahlen findet? Die Sicherheit wird damit nicht besser, aber bleib für diese Übung ruhig beim Download.