Just nu i M3-nätverket
Gå till innehåll

räkna listview.items


andan

Rekommendera Poster

InvalidArgument=Value of '3' is not valid for 'index'

Har du tillräckligt med kolumner då? Annars får du göra lite ListView1.Columns.Add() först.

 

det blir inget fel på koden jag skrev ovan kan bara inte slutföra den..

Vad är det som saknas? Förstår som sagt inte vad det är du skall göra.

Är det flytt av filer som du undrar över?

 

Länk till kommentar
Dela på andra webbplatser

Vill att den ska hämta siffror från en .INI fil rad 5, tecken 10-15. Jag vet att det är subfolders på (path) som innehåller en .INI fil, när den har hämtat siffrona så ska den flytta modermappen åt .INI filen till en annan destinations mapp. Inget fel på min kod ovan kan bara inte bygga in detta.

 

Vore jätte schysst

 

Tackar

 

Länk till kommentar
Dela på andra webbplatser

jag kom på felet, varför det inte gick. lite skumt

 

din tidigare kod på:

temp1 = new String[] { temp2[0], temp2[1], Convert.ToString(kvp.Value) };

 

gör att det går inte adda på columnerna efter den.

det går bra om jag inte trycker på den knappen först.

förutom att den hämtar bara till en skulle vilja att den hämtar till alla.

 

vad är det den gör convert.Tostring(kvp.Value)?

kan man inte flytta den längre ut isåfall??

 

Länk till kommentar
Dela på andra webbplatser

vad är det den gör convert.Tostring(kvp.Value)?

kan man inte flytta den längre ut isåfall??

Den lägger in summan för personen i tredje kolumnen. Visst kan du flytta den ett par kolumner åt höger och lämna plats åt den andra datan i mellankolumnerna

 

Här flyttar jag ut den två steg till höger, så du kan lägga in de andra värdena från filen i kol 3 och 4.

temp1 = new String[] { temp2[0],temp2[1],"", "" , Convert.ToString(kvp.Value)};

 

förutom att den hämtar bara till en skulle vilja att den hämtar till alla.

Den går igenom hela filen, så för mig funkar det,

 

Länk till kommentar
Dela på andra webbplatser

nu fungerar den perfekt..!

 

men kolla på det här, jag byggde ihop din och min kod:

string[] lines = System.IO.File.ReadAllLines("dataapplikationer.txt");

 

string appl = lines[1];

string path = lines[2];

string sort = lines[5];

string dest = lines[3];

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path);

foreach (String sub in Directory.GetDirectories(path))

{

foreach (String file in Directory.GetFiles(sub, "*.ini"))

{

String row5 = File.ReadAllLines(file)[4];

// Hämta tecken 10-15

String section = row5.Substring(9, 6);

 

string name = dir.Name;

DateTime time = DateTime.Now;

ListViewItem item = new ListViewItem(new string[] { sort, name, time.ToString(), "Summa tid", row5, "av:", appl });

this.listView2.Items.Add(item);

this.listView2.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);

}

// Flytta mappen till dest

Directory.Move(sub, dest);

 

}

Men den hämtar hela raden, och hur får jag namnet på subfoldern istället för dir.name.

 

Länk till kommentar
Dela på andra webbplatser

då får jag hela sökvägen, hur får man endast mapp namnet?

 

En sista fråga innan du ska få gå och lägga dig.. =) varit lite jobbig..

 

Du kommer ihåg jobb och namnet som vi filtrerade och la ihop. hur tar man bort 3 av dom sista bokstäverna på namnet när man trycker på knappen??

 

Tack för allt!

 

Länk till kommentar
Dela på andra webbplatser

Det har du ju redan löst med DirectoryInfo-klassen. Bara att göra samma sak med submappen:

System.IO.DirectoryInfo subDI = new System.IO.DirectoryInfo(sub);
String subName=subDI.Name;

 

hur tar man bort 3 av dom sista bokstäverna på namnet när man trycker på knappen??

string Trimmed = s.Remove(s.Length - 3);	

 

Länk till kommentar
Dela på andra webbplatser

Hej Anjuna Moon igen, har en fråga igen.

 

jämföra listview.subitems med varandra från olika listviews.

 

Om listview2 har likadana subitems[0] och [1] som listview1 så ska den ta listview1.subitem[2] minus listview2.subitem[2] och föra in svaret i listview2.subitems[3]. Och flytta över listview1.subitems[3] till listview2.[4]. Efter all detta listview1 items tas bort...

 

Jag är snart klar med programmet Anjuna och letat mycket på microsoft hjälp sidor men det är så svår läst där. Skulle uppskatta hjälp från nån som vet. =)

 

 

Tack Anjuna

 

Länk till kommentar
Dela på andra webbplatser

Hm, det där lät rörigt. Hur ser det ut i övrigt i dina listor. När du säger att något ska föras in i ex. listview2.subitems[3] så behöver du utveckla om du menar att du vill ersätta det gamla värdet på detta index, eller om du vill insert:a ett värde där och flytta ned alla rader med index=3 och högre.

 

Länk till kommentar
Dela på andra webbplatser

Finns inget värde på listview2.subitems[3] då..

 

listview1:

 

columheader,columheader,columheader,columheader,columheader

Online, Namn, DateTime.now , av:initialer, blabla

 

listview2:

 

columheader,columheader,columheader,columheader,columheader,columh

Online, Namn, DateTime.now , summanav tiderna,av:initialer,

 

Blev lite rörigt där =9 men men...

 

Om online och namn är likadana så ta DateTime.now tiden i listview2 minus DateTime.now tiden i listview1(för att få sammanlagda tiden), och skicka över den tiden över till listview2. Och föra över av:initialer. När detta är klart skall detta item i listview1 rederas.

 

Vet Anjuna lite komplicerat att kolla så här...

 

//tack

 

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tror jag förstår. Detta skall utföras så länge det finns matchningar antar jag, dvs.

 

FÖR VARJE RAD_X I LISTA1

-- OM RAD_X MATCHAR NÅGON RAD I LISTA2

------ UTFÖR SUBTR. & FLYTTA DIFF TILL LISTA2

------ FLYTTA AV:INITIALER TILL LISTA2

------ MARKERA RAD_X FÖR SENARE BORTTAGNING

-- SLUT OM

 

därefter borttagning av alla rader som markerats för detta.

 

Detta förutsätter att raderna i Lista2 är unika (med avseende på Online+Namn)

 

 

Länk till kommentar
Dela på andra webbplatser

precis...

 

Jag hade aldrig förstått det där om nån berättade det för mig.. =) hehe

Och jag som är så usel på att förklara..

 

Men det stämmer..

 

Länk till kommentar
Dela på andra webbplatser

andan: Fick just ett uppdrag i knät så är uppbunden ett antal timmar nu. Återkommer senare, eller imorgon. Har nästan skrivit klart ett exempel åt dig, men ibland måste man prioritera arbetsgivaren ;)

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon: Är du inloggad? undrar bara om kod exemplet? är 95% klar..

 

[inlägget ändrat 2007-09-09 01:51:43 av andan]

[inlägget ändrat 2007-09-09 01:51:59 av andan]

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon: Har jag gått rätt till väga på den här koden:

if (listView2.SelectedItems.Count > 0)

{

int number = 0;

foreach (ListViewItem lvi in listView2.Items)

{

bool alreadyExists = true;

while (alreadyExists)

{

alreadyExists = false;

foreach (int existingNumber in lvi.SubItems[1].Text)

{

if (existingNumber == number)

{

alreadyExists = true;

break;

}

}

if (alreadyExists)

{

number = number + 1;

}

}

this.listView2.Items.Add(number.ToString());

}

}

Men jag får bara 0 i mina items.

 

tänkte mig att den ska kopiera ett listview2 item när jag markerar rad och trycker på knapp.

Fast Subitem[1] ska den plussa på 1 och om det namnet finns ska den ytterligare plussa på 1 och fortsätta.....

Typ så här:

listview2:

blabla, k441211, blabla, blabla, blabla, blabla

blabla, k441212, blabla, blabla, blabla, blabla

 

Om jag skulle kopiera första item i listan skulle det bli:

blabla, k441213, blabla, blabla, blabla, blabla

vad gör jag för fel?

tack på förhand..!

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...