foglen Skrevet 31. januar 2005 Del Skrevet 31. januar 2005 Skal lage et program i Visual Basic, men er usikker på hvordan. Er ganske ny innen emnet.... - Jeg skal ha en ListBox med flere forskjellige ord. - Jeg skal ha en TextBox der det står forklaringen på ordet som står i ListBox. Det betyr at visst jeg velger et ord fra ListBox så skal en forklaring på ordet komme opp i TextBoxen. Det jeg i tillegg skal ha er mulighet for å legge inn nye ord og forklaringer. Og jeg må også kunne slette og redigere ord og forklaringer. Alt dette må lagres slik at det er der neste gang programmet startes. eks: ord: william shakespear forklaring: kjent britisk forfatter håper noen kan hjelpe meg med dette? Lenke til kommentar
Jonas Skrevet 31. januar 2005 Del Skrevet 31. januar 2005 (endret) Ja, jeg kan hjelpe deg med dette! Første du gjør er å lage et par variabler. Vi legger alle ord og forklaringer inn dit: 'Variablene som holder styr på ordlisten din Private Type Ord Ord As String Forklaring As String End Type Dim Ord() As Ord Jeg regner med at du vil laste inn ordene med en gang programmet starter, så du kan opprette en Form_Load()-event: Private Sub Form_Load() End Sub Alt som står mellom de to linjene vil bli utført når programmet startes. Når vi har en ukjent størelse på et array bruker vi Ubound() til å finne størelsen. Det funker ikke hvis ikke arrayet er "dimensjonert". Denne koden før vi åpner filen: 'Vi må gjøre arrayet klart ReDim Preserve Ord(0 To 0) I koden bruker vi et par variabler. Det er lurt å dimme de. (Skriv "Option Explicit" øverst i koden) Vi deklarerer og åpner filen: 'Deklarasjoner Dim Buff As String, SplitBuff 'Åpner filen Open App.Path & "\ordliste.txt" For Input As #1 'Lukker filen Close #1 Når filen er åpnet må man lage en Loop som går gjennom alle linjene i filen: Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Loop Så kan linjen hentes og settes inn i ordlisten din: 'Henter linjen Line Input #1, Buff 'Splitter linjen, slik at vi kan hente ut Ord og Forklaring SplitBuff = Split(Buff, "|") 'Øker størelsen på arrayet med 1 ReDim Preserve Ord(0 To UBound(Ord) + 1) 'Setter verdier Ord(UBound(Ord)).Ord = SplitBuff(0) Ord(UBound(Ord)).Forklaring = SplitBuff(1) 'Og legger til ordet i listen List1.AddItem SplitBuff(0) For å legge til i ordlisten må filen først åpnes: 'Åpner filen Open App.Path & "\ordliste.txt" For Append As #1 'Lukker filen Close #1 Får å skrive til den: 'Skriver til filen Print #1, Text1.Text & "|" & Replace(Text2.Text, vbNewLine, "vbnewline") Da er ordet skrevet til filen, men man vil jo slippe å restarte programmet. Legge til ordet i arrayet: 'Øker størelsen på arrayet med 1 ReDim Preserve Ord(0 To UBound(Ord) + 1) 'Setter verdier Ord(UBound(Ord)).Ord = Text1.Text Ord(UBound(Ord)).Forklaring = Replace(Text2.Text, vbNewLine, "vbnewline") List1.AddItem Text1.Text Får å vise ordforklaring kan du gjøre slik: Private Sub List1_dblClick() 'Viser ordforklaring MsgBox Replace(Ord(List1.ListIndex + 1).Forklaring, "vbNewLine", vbNewLine) End Sub Spør hvis det er noe Edit: Syntax på ordlisten blir slik: Jonas|Meg!!!11enenVB|Dette programmet er programmert i VB 1227|Nesten det samme som 1337/leet Arne|Ropes mye på lan.vbNewLineNy linje Lambertseter|Her bor jeg! Endret 31. januar 2005 av Jonas Lenke til kommentar
foglen Skrevet 9. februar 2005 Forfatter Del Skrevet 9. februar 2005 Takk for hjelpen! har prøvd å få dette til å fungere men sliter fortsatt med å forstå kodene. Er jo fortsatt nybegynner... Lenke til kommentar
Jonas Skrevet 11. februar 2005 Del Skrevet 11. februar 2005 Var det et lite hint til at jeg skulle legge ut hele prosjektet? Jaja, du skriver egentlig at du bare vil ha hjelp, men jeg er snill i dag! Ordliste.zip Lenke til kommentar
foglen Skrevet 11. februar 2005 Forfatter Del Skrevet 11. februar 2005 Takk for at du tar deg tid til å hjelpe meg, har faktisk fått til en del ting som jeg slet med før. Det var ikke meningen at du skulle skrive hele programmet for meg, jeg har da litt samvittigheten i behold enda... Men jeg har funne ut at det er lettere å forstå visst jeg har et helt program, og så kan se hva de enkelte kodene gjør. Men tilbake til det programmet jeg holder på med. Det er en del ting som ikke er slik som jeg vil ha det. Jeg vil ha en listbox og en textbox øverst i en frame. Når jeg velger et ord fra listboxen skal forklaringen på ordet komme opp i textboxen. Dette gjelder alle ordene i listboxen. Så skal jeg ha en del Command-buttons, bla. skal jeg ha 'legg til' og 'avslutt' helt nede i framen. Når jeg trykker på 'legg til' vil jeg at det skal komme opp en ny frame med 2 textboxer, der du i den øverste textboxen skriver inn ordet og i den nederste skriver inn forklaringen. og helt nederst en Command-button med 'lagre'. Når jeg trykker på lagre blir dette selvfølgelig lagret og 'legg til'-framen forsvinner. Videre vil jeg ha en meny opp i venstre hjørnet på framen (en sånn som er i alle vindu i windows, feks. 'fil'.). I denne menyen må det være en del valg blandt anna: 'legg til', 'rediger', 'slett', 'om' og avslutt. 'legg til' skal ha samme funskjon som 'legg til'-command-buttonen. 'rediger' må virke slit at når jeg velger et ord i listboxen (at det er uthevet) og går opp i menyen og velger rediger kommer en ny frame opp med to textboxer med ordet i den ene og forklaringen i den andre, slik at jeg kan endre både ord og forklaring. igjen må her være en 'lagre'-button. 'slett' sier seg vel selv, jeg vil ha mulighet til å slette ord fra listbox. Det må fungere sånn at når jeg velger et ord fra listboxen (at det er uthevet) så kan jeg gå opp i menyen og velg 'slett' og da kommer det opp en frame med "vil du slette .....ordet... fra listen" og jeg må ha 2 buttons med 'ja' og 'avbryt'. Vil gjerne ha passord-beskyttelse på dette. 'om' skal inneholde informasjon om programmet, den informasjonen kan godt komme opp i en egen frame med en 'ok'-button.' 'avslutt' er avslutt programmet. Da har jeg vel forklart alt som er. Har sjekka ganske grundig på utenlandske sider for å finne svar/koder på de enkelte oppgaven problemene jeg har med dette programmet. Er i gang men det stopper litt opp når det er enkelte ting som er umulig å få til. Noen ting er ganske enkelt å få til men sliter litt med å forstå dette med lagring, har prøvd ganske mange forslag men ingen passer til meg. Har den tykke boka om visual basic 6.0 programmering men det som står der er litt for generelt. Jeg har til nå brukt ca. 30 timer på dette programmet og nå står jeg veldig fast. Brukte en del av det du foreslo, men kunne ikke bruke alt. Tror jeg har forstått det meste. Jeg må vel berre sette meg litt bedre inn i de enkelte kodene for å finne ut av det. Så jeg tror jeg skal starte fra scratch og prøve igjen. Takk for hjelpen iallefall..... PS: Alle svar mottas med stooor takk. Lenke til kommentar
aadnk Skrevet 11. februar 2005 Del Skrevet 11. februar 2005 Jeg puslet litt med et slikt program forleden, og jeg kan gjerne publisere det, men jeg håper du heller tar inspirasjon fra programmet enn å kopiere direkte fra det. Man lærer intet ved å gjøre sistnevnte. Dictionary.zip 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å