Avatar billede troublemaker Nybegynder
03. november 2005 - 15:52 Der er 4 kommentarer og
1 løsning

Udskriv en fils indhold i en ListView

det jeg helt præcis vil er at loade filen ind og så udskrive hver linje i min listview men splitte det op hvor der er mellemrum.

Sådan her ser filen fx ud:
Hej med dig!
Haha ew kak
osv.
Jeg vil så i min listview have fx "Hej med dig!" til at "Hej" kommer i første kolonne og "med" i den næste osv.

Jeg har prøvet mig frem med dette her men der får jeg denne her fejl.

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    StreamReader sr = new StreamReader(openFileDialog1.FileName);
    ArrayList arrList = new ArrayList();
    arrList.AddRange(sr.ReadToEnd().Split('\n'));

    int i = 0;
    foreach (string str in arrList)
    {
        i += 1;
        str.Split(' ');
        listView1.Items.Add(str[0].ToString);

        for (int j = 1; j < str.Length - 1; j++)
        {
            listView1.Items[i].SubItems.Add(str[j].ToString);
        }
    }

    sr.Close();
}

Nogen der kan få det der til at virke eller har en anden metode til at gøre det samme på?
Avatar billede ladyhawke Novice
03. november 2005 - 16:10 #1
hvordan har du sat dit listview op? (er du sikker på du altid har kolonner nok til den længste sætning (antal ord) i din fil?)
Avatar billede troublemaker Nybegynder
03. november 2005 - 16:16 #2
Ja det er der og fejlen den kommer med er

Argument '1': cannot convert from 'method group' to 'string'
til listView1.Items.Add(str[0].ToString);

og

Argument '1': cannot convert from 'method group' to 'System.Windows.Forms.ListViewItem.ListViewSubItem'
til listView1.Items[i].SubItems.Add(str[j].ToString);
Avatar billede nielle Nybegynder
03. november 2005 - 19:21 #3
F.eks. sådan:

if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
    this.listView1.Clear();
    this.listView1.View = View.Details;
    this.listView1.GridLines = true;

    int maxCol = 0;

    using (StreamReader sr = new StreamReader(this.openFileDialog1.FileName))
    {
        string linje;
        while ((linje = sr.ReadLine()) != null)
        {
            string [] ord = linje.Split(' ');
            maxCol = Math.Max(maxCol, ord.Length);

            ListViewItem item = new ListViewItem(ord[0], 0);

            for (int i=1; i<ord.Length; i++)
            {
                item.SubItems.Add(ord[i]);
            }

            this.listView1.Items.Add(item);
        }
    }
               
    for (int col=1; col<=maxCol; col++)
    {
        this.listView1.Columns.Add(col.ToString(), this.listView1.Width/maxCol, HorizontalAlignment.Left);
    }
}
Avatar billede troublemaker Nybegynder
05. november 2005 - 18:12 #4
hov jeg fik aldrig lukke dette spm. men hvis du lige fixet et svar nielle så får du de points da jeg fik det til at virke med dit, bare skrevet lidt om ;)
Avatar billede nielle Nybegynder
05. november 2005 - 19:05 #5
Svar :^)
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