13. april 2006 - 02:52Der er
13 kommentarer og 2 løsninger
Bedste måde at gemme alle postnummre
Hej
Jeg skal have tilføjet en funktion til mit program som automatisk skriver bynavnet ind når man indtaster postnummeret i et felt. Mit spørgsmål er så bare, hvordan dataen gemmes bedst uden at være langsomt om at hente det. Er det bedst at undgå database? Kan jeg bruge arrays eller lave en slags vituel datagrid jeg kan søge i. Nogen der har en ide til hvilket der henholdsvis fylder mindst og hurtigst finder dataen. Vil det eksempelvis fylde for meget at have i hukommelsen, hvilket jo nok ville være hurtigst.
Hm.. Jeg har nogle tykke bøger jeg har købt (den største på 1300 sider) om vb2005 men jeg kunne ikke finde ret meget om dictionary og hvordan jeg laver dem, de var kun nævnt ganske kort under noget med hashtable. Vil i hjælpe med et lille eksempel?
en singleton er en klasse som der kun kan eksistere en instans af
Synes godt om
Slettet bruger
14. april 2006 - 06:15#8
Man kan godt bruge en singleton i en web app. Så skal man bare sørge for at den er tråd-sikker (double lock pattern) så behøver man ikke bruge applikationsobject, hvilket jeg altid har fundet en dårlig ting, men det er en smags sag helt og holdent. En løsning uden applikationsobjekt og med singleton i stedet ville gøre at det kunne bruges ligeværdigt i en web og en win-app.
Det hvor det i virkeligheden får betydning er hvis vores ven her skal have det til at fungerer i en web-form uden af vende serveren først. Egentligt derfor det var interessant om det er en win-app. eller en web-app.
med hensyn til double locking så er det sidste jeg har læst at det heller ikke virker i .NET generelt (mere specifikt virker det på x86 og x86-64 men ikke på Itanium)
Synes godt om
Slettet bruger
15. april 2006 - 06:30#12
Double locking fungerer på .NET den variable som bruges skal blot være defineret volatile, da man derved sikre at write er lavet færdigt inden andre kan se variablen.
lille eksempel. private object syncRoot = new object(); private bool _CacheFilled = false;
ovenstående kan fejle da checket for _CacheFilled kan optimeres ud men hvis _CacheFilled defineres som følger fungerer det som det skal.
private volatile bool _CacheFilled = false;
Uden volatile kan man stort set lige så godt lade være i ved et release build.-
Synes godt om
Slettet bruger
15. april 2006 - 06:33#13
Danm: Dictionary i .NET2 er en Hashtable med generics og ja det er den hurtigste måde med mindre du vil bruge lidt ekstra RAM og have postnumrene liggende i et Array hvor index er postnummer - men du skal så have en markering af de postnumre som ikke er "lovlige", men til dit brug tror jeg ikke sådan en afviklingsoptimering gør nogen gavn så hold du bare Dictionary, det må vist anses for den fornuftige løsning her.
oki.. kryptos smid svar.. så er der lidt til deling..
Synes godt om
Slettet bruger
16. april 2006 - 06:12#15
x
Synes godt om
Ny brugerNybegynder
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.