21. november 2003 - 11:35Der er
31 kommentarer og 1 løsning
brug af listview kontrol
jeg importerer data fra tekstfiler ind i mit program det data vil jeg så gerne smide i en listview kontrol antal kolonner og rækker skal bestemmes dynamisk ud fra tekstfilerne men hvordan gør jeg det på en smart og effektiv måde har rodet lidt men kan dårligt nok få den til at sætte en eneste række ind er der nogle der evt har nogle kode eksempler på noget lignende det jeg skal lave? eller nogle ideer til hvordan det kunne foregå?
nej det er feks komma separerede filer med statistik data så hver linie i tekstfilen skal smides ind på en række i listview kontrollen og hver komma separerede værdi skal ha sin egen kolonne
Jeg ville læse hver linie ind i en variabel, bruge split på variablen, og smide ind i listview:
Dim MinString As String Dim FilNummer as Integer Dim MitArray() as String Dim i as long
Filnummer = FreeFile Open "C:\Fil.txt" For Input As #Filnummer while not eof(#Filnummer) Line Input #Filnummer, MinString MitArray = Split(MinString, ",") for i = 0 to Ubound(MitArray) 'smid posterne fra MitArray ind i ListBox Next i Close #Filnummer
Har ikke VB her, og kan ikke huske hvordan man smider ind i flere kolonner. Måske er det så simpelt som
List1.Additem post1 & vbtab & post2
Hvis det er sådan kan du jo danne en string med vbtabs i dit loop
Filnummer = FreeFile Open "C:\Fil.txt" For Input As #Filnummer while not eof(#Filnummer) Line Input #Filnummer, MinString intNr = intNr + 1 MitArray = Split(MinString, ",") ListView1.ListItems.Add intNr, , MitArray(0) ' første kolonne for i = 1 to Ubound(MitArray) ListView1.ListItems(intNr).SubItems(i) = MitArray(i) 'øvrige kollonner Next i Close #Filnummer
Der er muligvis fejl - lavet uden VB til at teste. Du kan jo så putte en masse ekstra ind, så programmet ikke crasher, hvis der fx. er en linie uden komma eller en tom linie i filen ;o)
ingen af dem melder fejl men de tilføjer heller ikke nogle subitems i listview kontrollen tænkte at det måske så var fordi at der kun var default kolonne dvs den første og at den så derfor måske ikke kunne smide data i en ikke eksisterende men så burde den sige fejl plus at jeg prøvede at oprette en masse tomme kolonner i properties sheetet så jeg fatter det simpelthen ik hehe
sjh det eksempel du har lavet der er det til den listview der er med i components 5.0 pakken? for hvis jeg prøver at bruge din metode med den fra component 6.0 pakken så siger den fejl :/
jeg prøvede din dengang du skrev den men fik det aldrig til at spille så denne gang har jeg brugt den fa sjh kan dog ikke lige se hvorfor det eksempel du skrev ikke sku virke jeg har nok selv fået fucket det hehe
brugte det sidste der hvor så vidt jeg kan se den eneste forskel er at han bruger Call .ListItems.Add(j, , arrData(0)) istedet for Set .ListItems.Add(j, , arrData(0)) :)
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.