31. marts 2005 - 16:39Der er
14 kommentarer og 1 løsning
Nøgle-Fil som en slags kodeord ?
Hej eksperter.... Jeg er ved at lave et program i VB og der skal jeg ha lavet et login form...men kan jeg ikke gøre det sådan at det ikke er et kodeord men en fil man skal finde... fx en .txt fil med dette indhold: (xypoqr)!^ og så lave en knap der hedder Browse... så finde man filen og den tjekker om filen nu indeholder dette og hvis den gør så logger den ind (når man trykker på logind) lidt ligesom Netbank ! kan det lade sig gøre og hvordan ?
har fundet ud af hvordan man åbner filen men kan man så ikke lave et eller andet if [filens indhold = "(xypoqr)!^"] Then [videre] Else msg "forkert fil !" men hvordan ?
Dim Kode As String FF = FreeFile Path = App.Path If Right(Path, 1) <> "\" Then Path = Path + "\" Open (Path & "kode.fil") For Input As #FF Line Input #FF, kode Close #FF if kode <> "(xypoqr)!^" Then MsgBox "Du er ikke logget på" Me.Unload End If
For at åbne en fil, er "problemet" at få fat i stien til filen. Den kan du få ved enten at:
1) Bruge commondialogboxen - en "standard-file-open" dialogbox 2) Bruge en drivelist og en filelist kontrol 3)Skrive stien direkte i en textbox
ad 1):
Smid en commondialog 'Commondialog1' på din form - er den ikke blandt dine standard komponenter, tryk Ctrl+T og find "Microsoft Commondialog". Kontrollen kan ikke ses når du kører programmet, så det er ligemeget hvor du sætter den på din form. Smid desuden en knap 'Command1'på din form. Copy-paste koden herunder, kør programmet, og tryk på knappen
Private Sub Command1_Click() Dim FilIndhold As String Dim FF As Long FF = FreeFile CommonDialog1.Filter = "Text (*.txt)|*.txt" CommonDialog1.ShowOpen Open (CommonDialog1.FileName) For Input As #FF Line Input #FF, FilIndhold Close #FF If FilIndhold <> "(xypoqr)!^" Then MsgBox "Du er ikke logget på " End If End Sub
Ad 2): Smid en DirListBox 'Dir1' og en FileListBox 'File1' på din form. Smid desuden en knap 'Command1'på din form. Copy-paste koden herunder, kør programmet, og tryk på knappen
Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub
Private Sub Command1_Click() Dim FilIndhold As String Dim FF As Long Dim strPath As String FF = FreeFile If File1.ListIndex >= 0 Then 'skal kun virke når du har MARKERET en fil strPath = File1.Path If Right(strPath, 1) <> "\" Then strPath = strPath & "\" Open strPath & File1.FileName For Input As #FF Line Input #FF, FilIndhold Close #FF If FilIndhold <> "(xypoqr)!^" Then MsgBox "Du er ikke logget på " & FilIndhold 'Gør hvad du nu vil, når filen ikke er OK End If Else MsgBox "Du skal først markere en fil" End If End Sub
ad 3): Det er vist ikke relevant for dig.
Du kan i øvrigt forbedre ovenstående koder en hel del. F.eks. kan du i 2) sætte filepattern på 'File1' til "*.txt" så den kun viser textfiler, eller du kan tilføje en drivelistbox, så man kan skifte drev.
lyder godt og jeg tror jeg vælger Bruge en drivelist og en filelist kontrol men kan du ikke lige skrive koden igen men denne gang bare indsætte en "Accepterfil" If Else... dvs. If Filens indhold = fjdkf then logon else:´msgbox "forkert fil eller kodeord"
hehe har du vist lavet...men nu har jeg indsat en Drive List...med C,D,E drevet men hvordan gør jeg (i Drive1_Change) sådan at når jeg skifter fx fra D til C skifter mapperne også fra D til C i Dir1 ???
Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub
Private Sub Command1_Click() Dim FilIndhold As String Dim FF As Long Dim strPath As String FF = FreeFile If File1.ListIndex >= 0 Then 'skal kun virke når du har MARKERET en fil strPath = File1.Path If Right(strPath, 1) <> "\" Then strPath = strPath & "\" Open strPath & File1.FileName For Input As #FF Line Input #FF, FilIndhold Close #FF If FilIndhold <> "(ABC)!^" Then Form2.Show Me.Hide Else Form2.Hide Me.Show MsgBox "Du er ikke logget på " & FilIndhold 'Gør hvad du nu vil, når filen ikke er OK End If Else MsgBox "Du skal først markere en fil" End If End Sub
men den logger ind selv om filen ikke indeholder ABC ???
har fundet ud af det hele untagen: men nu har jeg indsat en Drive List...med C,D,E drevet men hvordan gør jeg (i Drive1_Change) sådan at når jeg skifter fx fra D til C skifter mapperne også fra D til C i Dir1 ???
hehe hed ikke Drive1.path men...Drive1.Drive men tak for det ... har fundet ud af det hele nu !
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.