Hugeflis Skrevet 21. april 2006 Del Skrevet 21. april 2006 (endret) Jeg trenger en variabel (med variabel mener jeg altså som: string, integer, boolean, osv) som kan lagre mange verdier (som en array), som raskt kan sjekke om den allerede inneholder en verdi (som en dictionary), som det kan legges til flere items uten mye om og men, som kan finne indexen til item (fra 0 til ubound()), og som kan sorteres (som en array). Finnes dette? Den skal brukes til å lagre en retteordliste til et skriveprogram jeg arbeider med, og må derfor kunne oppdateres når brukeren legger til nye ord, kunne finne indexen for å finne ord som ligger nærme dette ordet (for retteforslag) (derfor må det være sortert). Den må også kunne sjekke om et ord allerede eksisterer der før brukeren evt. får lov til å legge til et nytt. Dersom det ikke finnes en slik variabeltype, ber jeg om forslag til hvordan jeg ellers kan løse problemet. Listboxer er laaaaaangt ute, siden det tar *alt* for lang tid å legge alle orda til i en slik (bortimot et minutt, stor ordliste!). Hugeflis Endret 21. april 2006 av Hugeflis Lenke til kommentar
Gjakmarrja Skrevet 21. april 2006 Del Skrevet 21. april 2006 Hva med å bruke en database til dette? Hvis du laster hele ordlisten inn i en Variabel blir jo alt liggende i minne på datamaskinen noe som ikke er bra... Bruk en database... Lenke til kommentar
Hugeflis Skrevet 21. april 2006 Forfatter Del Skrevet 21. april 2006 Kan du forklare meg hvordan jeg evt gjør dette? Jeg har aldri brukt databaser før, skjønner du, så jeg ville likt å få forklart følgende: Hvorfor (når) bør man bruke databaser? Må brukeren ha noe spesielt installert for å bruke det? Må jeg legge til flere referanser? Hvordan bruker jeg egenskapene jeg etterlyste i første post når jeg har en database? Hugeflis Lenke til kommentar
hpfarstad Skrevet 22. april 2006 Del Skrevet 22. april 2006 (endret) Listbox er vel bare en GUI kontroller hvis jeg ikke tar feil, så det å legge denne funksjonaliteten direkte i grensesnittet tror jeg ikke er å anbefale. Tror jeg ville prøvd meg på å legge det inn i en ArrayList. Dette er en klasse som har metoder for søk, sortering, legge til nye, hente ut index av verdi, etc... Bare legg til denne namespacen i topp: using System.Collections; og opprett en ArrayList slik: private ArrayList myArrayList = new ArrayList(); Hvor mange ord er det snakk om sånn ca? Endret 22. april 2006 av hpfarstad Lenke til kommentar
Hugeflis Skrevet 22. april 2006 Forfatter Del Skrevet 22. april 2006 Ca 100 000 ord. Kan du gi meg noen raske eksempler på hvordan jeg utfører oppgavene jeg spurte etter? Hvis ikke, så går jeg ut fra at det er enkelt å finne ut (kan ikke teste nå), og prøver neste gang jeg bruker VB. Takk, Hugeflis Lenke til kommentar
hpfarstad Skrevet 22. april 2006 Del Skrevet 22. april 2006 Les f.eks. litt på denne siden: ArrayList Tutorial in VB.NET Kan lite VB syntax da jeg for det meste skriver i C#, men Arraylist har metoder som: ArrayList.Add() // Legg til på slutten ArrayList.Sort() // Sorter ArrayList.BinerySearch() // Søk etter verdi ArrayList.IndexOf() // Finn index til verdi ArrayList.Insert() // Legg inn verdi på gitt index Vet ikke om det er dette du er ute etter da, men forsto det sånn at du ville ha et objekt å lagre mange objekter i (hvor objektene er strenger). Lenke til kommentar
Hugeflis Skrevet 23. april 2006 Forfatter Del Skrevet 23. april 2006 Det ser ut til å være akkurat det jeg trenger. Jeg skal teste det når jeg får anledning. Tusen takk for hjelpen! Hugeflis Lenke til kommentar
Hugeflis Skrevet 23. april 2006 Forfatter Del Skrevet 23. april 2006 Joda, den funket flott den! Men jeg støtte på et annet problem. Finnes det en eller annen smart funksjon i arraylist (eller en annen plass, eller kan noen lage) som jeg kan kalle med to stringer, og så returnerer den en integer med antallet forskjeller mellom desse to stringene? Hugeflis Lenke til kommentar
wolf5 Skrevet 24. april 2006 Del Skrevet 24. april 2006 IndexOf gir posisjon til hver string C=A-B Lenke til kommentar
Hugeflis Skrevet 24. april 2006 Forfatter Del Skrevet 24. april 2006 (endret) Nei, jeg mener ikke i forskjellen på posisjonene i arraylist, men forskjellen på stavingen av ordet. Eks: Katt Hatt =1 Rema Mega =3 Program Pro =4 Finnes dette i arraylist eller en annen plass/kan noen lage det? Jeg regner nemlig med at hvis jeg lager det, så blir det veldig tregt... Endret 24. april 2006 av Hugeflis Lenke til kommentar
hpfarstad Skrevet 24. april 2006 Del Skrevet 24. april 2006 (endret) Kan kanskje rettlede deg ved å si at en string er egentlig en array av typen char (bokstaver). Så du kan hente ut char fra en string på samme måte som du gjøre med en hvilken som helst annen array: string s = "Hallo" Console.Write(s[0]) Console.Write(s[4]) Vil gi output: "Ho" Det jeg ville gjort er altså å lage funksjonen:" int GetDifference(string a, string b)", hvor jeg tok for meg første bokstav i a og sjekket mot alle bokstaver i b, så andre bokstav av a mot alle bokstaver i b, osv... Endret 24. april 2006 av hpfarstad Lenke til kommentar
Hugeflis Skrevet 25. april 2006 Forfatter Del Skrevet 25. april 2006 Ja, det har jeg tenkt på, men vil ikke det ta fryktelig lang tid hvis jeg skal sjekke noen tusen stringer? Jaja, jeg prøver. Lenke til kommentar
hpfarstad Skrevet 25. april 2006 Del Skrevet 25. april 2006 Jo, det vil nok ta litt tid hvis du skal sjekke flere tusen. Men da er spørsmålet... hvorfor skal du gjøre dette? Hva skal du bruke den ferdige funksjonen til? Ser ikke helt for meg hvor dette er nyttig. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå