---
title: "Recent lista"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/97662-recent-lista"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2004-02-18T17:19:09.000Z"
updated: "2004-02-20T13:53:37.000Z"
replies: 8
views: 322
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/97662-recent-lista"
---

# Recent lista

## #1 — saw, 2004-02-18T17:19Z

Jag har hittat lite koder på att göra en resent-lista, som fungerar bra.
Programmeraren hadde dock "glömt" att skicka med koden för att skriva in i registret, så det fick jag ta hand om själv:

```
public void SparaMenu(string shortName,string fFilNamn)
		{//denna har jag gjort själv
			RegistryKey regKey = Registry.CurrentUser.CreateSubKey("Software\\SAW\\Music_Translater\\ProjectMRUList");
			regKey.SetValue(shortName, fFilNamn);
		}
```

Som denna är nu, så kan ju listan bli hur lång som helst, frågan är
hur gör jag för att begränsa antalet filer. Jag misstänker att det rätta är att göra det när man skriver till registret, inte när man skall hämta.

Skulle jag grunna på att ta med ett datum kanske och sortera bort därefter? I såfall hur? :q

Permalänk: https://www.webforum.nu/p/97662

## #2 — renholm, 2004-02-18T18:44Z

Är väl egentligen bara att skapa t.ex nycklarna A,B,C,D,E osv och sedan kontrollerar din kod om alla "slots" är fylld, i fall de är de så tas värdet ur E bort och alla flyttas ner ett steg A-B, B-C osv.

Permalänk: https://www.webforum.nu/p/1279693

## #3 — saw, 2004-02-19T19:16Z

Jag måste nog be om hjälp, jag har lite svårt för det här.
Problemet är ju att flytta ner.
Jag har börjat på ett litet experiment här:

```
string  nyText = textBox1.Text;
string 	oldEtt=   namn[0];
string 	oldTvå=   namn[1];
string 	oldTre=   namn[2];
string 	oldFyra=  namn[3];					

namn[0]= nyText;
namn[1]= oldEtt;
namn[2]= oldTvå;
namn[3]= oldTre;
namn[4]= oldFyra;
```

men det blir ju helt galet.
Det var ju tänkt att om man fyller i textboxen(jag testar med den) 
så skall ju det hela flyttas ett steg ner. Som detta är så flyttas
bara den första, och ingenting mera.

Vad missar jag?

Permalänk: https://www.webforum.nu/p/1280169

## #4 — Marcus E, 2004-02-19T19:58Z

Lägg allt i en ArrayList och kör en Insert i början.

Permalänk: https://www.webforum.nu/p/1280188

## #5 — saw, 2004-02-19T21:41Z

Hej Marcus, jag har inte jobbat så mycket med Arrayer, hur menar du med en insert?

Permalänk: https://www.webforum.nu/p/1280231

## #6 — saw, 2004-02-20T01:19Z

Jag är en bit på vägen, men jag kan bara flytta ner ett steg.

```
listBox1.Items.Clear(); 
 				System.Collections.ArrayList minArrayList;
				minArrayList = new ArrayList(4);
				
				 a = "Benni";
				 b = "Johan";
				 c = "Dennis";
				 d = "Krille";  				

				minArrayList.Add(a);
				minArrayList.Add(b);
				minArrayList.Add(c);
				minArrayList.Add(d);
				
				if(textBox1.Text !="")
				{ 
					minArrayList.Contains(5);
					minArrayList.Clear();
					minArrayList.Add(textBox1.Text);
					minArrayList.Add(a);
					minArrayList.Add(b);
					minArrayList.Add(c);
					for(int i =0;i<	minArrayList.Count;i++)
					{
						listBox1.Items.Add(minArrayList[i]);
					}

				}
```

om jag gör en insert till, så med denna koden så ändras bara den
första. Hur bör jag fortsätta?

Permalänk: https://www.webforum.nu/p/1280281

## #7 — Phorpher, 2004-02-20T10:36Z

```
public const int MAX_RECENT = 5;

private ArrayList myArray = new ArrayList(MAX_RECENT); // ArrayList med tidigare filer...

...

AddRecent(TextBox1.text); // Lägg till senast använda "fil".
...

public void AddRecent(string latest)
{
    myArray.Insert(0, latest);

    if(myArray.Count > MAX_RECENT)
       myArray.RemoveAt(MAX_RECENT);
}
```

Permalänk: https://www.webforum.nu/p/1280398

## #8 — saw, 2004-02-20T12:10Z

Helt underbart, tack för hjälpen.
Nu återstår att se om jag lyckas med att få in detta i skarp vertion.
Tänkt är att detta skall vara till min recentlista, jag antar att jag bör ta bort nycklarna när jag väl har hämtat min arraylist?

Permalänk: https://www.webforum.nu/p/1280463

## #9 — saw, 2004-02-20T13:53Z

Det finns ett par saker som inte fungerar bra.
1)  Av någon anledning så lyckas jag inte med att ta bort nycklen
i registret.
2) Det kanske hör ihop med förra, men jag ville ju helst att den filen som öppnades sist, också får det lägsta Arraynr(kanske det inte heter)

Om ni ville slå en blick här:

```
public void SparaMenu(string fFilNamn)
{//registrering för öppnade filer
FileInfo finfo1; 
Info.Text= fFilNamn + " är nu registrerad";
RegistryKey regKey = Registry.CurrentUser.OpenSubKey
("Software\\SAW\\Music_Translater\\ProjectMRUList");
	
if (regKey == null)
{
 return;
}  			
myArray = new ArrayList();	
String[] filename = regKey.GetValueNames(); 
IEnumerator iEnum = filename.GetEnumerator();
// Iterate through all items				
			 
while(iEnum.MoveNext())
{
String val = (String)iEnum.Current;
String data = (String)regKey.GetValue(val);
myArray.Add(data); 			
}
AddRecent(fFilNamn);
myArray.Sort( 1, 3, null );//*******
regKey.DeleteSubKey("Software\\SAW\\Music_Translater\\ProjectMRUList",false);
regKey = Registry.CurrentUser.CreateSubKey("Software\\SAW\\Music_Translater\\ProjectMRUList");

for(int i =0;i<	myArray.Count;i++)
{
finfo1 = new FileInfo(myArray[i].ToString());
regKey.SetValue(finfo1.Name,myArray[i]);
}			
regKey.Close(); 
			
}
```

Vad som händer är följande, ingen delete i registret och heller ingen sortering.
Tacksam för hjälp.

Permalänk: https://www.webforum.nu/p/1280539

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/97662-recent-lista
