Überprüfen, ob Datei existiert und wenn ja, dann Inhalt, sprich Text auslesen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Überprüfen, ob Datei existiert und wenn ja, dann Inhalt, sprich Text auslesen

    Hallo. Ich habe da mal eine Frage. Und zwar möchte ich überprüfen, ob eine Datei existiert. Das habe ich schon geschafft:

    VB.NET-Quellcode

    1. ​If System.IO.File.Exists("Pfad") Then
    2. 'Ja, dann Befehle ausführen
    3. Else
    4. 'Sonst das ausführen
    5. End If


    Nun möchte ich aber, dass er die Befehle erst ausführt, wenn die Datei existiert und ein bestimmter Text drin steht. Sonst kann man ja einfach so eine leere .key, oder .dll o.a. Datei erstellen und dann ist die Software bestätigt.
    Du musst Dir schon überlegen, was Du auslesen bzw. überprüfen willst. Wenn es um reine Textdateien geht, dann sollte es für Dich auch ein leichtes sein herauszufinden, wie man die Datei (den Text) einliest und im 2. Schritt untersucht, ob ein bestimmter Inhalt im Test vorkommt. Ätwas ähnliches war hier erst vor wenigen Tagen gefragt worden.
    @RaceShafter Willkommen im Forum. :thumbup:
    Meinst Du so was in der Art:

    VB.NET-Quellcode

    1. Dim path = "c:\temp\test.txt"
    2. If System.IO.File.Exists(path) Then
    3. Me.RichTextBox1.LoadFile(path)
    4. Else
    5. Me.RichTextBox1.Text = path & " nicht gefunden"
    6. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für alle Antworten, aber so dickköpfig und selbstständig, wie ich bin, habe ich sicherheitshalber Hilfe hier angefragt und gleichzeitig weitergesucht. Funktioniert jetzt alles so:

    VB.NET-Quellcode

    1. If System.IO.File.Exists("Pfad des Keys") Then 'Es wird überprüft, ob ein Key existiert
    2. Label1.Text = My.Computer.FileSystem.ReadAllText("Pfad des Keys") 'Der Inhalt des Keys wird über eine, quasi Brücke dem Programm übermittelt
    3. If Label1.Text = "Pflicht Textinhalt des Keys" Then 'Ist der Key-Inhalt der Pflicht-Inhalt?
    4. Timer1.Stop() 'Timer1 wird gestopt, er wird nicht mehr gebraucht
    5. Me.Text = "Titel, wenn gültiger Key" 'Wenn der Key gültig ist, dann muss das im Form-Titel mittgeteilt werden
    6. Else 'Wenn der Key falsch ist, sprich der Inhalt nicht dem Pflichtinhalt entspricht, dann...
    7. Timer1.Stop() 'Timer1 wird gestopt, damit keine unzählbar viele MsgBoxen kommen, sondern nur eine
    8. Me.Text = "Titel wenn ungültiger Key" 'Form-Titel, wenn Key ungültig ist
    9. MsgBox("Ungültiger Key!", MsgBoxStyle.Information, "Fehler") 'Mitteilung, dass Key ungültig, vielleicht sogar gecrackt ist
    10. End If 'Ende des If im If
    11. Else 'Wenn kein Key existiert, es kann auch MsgBox (#8) weggelassen werden
    12. Timer1.Stop() 'Timer1 wird gestopt, damit keine unzählbar viele MsgBoxen kommen
    13. Me.Text = "titel, wenn kein Key gefunden" 'Text, wenn kein Key gefunden wurde, sprich keiner existiert. sprich die Testversion noch aktiv ist
    14. MsgBox("Es wurde kein Key gefunden!", MsgBoxStyle.Information, "Fehler") '#8 Es wird mittgeteilt, dass kein Key existiert
    15. End If 'Ende des ersten If


    Geklaut wegen den

    VB.NET-Quellcode

    1. '......

    ...Sachen ist es aber nicht ;)

    Habe dies an meine E-Mail Adresse gesendet und alles nochmal erklärt, sitze gerade nämlich auf Arbeit.

    Ich bedanke mich aber trotzdem für eure Hilfe. Ihr könnt, wenn ihr wollt ja noch sagen, wenn ich an meinem jetzigen, funktionierenden Code noch was ändern sollte :D

    PS: Und danke für das Willkommen :D
    Habe mir gedacht, weiterhin auf GuteFrageNET zu fragen bringt nichts, da kommen keine Antworten. Und hier ist gleich ein Top-Forum, welches auch das thema, indem ich so oft Probleme habe, behandelt

    Mit freundlichen Grüßen,
    Tom (RaceShafter)
    Auf Gutefrage.NET haben die meisten eh keine Ahnung.
    Der Code ist aus mehreren Gründen nicht sehr schön. Nimm wenn dann immer System.IO, trenne GUI von Daten, das habe ich Dir im anderen Thread schon gesagt, nimm statt MsgBox bitte MessageBox.Show und zudem erkundige Dich hier bitte, ob es ein Timer sein muss, bzw. was macht denn der?
    #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 :!:

    RaceShafter schrieb:

    VB.NET-Quellcode

    1. If Label1.Text = "Pflicht Textinhalt des Keys" Then
    Der Text eines Labels kann nicht mal eben per Tastatur geändert werden, nimm keinen String-Vergleich, sondern mach Dir ein oder mehrere Flags und teste dann ein Boolean oder ein Enum.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RaceShafter Irgendwo hast Du eine Button_Click-Prozedur, dort sollte alles passieren.
    Dort liest Du den Inhalt der Datei in eine String-Variable und arbeitest mit dieser String-Variable.
    Der Vergleich wird genau ein Mal durchgeführt. Brauchst Du das Vergleichsresultat mehrfach, leg Dir eine Boolean-Variable mit dem Ergebnis an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!