Sjenever Skrevet 22. juli 2004 Del Skrevet 22. juli 2004 (endret) Har et par spørsmål jeg håper dere kan hjelpe meg med. 1. Hvordan får jeg en tekst til å vises i en Listboks rett etter at den er skrevet til fil? 2. Når en tekstboks er tom vil jeg at en kommandoknapp skal være deaktivert, men så fort det blir skrevet noe i tekstboksen skal knappen aktiveres. Hvordan? Endret 22. juli 2004 av Sjenever Lenke til kommentar
Jonas Skrevet 22. juli 2004 Del Skrevet 22. juli 2004 Nummer 1 skjønte jeg ikke helt.. For å adde tekst i en ListBox bruker du .AddItem På nummer 2 kan du bruke denne koden: Private Sub Text1_Change() If Text1.Text = "" Then Command1.Enabled = False Else Command1.Enabled = True End If End Sub Lenke til kommentar
Sjenever Skrevet 22. juli 2004 Forfatter Del Skrevet 22. juli 2004 Nummer 1 skjønte jeg ikke helt.. For å adde tekst i en ListBox bruker du .AddItem På nummer 2 kan du bruke denne koden: Private Sub Text1_Change() If Text1.Text = "" Then Command1.Enabled = False Else Command1.Enabled = True End If End Sub Takk for svar på spm. 2. Det ble litt kronglete skrevet ista. Prøver på nytt Jeg har en form med en tekstboks og en listboks. Det jeg skriver i tekstboksen skal lagres i en fil f.eks. fil.txt. For hver gang jeg legger en tekst inn i fil.txt, vil jeg at teksten som ligger på fil.txt skal vises i listboksen. Slikt som det er nå, så må jeg restarte programmet for at den nye teksten skal vises. Denne bruker jeg til å skrive til fil Private Sub cmdAdd_Click() Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 End Sub Denne til å sende innholdet tilbake til listboksen: Private Sub Form_Load() Dim item As String On Error GoTo Error_Handler Open "fav.dat" For Input As #1 Do Until EOF(1) Line Input #1, item lstFav.AddItem item Loop Close #1 Exit Sub Error_Handler: MsgBox "Ingen adresse i liste" wbBrowser.Navigate cboURL.Text End Sub Lenke til kommentar
Jonas Skrevet 22. juli 2004 Del Skrevet 22. juli 2004 Bare å kalle på Form_Load etter du etter teksten er blitt lagra det: Private Sub cmdAdd_Click() Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 form_load End Sub Lenke til kommentar
Sjenever Skrevet 22. juli 2004 Forfatter Del Skrevet 22. juli 2004 Bare å kalle på Form_Load etter du etter teksten er blitt lagra det: Private Sub cmdAdd_Click() Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 form_load End Sub Takker. Det var til stor hjelp. Har også et tilleggsspørsmål. Hvordan unngår jeg å skriver inn to eksakt like linjer i tekstfilen? Lenke til kommentar
Jonas Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 If lstFav.List(lstFav.ListCount - 1) = txtAddfav.Text Then MsgBox "Linjen er allerede skrevet inn!" Else Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Form_Load End If Lenke til kommentar
Sjenever Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 If lstFav.List(lstFav.ListCount - 1) = txtAddfav.Text Then MsgBox "Linjen er allerede skrevet inn!" Else Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Form_Load End If Takk igjen. Denne koden søker vel bare etter første linjen i listen. Hva om jeg skal søke gjennom hele listen etter like linjer. Tenkte på noe alla "Do until EOL". Lenke til kommentar
Jonas Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Den søker på den siste linjen som er skrevet inn. For å søke etter alle ville jeg ha brukt "For-Next". Slik: Dim i, søk For i = 0 To lstFav.ListCount - 1 If lstFav.List(i) = txtAddfav.Text Then søk = søk + 1 End If If søk = 0 Then Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Form_Load Else MsgBox "Linjen er allerede skrevet inn. Så mange har skrevet den inn: " & søk End If Koden sjekker hver linje og hvis den er lik som du har skrevet inn, vil den plusse på "søk". Lenke til kommentar
Sjenever Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 Jeg plager vel livet av deg nå Jonas. Når jeg kjører den koden får jeg "Compile error:End If without block If" Lenke til kommentar
Jonas Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 (endret) Neida, det gjør du ikke Bare en liten feil fra min siden. Slik skal det være: Dim i, søk For i = 0 To lstFav.ListCount - 1 If lstFav.List(i) = txtAddfav.Text Then søk = søk + 1 Next i If søk = 0 Then Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Form_Load Else MsgBox "Linjen er allerede skrevet inn. Så mange har skrevet den inn: " & søk End If EDIT: Den koden vil se forskjell på to tekster hvor forskjellen er en stor bokstav. Det kan endres med den koden her: Dim i, søk For i = 0 To lstFav.ListCount - 1 If LCase(lstFav.List(i)) = LCase(txtAddfav.Text) Then søk = søk + 1 Next i If søk = 0 Then Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Form_Load Else MsgBox "Linjen er allerede skrevet inn. Så mange har skrevet den inn: " & søk End If Endret 23. juli 2004 av Jonas Lenke til kommentar
Sjenever Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 Takker så mye Jonas. Akkurat slikt jeg hadde tenkt det. Lenke til kommentar
Jonas Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 (endret) Men det er en ting til jeg stussa litt på.. Jeg ser at du, i koden, sjekker om brukeren har skrevet noe i tekst boksen. Hvis han ikke har det vil meldingen sprette opp, men programmet vil fortsatt gå videre! Jeg sikter til denne: Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Bytt det ut med dette: Dim item As String If txtAddfav.Text = "" Then MsgBox "Skriv inn adresse!" Exit Sub End If Open "fav.dat" For Append As #1 Print #1, txtAddfav.Text Close #1 Her kan du se at "exit sub" vil stanse det helt. Der stopper den og ingen ting under vil bli utført! Endret 23. juli 2004 av Jonas Lenke til kommentar
Sjenever Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 "Exit Sub" har liten eller ingen betydning for dette programmet, men takk likevell. 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å