Heruntergeladene Datei aufteilen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Heruntergeladene Datei aufteilen

    Ich arbeite derzeit an einem kleinen Spaß-Programm das mit der Microsoft Anna Stimme funktioniert.
    Dies ist ein kleiner Chatbot. Momentan entwickle ich den "TalkBot" so, das ich jeden einzelnen Satz mit

    Quellcode

    1. If Input = "nachricht" Then


    eintrage. Da dies aber sehr aufwendig ist, habe ich mir etwas überlegt.

    Der TalkBot lädt beim Starten eine Datei von meinem FTP-Server herunter. In diese Datei können User beliebige Sätze via PHP-Skript einfügen.
    Die Datei würde so aussehen:

    Quellcode

    1. hallo|Guten Tag, ich bin TalkBot.


    Das heißt, in jeder Zeile steht "Benutzereingabe" getrennt mit einem Strich von der "TalkBot-Ausgabe".
    Das Download-Skript und PHP-Skript sind nicht das Problem - die habe ich bereits.
    Nun ist hier meine Frage: Wie kann TalkBot die in der Datei enthaltenen Angaben zerteilen?

    Er soll Eingabe von Ausgabe bei dem Strich trennen und dann jede Zeile (Also jede Eingabe und jede Ausgabe) in eine If / Then-Schleife packen?

    Datei auf dem Server:

    Quellcode

    1. hallo|Hallo, ich bin TalkBot.
    2. wie geht es dir|Mir geht es gut, und dir?
    3. auch gut|Freut mich, das zu hören!




    In welches Schema TalkBot die Datei zerteilen soll:

    Quellcode

    1. If Input = "hallo" Then
    2. {
    3. Output = "Hallo, ich bin TalkBot."
    4. GoTo Start
    5. }
    6. If Input = "wie geht es dir" Then
    7. {
    8. Output = "Mir geht es gut, und dir?"
    9. GoTo Start
    10. }
    11. If Input = "auch gut" Then
    12. {
    13. Output = "Freut mich, das zu hören!"
    14. GoTo Start
    15. }



    Und so weiter...




    Falls mich einer versteht, bitte ich um Hilfe. :(
    Bin wirklich etwas verzweifelt.
    Bei Nachfrage kann ich die Datei ja mal anhängen.




    EDIT:
    Die Split-Funktion habe ich mehr oder wenig verstanden.
    Nur wie bekomme ich es hin, das für jeden Input und Output der zusammengehört, eine (eventuell vordefinierte) If-Schleife verwendet wird? :huh:

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

    Falscher Ansatz, du brauchst nicht für jede Zeile eine If-Abfrage, das ergibt sich aus deinem Verwendeten System bereits von alleine.
    Als Erstes solltest du die gedownloadete Datei mit File.ReadAllLines() einlesen. Dadurch hast du schon mal alle Zeilen in einem Array vorliegen.
    Nun kannst du dir ein Dictionary(Of String, String) anlegen und dieses per Schleife befüllen. Dabei teilst du jede Zeile mit Split() auf und verwendest den ersten Teil als Key und den zweiten als Value.
    Dann brauchst du bei einer Eingabe nur noch die passende Value raussuchen und fertig.