Avatar billede Dartemis Nybegynder
18. juni 2009 - 16:06 Der er 35 kommentarer og
1 løsning

Split fra txt fil til array til dropdown ! HJÆLP !!

Halløjsa eksperter !

Har seriøst brug for noget hjælp her !

Jeg har nogle links i en txt fil som bliver læst ind af en:
using (StreamReader sr = File.OpenText(path))

I text filen står der fx.
P1,http://www.dr.dk/netradio/metafiler/asx/DR_P1_32.asx

jeg skal have delt den op så "P1" kommer ind i min dropdown, men når den så bliver valgt skal min afspiller køre linket.


dropdown'en er en combobox, har bare omdøbt den.


har brugt denne her kode men er lagt fra rigtig, tror jeg?
           

using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    s.Split(new char[] {','});
                    dropdown.Items.Add(s);
                }
            }


sætter lige hele min kode ind så i kan se hvordan det er sat op osv.

har virkelig brug for en hurtig hjælp så det virker.




        private void Form1_Load(object sender, EventArgs e)
        {
            string path = @"c:\Stations.txt";
            if (!File.Exists(path))
            {
                // Create a file to write to.
                using (StreamWriter sw = File.CreateText(path))
                {
                    sw.WriteLine("P1,http://www.dr.dk/netradio/metafiler/asx/DR_P1_32.asx");
                }
            }

            // Open the file to read from.
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    s.Split(new char[] {','});
                    dropdown.Items.Add(s);
                }
            }
        }


        private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
        {
           
            axWindowsMediaPlayer1.URL = (string)dropdown.SelectedItem;
        }


        private void button1_Click(object sender, EventArgs e)
        {
            string path = @"c:\Stations.txt";

            //Tjekker om der er tekst i linkboxen
            if (textBox1.Text == "")
            {
                MessageBox.Show("Skriv en station");
            }
            else
            {

                //Indsætter linket i textfilen
                using (StreamWriter sw = new StreamWriter(path, true))
                {
                    sw.WriteLine(textBox1.Text);
                    dropdown.Items.Clear();
                }


                //Henter linksene fra textfilen til dropdown
                using (StreamReader sr = File.OpenText(path))
                {
                    string s = "";
                    while ((s = sr.ReadLine()) != null)
                    {
                        textBox1.Text = "";
                        dropdown.Items.Add(s);
                    }

                }

            }

        }



Sætter pris på ALT hjælp, og håber det er til at overskue.

Mange tak :)
Avatar billede Spotgun Seniormester
18. juni 2009 - 19:55 #1
Her er et hurtigt forslag: Lav en struct til at strukturere dine links/navne på radiostationerne. Lav derefter en List til at samle dem i, fyld den op med stationer, og brug den som DataSource på din combobox. Jeg har blot smidt lidt test-data ind i mit eksempel, men du kan nok nemt tilpasse det dit eget program.

        private struct Station
        {
            public string Name { get; set; }
            public string Link { get; set; }
        }

        public Form1()
        {
            InitializeComponent();

            List<Station> stations = new List<Station>();
            string[] values = { "P1,http://www.dr.dk", "P2,http://www.google.dk", "P3,http://www.eksperten.dk" };

            foreach (string value in values)
            {
                string[] arr = value.Split(',');
                Station station = new Station();
                station.Name = arr[0];
                station.Link = arr[1];
                stations.Add(station);
            }

            comboBox1.DisplayMember = "Name";
            comboBox1.ValueMember = "Link";
            comboBox1.DataSource = stations;
        }
Avatar billede Dartemis Nybegynder
18. juni 2009 - 20:18 #2
Hvordan bruger jeg datasourcen ? er kun vant til det som hjemmesider har ikke prøvet det med programmer ?

skal jeg lave en ny datasource eller ?

er nok lidt fat svag desværre :p
Avatar billede Spotgun Seniormester
18. juni 2009 - 21:04 #3
Jeg er ikke helt med på hvad du mener?

Du bruger din List<Station> som datasource. Den binder automatisk når du sætter den som datasource på din combobox.
Skal du trække værdierne ud bruger du blot comboBox1.SelectedValue, så får du linket ud.
Avatar billede Dartemis Nybegynder
19. juni 2009 - 08:26 #4
okay prøver lige og se om det virker :)
Avatar billede Dartemis Nybegynder
19. juni 2009 - 08:47 #5
Det virker i comboboxen, jeg kan se der står P1 P2 P3, men skal kanalerne ikke skrives i koden
nu ???

Den skal jo helst hente Name og Link fra txt filen jeg laver i starten :)

plus hvordan får jeg den til at afspille det valgte ?

koden til afspillern:

        private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
        {

            axWindowsMediaPlayer1.URL = dropdown.SelectedItem;
        }

og får noget fejl på

Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)
Avatar billede Spotgun Seniormester
19. juni 2009 - 10:17 #6
Du skal jo blot indlæse din tekstfil som før, men i stedet koble det sammen med din Struct og List.

using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                  string[] arr = s.Split(',');
                  Station station = new Station();
                  station.Name = arr[0];
                  station.Link = arr[1];
                  stations.Add(station);
                }
            }

Og jeg vil mene at du skal hente linket ud således:

axWindowsMediaPlayer1.URL = dropdown.SelectedValue.ToString();
Avatar billede Dartemis Nybegynder
19. juni 2009 - 10:21 #7
Okay tak :) den fangede jeg ikke lige :p men prøver lige engang :)
Avatar billede Dartemis Nybegynder
19. juni 2009 - 10:39 #8
FUUUCK hvor jeg elsker dig xD det virker sku :D :D :D

Kan du muligvis hjælpe mig med at gøre så når de skriver i to tekst boxe så kommer det ind i min txt fil så det passer ? fx
textbox(navn på kanel): P1 | textbox(link): http...
og så kommer det i txtfilen som : P1,http...  ?

hvis det kunne forståes ? :p

har desværre kun en textboks lige nu men sætter jo bare en til ind.
Avatar billede Spotgun Seniormester
19. juni 2009 - 11:29 #9
Det må blive noget i stil med:

                //Indsætter linket i textfilen
                using (StreamWriter sw = new StreamWriter(path, true))
                {
                    sw.Write(textBox1.Text + ",");
                    sw.WriteLine(textBox2.Text);
                    dropdown.Items.Clear();
                }
Avatar billede Spotgun Seniormester
19. juni 2009 - 11:29 #10
Du bør selvfølgelig checke for om man indtaster komma i enten navn eller link. Det kan potentielt set fucke dit program op :)
Avatar billede Dartemis Nybegynder
19. juni 2009 - 11:32 #11
hvordan kan jeg gøre det når det kommer i en list ?
eller skal jeg gøre det på en anden måde ?

hvis du gider hjælpe mig med det her skal du self nok få nogle flere point :)
Avatar billede Dartemis Nybegynder
19. juni 2009 - 11:39 #12
sidder og tænker på om man ikke kan lave en funktion som på hjemmesider, som gør at når der kommer en fejl så kommer en boks frem og skriver hvad fejlen er uden at lukke programmet ?
Avatar billede Spotgun Seniormester
19. juni 2009 - 11:54 #13
Det kan du gøre på flere måder. Enten kan du selv validere dine inputs m.v. eller også kan du benytte en try/catch blok.
Google skulle nok kunne hjælpe dig videre herfra.

Er hurtigt fix til din løsning (ikke den pæneste model, men det vil virke), er at du checker på textBox1.Text.Contains(",") inden du skriver til filen.

f.eks.
if(textBox1.Text.Contains(",") || textBox2.Text.Contains(","))
{
  MessageBox.Show("Feltet må ikke indholde komma!");
}
else
{
  // skriv til filen
}
Avatar billede Dartemis Nybegynder
19. juni 2009 - 13:04 #14
kanon ! :D tak vil jeg lige prøve ! :D

når den så skal skrive det ind i txt filen er det så noget af den stil her?

                using (StreamWriter sw = new StreamWriter(path, true))
                {
                    sw.Write(textBox1.Text + "," + textbox2.text);
                    dropdown.Items.Clear();
                    dropdown.SelectedValue.ToString();

                }

er det rigtigt ?
så den skriver det ind i txtfilen, clear'er dropdownen og henter infoen ind igen ? eller kan det gøres anderledes og smartere ?
Avatar billede Spotgun Seniormester
19. juni 2009 - 13:57 #15
Jeg ville smide din indlæsningsdel ud i en metode for sig.

private void LoadStations()
{
  using (StreamReader sr = File.OpenText(path))
  {
      string s = "";
      while ((s = sr.ReadLine()) != null)
      {
        string[] arr = s.Split(',');
        Station station = new Station();
        station.Name = arr[0];
        station.Link = arr[1];
        stations.Add(station);
      }
  }
}

Og evt. lave din skrive-funktion til en metode også:

private void SaveStations()
{
  using (StreamWriter sw = new StreamWriter(path, true))
  {
      sw.WriteLine(textBox1.Text + "," + textbox2.text);
  }
}

Så skal du blot kalde LoadStations() for at reloade dine radiostationer.

Det er lidt svært at komme med noget mere præcist end dette, da jeg ikke længere har det overblik over strukturen i dit program, men jeg håber du forstår hvor jeg vil hen.
Avatar billede Dartemis Nybegynder
19. juni 2009 - 14:54 #16
jo forstår godt hvad du mener og tror jeg tager imod iden hehe :D

kan jeg på nogen måde give dig flere point ?
Avatar billede Spotgun Seniormester
19. juni 2009 - 16:17 #17
De 100 point jeg allerede har fået er rigeligt fint til det her :)
Avatar billede Dartemis Nybegynder
19. juni 2009 - 16:20 #18
hehe ok :) MANGE TAK i hvertfald ! :D
Avatar billede Dartemis Nybegynder
22. juni 2009 - 12:00 #19
Hey igen :)

nu sidder jeg og har prøvet en ting her med at opdatere dropdownen men kan ikke få det til at virke..

jeg har taget imod din ide om at lave den til funktioner så jeg bare skal skrive savestarioner osv :) tak ! :)

men nu når jeg indtaster en url med navn, BLIVER den skam lagt ind som den skal.. men den opdatere ikke dropdownen med det samme, jeg skal først lukke og åbne programmet igen før det er der ??

hvad kan jeg gøre det dette ??
Avatar billede Spotgun Seniormester
22. juni 2009 - 12:08 #20
Kør LoadStations() efter du har opdateret tekstfilen, så skulle den gerne dukke op i listen.
Avatar billede Dartemis Nybegynder
22. juni 2009 - 12:11 #21
Gør jeg os, skulle jeg da mene..

Koden ser lige nu sådan her ud.

protected void button1_Click(object sender, EventArgs e)
        {
            List<Station> stations = new List<Station>();
            string path = @"c:\Stations.txt";

            //Tjekker om der er tekst i linkboxen
            if (textBox1.Text == "")
            {
                MessageBox.Show("Skriv en station");
            }
            else
            {
                if (textBox1.Text.Contains(",") || textbox2.Text.Contains(","))
                {
                    MessageBox.Show("Feltet må ikke indholde komma!");
                }
                else
                {
                    //Indsætter linket i textfilen
                    SaveStations();

                }

                //Henter linksene fra textfilen til dropdown
                LoadStations();
                textBox1.Text = "";
                textbox2.Text = "";
               

            }
        }
Avatar billede Spotgun Seniormester
22. juni 2009 - 12:39 #22
Kan du evt. smide hele din sourcekode her? Så er det vist lidt nemmere at rette til, så vi ikke misforstår hinanden :)
Avatar billede Dartemis Nybegynder
22. juni 2009 - 13:32 #23
hehe jo kan jeg godt :)

Her er koden så :)


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace John
{
    public partial class Form1 : Form
    {
        //WMPLib.WindowsMediaPlayer Player;
        private NotifyIcon m_notifyicon;
        private ContextMenu m_menu;


        protected struct Station
        {
            public string Name { get; set; }
            public string Link { get; set; }
        }

        public Form1()
        {
            InitializeComponent();


            List<Station> stations = new List<Station>();


            Text = "WebRadio - MiniMode";

            m_menu = new ContextMenu();
            m_menu.MenuItems.Add(0,
                new MenuItem("Show", new System.EventHandler(Show_Click)));
            m_menu.MenuItems.Add(1,
                new MenuItem("Hide", new System.EventHandler(Hide_Click)));
            m_menu.MenuItems.Add(2,
                new MenuItem("Play", new System.EventHandler(Play_Click)));
            m_menu.MenuItems.Add(3,
                new MenuItem("Stop", new System.EventHandler(Stop_Click)));
            m_menu.MenuItems.Add(4,
                new MenuItem("Exit", new System.EventHandler(Exit_Click)));


            m_notifyicon = new NotifyIcon();
            m_notifyicon.Text = "Right click for menu";
            m_notifyicon.Visible = true;
            m_notifyicon.Icon = new Icon(GetType(), "Icon1.ico");
            m_notifyicon.ContextMenu = m_menu;

        }

        protected void LoadStations()
        {
            List<Station> stations = new List<Station>();
            string path = @"c:\Stations.txt";
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    string[] arr = s.Split(',');
                    Station station = new Station();
                    station.Name = arr[0];
                    station.Link = arr[1];
                    stations.Add(station);
                }
            }
        }

        protected void SaveStations()
        {
            List<Station> stations = new List<Station>();
            string path = @"c:\Stations.txt";
            using (StreamWriter sw = new StreamWriter(path, true))
            {
                sw.WriteLine(textBox1.Text + "," + textbox2.Text);
            }
        }


        protected void Form1_Load(object sender, EventArgs e)
        {
           
            string path = @"c:\Stations.txt";
            if (!File.Exists(path))
            {
                // Create a file to write to.
                using (StreamWriter sw = File.CreateText(path))
                {
                    sw.WriteLine("P1,http://www.dr.dk/netradio/metafiler/asx/DR_P1_32.asx");
                    sw.WriteLine("P2,http://www.dr.dk/netradio/metafiler/asx/DR_P2_32.asx");
                    sw.WriteLine("P3,http://www.dr.dk/netradio/metafiler/asx/DR_P3_32.asx");
                    sw.WriteLine("DR POP,http://www.dr.dk/netradio/metafiler/asx/DR_Pop_DK_32.asx");
                    sw.WriteLine("DR Hit,http://www.dr.dk/netradio/metafiler/asx/DR_Hit_128.asx");
                    sw.WriteLine("DR Evergreen,http://www.dr.dk/netradio/metafiler/asx/DR_Evergreen_32.asx");
                    sw.WriteLine("DR Folk,http://www.dr.dk/netradio/metafiler/asx/DR_Folk_32.asx");
                    sw.WriteLine("DR Rock,http://www.dr.dk/netradio/metafiler/asx/DR_Rock_32.asx");
                    sw.WriteLine("DR Soft,http://www.dr.dk/netradio/metafiler/asx/DR_soft_32.asx");
                    sw.WriteLine("DR Jazz,http://www.dr.dk/netradio/metafiler/asx/DR_Jazz_32.asx");
                    sw.WriteLine("DR Moden Rock,http://www.dr.dk/netradio/metafiler/asx/DR_Modern_Rock_32.asx");
                    sw.WriteLine("DR RogB,http://www.dr.dk/netradio/metafiler/asx/DR_RogB_32.asx");
                    sw.WriteLine("DR Boogie,http://www.dr.dk/netradio/metafiler/asx/DR_Boogie_32.asx");
                    sw.WriteLine("DR HipHop,http://www.dr.dk/netradio/metafiler/asx/DR_HipHop_32.asx");
                    sw.WriteLine("DR Spillemand,http://www.dr.dk/netradio/metafiler/asx/DR_Spillemand_32.asx");
                    sw.WriteLine("DR Dansk Top,http://www.dr.dk/netradio/metafiler/asx/DR_Dansktop_32.asx");
                    sw.WriteLine("DR Allegro,http://www.dr.dk/netradio/metafiler/asx/DR_Allegro_32.asx");
                    sw.WriteLine("DR Contry,http://www.dr.dk/netradio/metafiler/asx/DR_Country_32.asx");
                    sw.WriteLine("DR Klassisk,http://www.dr.dk/netradio/metafiler/asx/DR_Klassisk_32.asx");
                    sw.WriteLine("DR World,http://www.dr.dk/netradio/metafiler/asx/DR_World_32.asx");
                    sw.WriteLine("DR Oline,http://www.dr.dk/netradio/metafiler/asx/DR_Oline_32.asx");
                    sw.WriteLine("DR Electronica,http://www.dr.dk/netradio/metafiler/asx/DR_Electronica_32.asx");
                    sw.WriteLine("DR Barometer,http://www.dr.dk/netradio/metafiler/asx/DR_Barometer_32.asx");
                    sw.WriteLine("P5000,http://www.dr.dk/netradio/metafiler/asx/DR_P5000_32.asx");
                    sw.WriteLine("NOVA FM,mms://stream.ventelo.dk/FM5");
                    sw.WriteLine("RadioSoft,http://radiosoft.dk/netradio/soft.asx");
                    sw.WriteLine("Radio100 FM,http://radio100fm.dk/netradio/asx");
                    sw.WriteLine("Radio sydhavsøerne,mms://media.xstream.dk/Radio_Sydhavsoerene");
                    sw.WriteLine("GULDfm,http://mediamaker.dk/radiostationer/asxGenerator.php?ID[]=56");
                    sw.WriteLine("Radio2,http://dix.media.webpartner.dk/radio2-96?MSWMExt=.asf");
                    sw.WriteLine("NERadio Nonstop,http://www.neradio.fm/listen.asx");
                    sw.WriteLine("Oldies,http://www.sky.fm/wma/oldies.asx");
                    sw.WriteLine("NRJ,mms://85.233.229.254:8000/NRJ");
                    sw.WriteLine("COOLfm,http://www.coolfm.dk/Cool%20FM%20128%20KB.asx");
                    sw.WriteLine("MMRADIO,mms://media3.xstream.dk/mmradio");
                    sw.WriteLine("Radio Jazz,http://83.133.64.106:8000/");
                    sw.WriteLine("DI HOUSE,http://www.di.fm/wma/house.asx");
                    sw.WriteLine("DI TRANCE,http://repc-1.adinjector.net/amtmsvc/gateway.asp?stationid=109&adformat=3");
                    sw.WriteLine("Radio 3,mms://media.xstream.dk/Radio_3");
                    sw.WriteLine("Radio Alfa,mms://media.xstream.dk/Radio_Alfa");
                    sw.WriteLine("Radio Skive,mms://media.xstream.dk/Radio_Skive");
                    sw.WriteLine("SPECIFIC RADIO,http://specific.dk/listen.wvx");
                    sw.WriteLine("Radio Mojn,mms://media.xstream.dk/Radio_Mojn");
                    sw.WriteLine("The Voise,http://dix.media.webpartner.dk/voice128");
                    sw.WriteLine("SKY.fm - Roots Reggae,http://www.sky.fm/wma/rootsreggae.asx");
                    sw.WriteLine("SKY.fm - Classical & Flamenco Guitar,http://repc-1.adinjector.net/amtmsvc/gateway.asp?stationid=1334&adformat=3");
                    sw.WriteLine("SKY.fm - Da tempo lounge,http://www.sky.fm/wma/datempolounge.asx");
                    sw.WriteLine("Radio ABC,mms://media.xstream.dk/radio_abc_low");

                }
            }


            List<Station> stations = new List<Station>();

            // Open the file to read from.
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    string[] arr = s.Split(',');
                    Station station = new Station();
                    station.Name = arr[0];
                    station.Link = arr[1];
                    stations.Add(station);
                }
            }

            dropdown.DisplayMember = "Name";
            dropdown.ValueMember = "Link";
            dropdown.DataSource = stations;

        }



        protected void Exit_Click(Object sender, System.EventArgs e)
        {
            Close();
        }
        protected void Hide_Click(Object sender, System.EventArgs e)
        {
            Hide();
        }
        protected void Show_Click(Object sender, System.EventArgs e)
        {
            Show();
        }
        protected void Stop_Click(Object sender, System.EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.stop();
        }
        protected void Play_Click(Object sender, System.EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.play();
        }
        protected void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
        {

            axWindowsMediaPlayer1.URL = dropdown.SelectedValue.ToString();
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                this.m_notifyicon.Dispose();
            }
            base.Dispose(disposing);
        }


        protected void button1_Click(object sender, EventArgs e)
        {
            List<Station> stations = new List<Station>();
            string path = @"c:\Stations.txt";

            //Tjekker om der er tekst i linkboxen
            if (textBox1.Text == "")
            {
                MessageBox.Show("Skriv en station");
            }
            else
            {
                if (textBox1.Text.Contains(",") || textbox2.Text.Contains(","))
                {
                    MessageBox.Show("Feltet må ikke indholde komma!");
                }
                else
                {
                    //Indsætter linket i textfilen
                    SaveStations();

                }

                //Henter linksene fra textfilen til dropdown
                LoadStations();
                textBox1.Text = "";
                textbox2.Text = "";
            }
        }

        private void button2_about_Click(object sender, EventArgs e)
        {
            AboutBox1 about = new AboutBox1();
            about.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form_help help = new Form_help();
            help.Show();
        }
    }
}
Avatar billede Spotgun Seniormester
22. juni 2009 - 14:02 #24
Prøv med det her (er ikke testet):

    public partial class Form1 : Form
    {
        //WMPLib.WindowsMediaPlayer Player;
        private NotifyIcon m_notifyicon;
        private ContextMenu m_menu;

        private List<Station> stations; // Har flyttet den herud, så stations listen kan bruges i hele programmet.

        protected struct Station
        {
            public string Name { get; set; }
            public string Link { get; set; }
        }

        public Form1()
        {
            InitializeComponent();
            List<Station> stations = new List<Station>(); // Du skal kun oprette stations listen én gang

            Text = "WebRadio - MiniMode";

            m_menu = new ContextMenu();
            m_menu.MenuItems.Add(0,
                new MenuItem("Show", new System.EventHandler(Show_Click)));
            m_menu.MenuItems.Add(1,
                new MenuItem("Hide", new System.EventHandler(Hide_Click)));
            m_menu.MenuItems.Add(2,
                new MenuItem("Play", new System.EventHandler(Play_Click)));
            m_menu.MenuItems.Add(3,
                new MenuItem("Stop", new System.EventHandler(Stop_Click)));
            m_menu.MenuItems.Add(4,
                new MenuItem("Exit", new System.EventHandler(Exit_Click)));


            m_notifyicon = new NotifyIcon();
            m_notifyicon.Text = "Right click for menu";
            m_notifyicon.Visible = true;
            m_notifyicon.Icon = new Icon(GetType(), "Icon1.ico");
            m_notifyicon.ContextMenu = m_menu;

        }

        protected void LoadStations()
        {
            stations.Clear(); // Her rydder vi listen for indhold
            string path = @"c:\Stations.txt";
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    string[] arr = s.Split(',');
                    Station station = new Station();
                    station.Name = arr[0];
                    station.Link = arr[1];
                    stations.Add(station);
                }
            }
            // Nu er listen fyldt, så opdaterer vi dropdowns datasource med den nye liste
            dropdown.DisplayMember = "Name";
            dropdown.ValueMember = "Link";
            dropdown.DataSource = stations;
        }

        protected void SaveStations()
        {
            string path = @"c:\Stations.txt";
            using (StreamWriter sw = new StreamWriter(path, true))
            {
                sw.WriteLine(textBox1.Text + "," + textbox2.Text);
            }
        }


        protected void Form1_Load(object sender, EventArgs e)
        {
           
            string path = @"c:\Stations.txt";
            if (!File.Exists(path))
            {
                // Create a file to write to.
                using (StreamWriter sw = File.CreateText(path))
                {
                    sw.WriteLine("P1,http://www.dr.dk/netradio/metafiler/asx/DR_P1_32.asx");
                    sw.WriteLine("P2,http://www.dr.dk/netradio/metafiler/asx/DR_P2_32.asx");
                    sw.WriteLine("P3,http://www.dr.dk/netradio/metafiler/asx/DR_P3_32.asx");
                    sw.WriteLine("DR POP,http://www.dr.dk/netradio/metafiler/asx/DR_Pop_DK_32.asx");
                    sw.WriteLine("DR Hit,http://www.dr.dk/netradio/metafiler/asx/DR_Hit_128.asx");
                    sw.WriteLine("DR Evergreen,http://www.dr.dk/netradio/metafiler/asx/DR_Evergreen_32.asx");
                    sw.WriteLine("DR Folk,http://www.dr.dk/netradio/metafiler/asx/DR_Folk_32.asx");
                    sw.WriteLine("DR Rock,http://www.dr.dk/netradio/metafiler/asx/DR_Rock_32.asx");
                    sw.WriteLine("DR Soft,http://www.dr.dk/netradio/metafiler/asx/DR_soft_32.asx");
                    sw.WriteLine("DR Jazz,http://www.dr.dk/netradio/metafiler/asx/DR_Jazz_32.asx");
                    sw.WriteLine("DR Moden Rock,http://www.dr.dk/netradio/metafiler/asx/DR_Modern_Rock_32.asx");
                    sw.WriteLine("DR RogB,http://www.dr.dk/netradio/metafiler/asx/DR_RogB_32.asx");
                    sw.WriteLine("DR Boogie,http://www.dr.dk/netradio/metafiler/asx/DR_Boogie_32.asx");
                    sw.WriteLine("DR HipHop,http://www.dr.dk/netradio/metafiler/asx/DR_HipHop_32.asx");
                    sw.WriteLine("DR Spillemand,http://www.dr.dk/netradio/metafiler/asx/DR_Spillemand_32.asx");
                    sw.WriteLine("DR Dansk Top,http://www.dr.dk/netradio/metafiler/asx/DR_Dansktop_32.asx");
                    sw.WriteLine("DR Allegro,http://www.dr.dk/netradio/metafiler/asx/DR_Allegro_32.asx");
                    sw.WriteLine("DR Contry,http://www.dr.dk/netradio/metafiler/asx/DR_Country_32.asx");
                    sw.WriteLine("DR Klassisk,http://www.dr.dk/netradio/metafiler/asx/DR_Klassisk_32.asx");
                    sw.WriteLine("DR World,http://www.dr.dk/netradio/metafiler/asx/DR_World_32.asx");
                    sw.WriteLine("DR Oline,http://www.dr.dk/netradio/metafiler/asx/DR_Oline_32.asx");
                    sw.WriteLine("DR Electronica,http://www.dr.dk/netradio/metafiler/asx/DR_Electronica_32.asx");
                    sw.WriteLine("DR Barometer,http://www.dr.dk/netradio/metafiler/asx/DR_Barometer_32.asx");
                    sw.WriteLine("P5000,http://www.dr.dk/netradio/metafiler/asx/DR_P5000_32.asx");
                    sw.WriteLine("NOVA FM,mms://stream.ventelo.dk/FM5");
                    sw.WriteLine("RadioSoft,http://radiosoft.dk/netradio/soft.asx");
                    sw.WriteLine("Radio100 FM,http://radio100fm.dk/netradio/asx");
                    sw.WriteLine("Radio sydhavsøerne,mms://media.xstream.dk/Radio_Sydhavsoerene");
                    sw.WriteLine("GULDfm,http://mediamaker.dk/radiostationer/asxGenerator.php?ID[]=56");
                    sw.WriteLine("Radio2,http://dix.media.webpartner.dk/radio2-96?MSWMExt=.asf");
                    sw.WriteLine("NERadio Nonstop,http://www.neradio.fm/listen.asx");
                    sw.WriteLine("Oldies,http://www.sky.fm/wma/oldies.asx");
                    sw.WriteLine("NRJ,mms://85.233.229.254:8000/NRJ");
                    sw.WriteLine("COOLfm,http://www.coolfm.dk/Cool%20FM%20128%20KB.asx");
                    sw.WriteLine("MMRADIO,mms://media3.xstream.dk/mmradio");
                    sw.WriteLine("Radio Jazz,http://83.133.64.106:8000/");
                    sw.WriteLine("DI HOUSE,http://www.di.fm/wma/house.asx");
                    sw.WriteLine("DI TRANCE,http://repc-1.adinjector.net/amtmsvc/gateway.asp?stationid=109&adformat=3");
                    sw.WriteLine("Radio 3,mms://media.xstream.dk/Radio_3");
                    sw.WriteLine("Radio Alfa,mms://media.xstream.dk/Radio_Alfa");
                    sw.WriteLine("Radio Skive,mms://media.xstream.dk/Radio_Skive");
                    sw.WriteLine("SPECIFIC RADIO,http://specific.dk/listen.wvx");
                    sw.WriteLine("Radio Mojn,mms://media.xstream.dk/Radio_Mojn");
                    sw.WriteLine("The Voise,http://dix.media.webpartner.dk/voice128");
                    sw.WriteLine("SKY.fm - Roots Reggae,http://www.sky.fm/wma/rootsreggae.asx");
                    sw.WriteLine("SKY.fm - Classical & Flamenco Guitar,http://repc-1.adinjector.net/amtmsvc/gateway.asp?stationid=1334&adformat=3");
                    sw.WriteLine("SKY.fm - Da tempo lounge,http://www.sky.fm/wma/datempolounge.asx");
                    sw.WriteLine("Radio ABC,mms://media.xstream.dk/radio_abc_low");

                }
            }

            LoadStations();
        }



        protected void Exit_Click(Object sender, System.EventArgs e)
        {
            Close();
        }
        protected void Hide_Click(Object sender, System.EventArgs e)
        {
            Hide();
        }
        protected void Show_Click(Object sender, System.EventArgs e)
        {
            Show();
        }
        protected void Stop_Click(Object sender, System.EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.stop();
        }
        protected void Play_Click(Object sender, System.EventArgs e)
        {
            axWindowsMediaPlayer1.Ctlcontrols.play();
        }
        protected void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.URL = dropdown.SelectedValue.ToString();
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                this.m_notifyicon.Dispose();
            }
            base.Dispose(disposing);
        }


        protected void button1_Click(object sender, EventArgs e)
        {
            string path = @"c:\Stations.txt";

            //Tjekker om der er tekst i linkboxen
            if (textBox1.Text == "")
            {
                MessageBox.Show("Skriv en station");
            }
            else
            {
                if (textBox1.Text.Contains(",") || textbox2.Text.Contains(","))
                {
                    MessageBox.Show("Feltet må ikke indholde komma!");
                }
                else
                {
                    //Indsætter linket i textfilen
                    SaveStations();
                }

                //Henter linksene fra textfilen til dropdown
                LoadStations();
                textBox1.Text = "";
                textbox2.Text = "";
            }
        }

        private void button2_about_Click(object sender, EventArgs e)
        {
            AboutBox1 about = new AboutBox1();
            about.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form_help help = new Form_help();
            help.Show();
        }
    }
Avatar billede Dartemis Nybegynder
22. juni 2009 - 14:26 #25
nu har jeg prøvet at sætte den kode ind du har sendt tilbage og det virker desværre stadig ikke?? :S:S
Avatar billede Spotgun Seniormester
22. juni 2009 - 14:38 #26
My bad, manglede lige at få en linie ind :)

Sæt dette ind:
            dropdown.DataSource = null;

Før denne linie:
            dropdown.DisplayMember = "Name";

Så skulle den gerne opdatere rigtigt. Man er nødt til at fjerne datasourcen først og sætte den på igen, før den fatter at indholdet i listen er opdateret.
Avatar billede Dartemis Nybegynder
22. juni 2009 - 14:40 #27
hehe okay tak :D jeg prøver lige :D
Avatar billede Dartemis Nybegynder
22. juni 2009 - 14:47 #28
Ahhhhh det virker !!! :D 100000tak ! :D

ved du om det er muligt at gøre sådan at når man dobbelt klikker på tryicon'et at så stopper musikken eller starter musikken ?? som sådan en hurtigt start stop. ?
Avatar billede Spotgun Seniormester
22. juni 2009 - 18:49 #29
Det var godt.

Du skal vel bare styre det i en Click event på dit notify icon. Evt. med en bool til at styre om du er igang med at afspille eller ej, og så blot starte eller stoppe i forhold til den. Husk at opdatere bool'en ved dine normale start/stop knapper også, så du ikke kommer ud af sync med om du gør det ene eller det andet.
Avatar billede Dartemis Nybegynder
23. juni 2009 - 10:48 #30
Okay :D tak jeg prøver at finde ud af det :D mange tak ! :D
Avatar billede Dartemis Nybegynder
10. september 2009 - 08:36 #31
Hej igen :)

Jeg er kommet til at slette hele min mappe med alt indholdet i så måtte starte forfra :S

nu har jeg taget koden her fra og prøvet at redigere den så den passer til :)

men nu får jeg en fejl i "stations.Clear();" i LoadStations delen,

Fejl: Objektreferencen er ikke indstillet til en forekomst af et object.

hva betyder det??

Kode:

protected void LoadStations()
        {
            stations.Clear(); // Her rydder vi listen for indhold
            string path = @"c:\Stations.txt";
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    string[] arr = s.Split(',');
                    Station station = new Station();
                    station.Name = arr[0];
                    station.Link = arr[1];
                    stations.Add(station);
                }
            }
Avatar billede Spotgun Seniormester
10. september 2009 - 08:48 #32
Det er fordi du mangler at deklarere din List<Station> stations variabel et sted i din kode. Kig på mit svar i #24, så har du et godt udgangspunkt at arbejde videre fra. :)
Avatar billede Dartemis Nybegynder
10. september 2009 - 08:53 #33
dit svar #24 er den jeg har copy pasted ind i VS :D

så har jeg sat 
dropdown.DataSource = null;

ind da du skrev du havde glemt den :) og så er det nu jeg prøver at køre det :p

det virkede den gang, men ved ikke liiige hvad den laver nu :p

men hvad mener du med
"mangler at deklarere din List<Station> stations variabel"

hva betyder det ?
Avatar billede Spotgun Seniormester
10. september 2009 - 09:02 #34
I forhold til løsningen i #24, så må jeg have ment at denne metode skulle se således ud, i stedet for det jeg først skrev i #24:

        protected void LoadStations()
        {
            stations.Clear(); // Her rydder vi listen for indhold
            string path = @"c:\Stations.txt";
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    string[] arr = s.Split(',');
                    Station station = new Station();
                    station.Name = arr[0];
                    station.Link = arr[1];
                    stations.Add(station);
                }
            }
            // Nu er listen fyldt, så opdaterer vi dropdowns datasource med den nye liste
            dropdown.DataSource = null;
            dropdown.DisplayMember = "Name";
            dropdown.ValueMember = "Link";
            dropdown.DataSource = stations;
        }

Og mht. den manglende variabel, så er det en af de øverste linier du måske har glemt:

        private List<Station> stations; // Har flyttet den herud, så stations listen kan bruges i hele programmet
Avatar billede Spotgun Seniormester
10. september 2009 - 09:06 #35
Og husk lige at ændre denne linie i constructoren (public Form1 metoden):

          List<Station> stations = new List<Station>(); // Du skal kun oprette stations listen én gang

Skal ændres til

          stations = new List<Station>();
Avatar billede Dartemis Nybegynder
10. september 2009 - 09:27 #36
cool har fået det til at virke..

jeg ændrede stations til stations2 :/ det fik det åbenbart til at virke :S:S

men mange tak for den hurtige respons :D:D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester