Avatar billede ichiban Nybegynder
04. marts 2004 - 23:26 Der er 3 kommentarer og
1 løsning

Dynamiske arrays

Hej Alle sammen

Nu har jeg de sidste par timer forsøgt, at indlæse en csv fil fra Excel vha. 2 ArrayLists. Jeg nemlig ikke hvor mange linjer, og hvor mange elementer i linjen, der er.
Så det skal være dynamisk i begge retninger.

Koden virker ikke lige nu, men det problem, som jeg ikke kan komme uden om er at det kun er den sidste linje, jeg kan tilgå i ArrayListen.

Jeg har sat kaffe over, for jeg vil meget gerne have dette op at køre inden jeg går i seng.

Mvh.
Jens







        private void button1_Click(object sender, System.EventArgs e)
        {
            //Indeholder en linje, som streng.
            string linje ="";

            //Element indeholder et element i linjen
            string element ="";

            //elementer indeholder elementerne i en linje.
            ArrayList elementer = new ArrayList();

            //Linjer, indeholder alle linjer.
            ArrayList Linjer = new ArrayList();
           
            try
            {
                //Indlæser fil i string
                StreamReader Fil = new StreamReader("testfil.csv");

                //Læser filen.
                while(Fil.Peek() > -1)
                {
                    linje= Fil.ReadLine();

                    foreach(char bogstav in linje)
                    {
                        if (bogstav == ';')
                        {
                            elementer.Add(element);
                            element = "";
                        }
                        else
                        {
                            element+= bogstav;
                        }

                    }
                    //Tilføjer det sidste element, da denne ikke efterfølges af et ";".
                    elementer.Add(element);

                    //Tilføjer elementerne i linjen til Linjer.
                    Linjer.Add(elementer);

                    //Blanker elementer.
                    elementer.Clear();
                }

                //Lukker filen efter brug.
                Fil.Close();
            }
            catch (Exception Exc)
            {
                MessageBox.Show ("Problemer med at læse filen \n"+ Exc.ToString(), "Fil fejl",
                    MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);               
            }

            foreach(ArrayList EnkeltLinje in Linjer)
            {
                foreach(string ElementILinje in EnkeltLinje)
                {
                    MessageBox.Show (ElementILinje, "Arraylist debug",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);               
                }
            }
        }
Avatar billede arne_v Ekspert
04. marts 2004 - 23:34 #1
Prøv at:

flytte denne new elementer ned under while:

                //Læser filen.
                while(Fil.Peek() > -1)
                {

                    ArrayList elementer = new ArrayList();
                   
udkommentere clear:

//elementer.Clear();
Avatar billede ichiban Nybegynder
04. marts 2004 - 23:47 #2
Arne du har en klarsyn, der er helt fantasisk. Nu er problemet blot.......
hvad skal jeg gøre med alt den kaffe:)
Avatar billede arne_v Ekspert
05. marts 2004 - 08:38 #3
Lyder som om jeg kan ligge et svar
Avatar billede snepnet Nybegynder
05. marts 2004 - 17:13 #4
Jeg griner stadig over den med kaffen :)))))
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