Txt.datei in Combobox einlesen & abspielen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Cybkill.

    Txt.datei in Combobox einlesen & abspielen

    Moin,

    ich möchte gerne 1 Txtdatei beim Start auslesen, diese in Combo box einlesen und diese dann durch eine 2. Txtdatei abspielen.

    Der Code zum einlesen sieht wie folgt aus:

    VB.NET-Quellcode

    1. Dim objReader As New StreamReader("radioname.txt")
    2. Dim line As String
    3. Do While objReader.Peek() >= 0
    4. line = objReader.ReadLine()
    5. GhostComboBox1.Items.Add(line)
    6. Loop


    Dies funktioniert wunderbar.

    mein Code zum abspielen:

    VB.NET-Quellcode

    1. Dim reader As New StreamReader("RadioURL.txt")
    2. Dim text As String
    3. Dim zeile As Integer
    4. Do
    5. text = reader.ReadLine()
    6. zeile += 1
    7. If zeile = 2 Then
    8. TextBox1.Text = text
    9. Exit Do
    10. End If
    11. Loop
    12. reader.Close()



    So spielt er zwar 1nen link davon ab, aber soll auch die weiteren zeilen aufteilen sprich aus radioname.txt soll er den namen in die combobox aufteilen & aus RadioURL.txt soll halt je nachdem welche datei in der combobox selected ist abspielen.

    ein Beispiel:

    Ich möchte Test2 abspielen, die URL die im Radio abgespeichert ist, ist in der Zeile 2 z.B: testradio.de/333.mp3.

    Sprich das halt die einzelnen Radios aufgeteilt sind die neu hinzugefügt wurden.

    Mein Code zum einfügen ist folgender:

    VB.NET-Quellcode

    1. Dim sw As StreamWriter
    2. sw = File.AppendText("RadioURL.txt")
    3. sw.WriteLine(TextBox1.Text)
    4. sw.Flush()
    5. sw.Close()


    Dies läuft auch, ist eigentlich nicht relevant aber wollt es erwähnen xd

    Verschoben. ~Trade
    Radio-Player Modul >>1.0<<:
    Fertigstellung: 100%

    Download gibt es per PN :)

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

    Bei dem StreamWriter würde ich AutoFlush=True machen...

    Dein Hauptproblem habe ich noch nicht ganz verstanden

    Cybkill schrieb:

    ich möchte gerne 1 Txtdatei beim Start auslesen, diese in Combo box einlesen und diese dann durch eine 2. Txtdatei abspielen.


    Ich spiel normalerweise keine Textdatein ab :p.

    Wenn du eine Textdatei lesen möchtest, nimm ein StreamReader und lese die Datei in einen String (ReadAllLines). Danach nimm eine For Each-Schleife und splitte den String (For Each str as String in strFile.split(vbNewLine)) und schreib rein, dass str zur ComboBox hinzugefügt werden soll...

    Es gibt ein Event, welches ausgeführt wird, wenn sich der Inhalt einer ComboBox ändert. In dem könnte stehen, dass eine Methode (+ inhalt der ComboBox als Parameter) ausgeführt wird und die dann etwas abspielt...

    Ich weiß gerade nicht genau, ob das dein Problem war :D

    Edit: den Code hab ich nicht getestet, also könnten da evtl. Fehler sein...
    Ja also ich möchte es ja so machen, das sagen wir in der Combobox steht TEST1, dieser ist dann halt für die 1. Zeile in der anderen Txtdatei und dies dann halt immer so weiter, Test 2 gehört zu zeile2 und diese zeilen soll er abspielen.
    Radio-Player Modul >>1.0<<:
    Fertigstellung: 100%

    Download gibt es per PN :)
    Also es gibt 2 Txt dateien, 1. heißt Radioname, 2. heißt RadioURL.
    Ich wollte es schon getrennt haben.

    In Combobox wird die txt.datei Radioname eingelesen.

    Wenn man dann auf sagen wir Test1 klickt und abspielen möchte, soll dies dann aus RadioURL.txt ausgelesen werden, dies ist dann für Test1 die 1. Zeile und 1. Link, für Test2 wäre es die 2. Zeile und der 2. link.

    Verstehst doch was ich meine oder?
    Radio-Player Modul >>1.0<<:
    Fertigstellung: 100%

    Download gibt es per PN :)
    Ja jz schon, aber das hätte auch im ersten Post stehen können :D
    Und warum soll es getrennt sein ? Wenn es getrennt sein muss, mach eine Klasse (Radio) mit 2 Strings (Name, URL)
    In der einlesen Methode würde ich dann das in etwa so machen:
    1. 2 StreamReader öffnen (srName, srURL)
    2. Senderliste = new List(Of Radio) erstellen (nicht in der Methode, sondern vll in einem Modul)
    3. Beide Datein in Strings lesen
    4. tmpRadio erstellen
    5. For Each-Schleife mit strName.Split(vbNewLine)
    6. tmpRadio.Name stetzen
    7. Nummer 5 und 6 für die 2. Datei wiederholen
    8. tmpRadio (wo jz beide Strings sein sollten) zur Senderliste hinzufügen
    9. Alle Klassen aus Senderliste zur Combobox hinzufügen
    @Luca Deine Codeschnipsel sind Option Strict Off, ändere das bitte noch.

    Also für sowas nimmt man eigentlich ein typisiertes Dataset und hantiert da nicht mit Textdateien, Splitten und Schleifen rum. Arbeite dich etwas in die Materie ein und du wirst schnell erkennen, dass du mit Datasets weitaus schneller und einfacher ans Ziel kommst, als mit Textdateien.

    LG
    Was empfehlt ihr mir den eher, was ist einfacher, es soll halt so sein, wenn man bei Textbox1 die URL und bei Textbox2 Namen eingibt, dies mit den Button namens Hinzufügen in der Combobox abspeichert, soll es halt beim nächsten start bestehen bleiben und auch nachdem man in der Combobox den Namen stehen hat, diesen selected, dies abspielbar ist.

    Ich bin noch nicht so erfahren damit, deswegen frage ich euch lieber.
    Radio-Player Modul >>1.0<<:
    Fertigstellung: 100%

    Download gibt es per PN :)
    offensichtlich gehören Name und Url zusammen - sie bilden einen: "Datensatz".
    Derlei Datensätze zusammengefasst ergeben eine Tabelle, und einer Tabelle kann man auch Datensätze hinzufügen.
    Und man kann Tabellen abspeichern, was man mit Comboboxen nicht kann.
    Das läuft also auf eine Datenverarbeitung hinaus.

    Comboboxen sind gut geeignet, um aus Tabellen einen Datensatz auszuwählen, sind aber nicht geeignet, um Tabellen zu enthalten.
    Für Tabellen sind eigene Datentypen vorgesehen, eine ganze Infrastruktur ist dafür vorgesehen.

    Auf Datenverarbeitungs-Vorraussetzungen gibts eine Menge weiterer Links, die näher oder entfernter damit zu tun haben.
    Also ich möchte es jetzt doch nur mit einer Textbox( der Radio URL) haben nur ich habe probleme beim Abspielen & einfügen.

    Fürs einfügen habe ich ja

    VB.NET-Quellcode

    1. Dim sw As StreamWriter
    2. sw = File.AppendText("RadioURL.txt")
    3. sw.WriteLine(TextBox1.Text)
    4. sw.Flush()
    5. sw.Close()


    Er schreibt den Link nach dem ich auf hinzufügen klicke nicht in die combobox sondern nur nachdem ich den Player neustartete, hab ich da beim Code was vergessen?

    SO habe ich fürs abspielen immer Select Case genutzt da ich diese funktion am einfachsten fand, ich habe es auch schonmal hinbekommen das er dies abspielt aber irgendwie klappt dies nun nicht.

    Gibt es da irgend ein Trick das ich möglichst mit Option String Off dies da eingefügt bekomm, es abspielt`?

    Das einfügen geht nur das abspielen nicht und das hinzufügen.
    Radio-Player Modul >>1.0<<:
    Fertigstellung: 100%

    Download gibt es per PN :)