Avatar billede visualdeveloper Nybegynder
31. marts 2005 - 16:39 Der 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 ?
Avatar billede visualdeveloper Nybegynder
31. marts 2005 - 17:10 #1
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 ?
Avatar billede ulrina Nybegynder
31. marts 2005 - 20:41 #2
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

Dette burde kunne gøre det.
Avatar billede ulrina Nybegynder
31. marts 2005 - 20:42 #3
Glemte lige:
    Dim FF as Long
    Dim Path As String
Avatar billede visualdeveloper Nybegynder
31. marts 2005 - 23:31 #4
kan du ikke også lige fortælle hvordan jeg finder filen med en "browse..."knap!!!
Avatar billede visualdeveloper Nybegynder
31. marts 2005 - 23:33 #5
og det er ikke filen der skal åbnes men...en ny form (form2, med Form2.Show)
Avatar billede thomaxz Nybegynder
01. april 2005 - 08:11 #6
Der findes en object som Common Dialgos eller sådan noget.

Ved at tilføje den til din form og kalde den Cdl1
kan du med flg. koden åben et vindu hvor bruger kan finde filen.


Cdl1.ShowOpen


Hvis den skal filtrere filere fra, så man f.esk kun kan vælge *.txt filer kan du bruge filtere funktionen inde.

Cd1l.Filer="Understøttede filer | *.txt"
Cd1l.ShowOpen

"Understøttede filer | *.txt"

Der vil i dialogboksen være et punkt der hedder understøttede filer og som kun viser .txt filere

du kan også evt. lave to punkter ved at ændre filtere til

"Understøttede filer | *.txt | Alle filer|*.*"
(mener jeg det er)


mvh.
Thomas
Avatar billede martin_moth Mester
01. april 2005 - 08:21 #7
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.
Avatar billede martin_moth Mester
05. april 2005 - 13:18 #8
hallo?
Avatar billede visualdeveloper Nybegynder
08. april 2005 - 16:22 #9
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"
Avatar billede visualdeveloper Nybegynder
08. april 2005 - 16:28 #10
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 ???
Avatar billede visualdeveloper Nybegynder
08. april 2005 - 16:39 #11
jeg har her denne kode...

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 ???
Avatar billede visualdeveloper Nybegynder
08. april 2005 - 16:57 #12
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 ???
Avatar billede ulrina Nybegynder
08. april 2005 - 19:59 #13
Private Sub Drive1_Change()
    Dir1.Path = Drive1.Path
End Sub
Avatar billede martin_moth Mester
09. april 2005 - 14:01 #14
Ja, nemlig.

Det er fuldstændigt rarallelt til den kode du allerede har fået:

Private Sub Dir1_Change()
  File1.Path = Dir1.Path
End Sub

Det er bare et niveau "højere oppe", altså

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Path
End Sub

som ulrina skriver
Avatar billede visualdeveloper Nybegynder
10. april 2005 - 00:22 #15
hehe hed ikke Drive1.path men...Drive1.Drive men tak for det ... har fundet ud af det hele nu !
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester