Pastebin mit textbox abgleichen

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von DaWeed032.

    Pastebin mit textbox abgleichen

    hallo,
    ich möchte folgendes tun:

    Ich habe einen pastebin link(raw), den ich downloade. In dem Paste sind namen untereinander geschreiben: z.b.

    Günter
    Ralf
    Butterbirne
    Uwe

    Ich habe eine textbox1, in der man etwas eingeben kann(profi) -> ich möchte das die eingabe der TextBox mit dem innhalt des pastebin abgeglichen wird. Das Abgleichen startet durch einen Button1.
    Im Endeffekt, wenn ich "Uwe" eingebe, dann wird der pastebininnhalt auf "Uwe" durchsucht. Wenn "Günter" gefunden wird, then ....
    wenn nicht dann else....

    Es ist wichtig das nicht TextBox.text mit der ganzen Datei verglichen wird sondern immer mit 1ner Zeile, da ich jeden namen in eine neue Zeile schreibe

    wie kann man das umsetzen ?

    MFG :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DaWeed032“ ()

    Mit String.Contains(string) kannst du prüfen ob in eimem String ein anderer String vorhanden ist. Die TextBox hat die Eigenschft Lines, diese musst du mit einer For Each Schleife durchlaufen und in der Schleife deine Prüfung durchführen.
    Noch umständlicher konntest du es nicht beschreiben? ;)

    Warum stehen in der Textbox mehr als das was du suchen möchtest? Das scheint mir ein GUI Problem zu sein. Gibts da nen sinnvollen Grund für?

    Die Textbox hat die Eigenschaft Lines. Die kann man über nen Index ansprechen:
    Dim sSuchwort As String = TextBox.Lines(0).ToString()
    (oder ähnlich, ist nicht getestet).

    Du hast eine Liste mit Namen (egal woher). Diese wird jetzt wie/wo bereit gestellt? In nem String, ner List(Of), Kiste Bananen...?

    String: String.Contains(str)
    List(Of).Contains(str)
    Kiste Bananen: Falsches Datenformat

    Jetzt haben wir mit obigem einen treffer gelandet. Wie solls weiter gehen, darüber hast du leider nix geschrieben.

    If (sNamen.Contains(sSuchwort)) Then
    ' Do some dirty code
    Else
    'do some clean code
    End If
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    sry ich hatte einen schreibfelher in der Beschreibung, habe den jetzt aber behoben.

    Also ich lese den pastebinlink aus

    VB.NET-Quellcode

    1. Dim netinf As String = New System.Net.WebClient().DownloadString("http://pastebin.com/raw/xxxxxxx")


    Bei mir wird die Eigenschaft "Lines" leider nicht erkannt.

    ​was ich im endefekt möchte ist, das If my.computer.info.totalphysicalmemory & my.computer.info.totalvirtualmemory = (sNamen) then
    me.close
    form2.show
    ​else
    ​msgbox("error")

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DaWeed032“ ()

    Geht das hier bei dir?

    ​Mein Setup:
    VS Community 2015
    ​.Net 4.6

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim sNamen As String
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. sNamen += "Peter" & vbCrLf
    5. sNamen += "Hans" & vbCrLf
    6. sNamen += "Marta" & vbCrLf
    7. sNamen += "Jens" & vbCrLf
    8. sNamen += "Waltraud" & vbCrLf
    9. sNamen += "Susanne" & vbCrLf
    10. txtNamen.Text += "Jürgen" & vbCrLf
    11. txtNamen.Text += "Franz" & vbCrLf
    12. txtNamen.Text += "Sandra" & vbCrLf
    13. txtNamen.Text += "Ralf" & vbCrLf
    14. txtNamen.Text += "Tim" & vbCrLf
    15. txtNamen.Text += "Tanja" & vbCrLf
    16. End Sub
    17. Private Sub cmdSuchen_Click(sender As Object, e As EventArgs) Handles cmdSuchen.Click
    18. Dim sSuchwort As String = txtNamen.Lines(0).ToString()
    19. If (sNamen.Contains(sSuchwort)) Then
    20. MessageBox.Show("Treffer")
    21. Else
    22. MessageBox.Show("Nix gefunden")
    23. End If
    24. End Sub
    25. End Class

    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo

    ​Erstmal vielen Dank für den ausführlichen Code!

    ​Das einzige Problem ist, das ich jeden Namen nun in den Source schreiben muss. Sprich wenn ich einen neuen Namen habe, dann muss ich den in den Source eingeben.
    ​Ich möchte aber, dass die Eingabe der TextBox mit dem Inhalt abgeglichen wird. Sprich egal was ich in die TextBox eingebe.

    ​Ich hoffe man versteht was ich meine :)
    Lines ist bereits vom Typ String und muss nicht erneut in einen String konvertiert werden. Das befüllen der Textbox könnte man auch direkt mit einem Array machen (TextBox1.Lines = New String() {"Hallo", "Welt"})

    VB.NET-Quellcode

    1. textBox1.Lines = New String() {"Hallo", "Welt"}
    2. Dim strPasteBin As String = ""
    3. For Each line As String In textBox1.Lines
    4. If strPasteBin.Contains(line) Then
    5. ' string wurde gefunden
    6. Else
    7. ' string wurde nicht gefunden
    8. End If
    9. Next


    EDIT:
    Für dein Vorhaben einfach die 1. Zeile löschen und strPasteBin mit deinem PasteBin Text ersetzen.
    Ne, irgendwie nicht :)

    Frage: Woher kommen denn diese mysteriösen Namen, die du in der TextBox haben willst?

    Du musst halt die Namen irgend wie in deine TextBox laden... Ich weiß ja nicht wo die herkommen.
    Daher hab ich, die Namen halt manuell im Code geschrieben.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ok ich versuch es nochmal zu erklären.

    ​Also es handelt sich bei mir um eine Login Form. Diese erscheint immer wenn man das Programm startet.
    ​Es gibt eine TextBox in die man einen Schlüssel reinschreibt. Wenn man auf Login klick, dann soll der eingegebene Schlüssel mit pastebin.com/raw/uxAWBzYK abgeglichen werden.
    ​Wenn sich der in der TextBox eingegebene Schlüssel in dem Pastebin befindet (z.B. 61400591362147352576) dann IF blabla
    ​Wenn der der Schlüssel nicht in der PasteBin Datei vorkommt, dann ELSE blalblalbla

    ​Es soll ansich wie nen lizenzsystem arbeiten.

    ​Wenn ich einen neuen Schlüssel in den Link eingebe(z.B. 123), kann man auch mit 123 in das Programm.
    Und was hindert mich dann daran, einfach den Link abzurufen, einen Schlüssel zu kopieren und somit Dein Programm zu nutzen, obwohl ich das eigentlich gar nicht dürfte?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Das hatte @hal2000 in Deinem anderen Thread auch schon erwähnt, aber die Routine schmeiß ich Dir mit wenig Aufwand aus dem Code und ich kann das Programm unbegrenzt nutzen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Okay. Und was funktioniert jetzt nicht?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also ich lese mit diesem String den Link aus

    VB.NET-Quellcode

    1. Dim sNamen As String = New System.Net.WebClient().DownloadString("http://pastebin.com/raw/uxAWBzYK")


    ich schreibe in jede Zeile eine HWID. Ich möchte wenn ich in textbox1 eine zahl reinschreibe, überprüfen ob diese in dem Pastebinlink vorhaden ist.

    Und das bekomme ich nicht hin. Da ich für jede HWID im Link, eine neue Zeile benutze, muss jede Zeile einzeln überprüft werden.

    ​Ich habe es schonmal in dieser Form versucht

    VB.NET-Quellcode

    1. ​Dim sNamen As String = New System.Net.WebClient().DownloadString("http://pastebin.com/raw/uxAWBzYK")
    2. If My.Computer.Info.TotalVirtualMemory & My.Computer.Info.TotalPhysicalMemory = (sNamen) Then
    3. MsgBox("hura")
    4. Else
    5. MsgBox("fehler")
    6. End If

    ​Das Problem ist, wenn ich in die zweite Zeile eine ID schreibe(im Link), dann kommt msgbox("fehler"), da der ganze link und nicht nur eine Zeile ausgelesen werden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DaWeed032“ ()

    Wieso? Einfach ein ​string.Contains, wie schon gesagt und fertig.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Du muss da nix zeilenweise vergleichen. Könnte man zwar, muss aber nicht.
    So müsste es gehen.

    VB.NET-Quellcode

    1. Private Sub cmdLogin_Click(sender As Object, e As EventArgs) Handles cmdLogin.Click
    2. Dim sNamen As String = New System.Net.WebClient().DownloadString("http://pastebin.com/raw/uxAWBzYK")
    3. Dim sSuchwort As String = txtNamen.Text
    4. If (sNamen.Contains(sSuchwort)) Then
    5. MessageBox.Show("Treffer")
    6. Else
    7. MessageBox.Show("Nix gefunden")
    8. End If
    9. End Sub


    ​Edit: Irgendwie zerschießt es mir die Formatierung des Codes. Sorry
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Was mir grade einfällt:
    Angenommen in deinem pastebin string steht sowas
    1234567

    Logge ich mich mit 345 ein, würde ich rein kommen, da in 1234567 345 beinhaltet (.Contains wäre True) ist.

    Also müsstest du tatsächlich alles in eine List(Of String) speichern und diese Zeilenweise durchgehen. Dann kannst du jede Zeile mit "=" vergleichen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen