Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56

Prüfen, ob in der Datei was vorhanden ist...
Verfasst am: 15.07.2007, 01:02

Hallo, ich habe ein Problem
[code]
Private Sub cmdDelete_Click()
txtPasswort.Text = ""
txtPasswortB.Text = ""
End Sub

Private Sub cmdEnd_Click()
End
End Sub

Private Sub cmdOk_Click()
If txtPasswort.Text = "" Or txtPasswortB.Text = "" Then
MsgBox "Bitte Füllen sie beide Felder aus!", vbInformation
ElseIf txtPasswort.Text = txtPasswortB.Text Then
Open "Npw4882499.txt" For Output As #1
Print #1, txtPasswort.Text
Close #1
MsgBox "Das Passwort ist nun gesetzt, Vielen Dank!", vbInformation
Me.Hide
frmNachricht.Show
ElseIf Not txtPasswort.Text = txtPasswortB.Text Then
MsgBox "Die beiden Passwörter sind nicht Identisch!", vbInformation
txtPasswort.Text = ""
txtPasswortB.Text = ""
End If
End Sub

Private Sub Form_Load()
If Not #1 = "" Then
Me.Hide
frmLoginP.Show
Else:
End If

End Sub
[/code]

Ich muss bei dem Fett gedruckten herausfinden ob was in der Datei vorhanden ist. Wenn ja, dann muss er auf eine andere Form, wenn nein, muss er auf der Form bleiben.

lg Lu
_________________
 
Marduk_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.06.2007
Beiträge: 389


Verfasst am: 15.07.2007, 03:52

[code]
dim F as Integer
Dim sInhalt as String
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close #F[/code]

Damit hast du die Textdatei in einer Variable drin. Wenn du nur das Passwort in der .txt drin hast, kannst du jetzt einfach vergleichen ob
[code]If txtPasswort.Text = sInhalt Then
MsgBox...
ElseIf ...
EndIf[/code]

Falls du einen ganzen Text in der Textdatei drin hast, dann splittest du einfach den String nach jedem Wort und vergleichst dann einfach.

Ich hoffe das hilft dir Wink
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 09:48

Hmm...

Gut aussehen tut es, aber so wirklick funktionieren will es nicht...

für was steht den F? und sInhalt?

Und, er muss nur vergleichen ob etwas da ist, oder nicht, nicht ob es stimmt!
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.07.2007, 10:16

Wenn ich dich richtig verstehe, dann willst du nur überprüfen ob die Datei leer ist oder nicht.
[code]
if Filelen("DeinPfad") = 0 then
'Code wenn die Datei leer ist
else
'Code wenn sie nicht leer ist
end if
[/code]


Edit//
Noch eine Erklärung von mir zu Marduks Code.
In sInhalt liest er die komplette Datei ein und #F steht für die Dateinummer.
Mit "F = Freefile" holt er sich die nächste freie Dateinummer.
Das ganze ist aber nicht unbedingt notwendig und du kannst auch selbst eine Nummer zuweisen.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 10:28

Sehr gut, funktioniert fast, er sagt mir nur noch "Datei nicht gefunden"
Sprich: Ich muss die Datei Npw4882499.txt Noch Einmalig beim 1 Start des Programmes erstellen.

Wie schafft man sowas?
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.07.2007, 10:39

Überprüfe am besten vorher ob die Datei überhaupt existiert.
Den code füge einfach in ein Modul ein.

[code]
Public Function FileExists(ByVal Filename As String) As Boolean
On Local Error Resume Next
FileExists = (Dir$(Filename) <> "")
End Function
[/code]

Und jetzt kombinieren wir das einfach mit dem code, der testet ob die Datei leer ist.

[code]
Filepath = "DeinPfad"

if FileExists(Filepath) = True then
If Filelen(Filepath) = 0 Then
'Code wenn die Datei leer ist
else
'Code wenn sie nicht leer ist
end If
end if
[/code]

So überprüft er ob die Datei überhaupt vorhanden ist und führt dann erst den restlichen code aus.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 11:17

Endlich, jaaaaaaaa....

Danke schön (l) xD
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 11:31

Andere Frage:

Was gibt es sonst noch ausser FileLen oder FileExists?

Ich suche einen der überprüft ob Die File = txtPasswort.text ist?

lg Lu
 
Hamtaro_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 06.05.2007
Beiträge: 217
Wohnort: NRW


Verfasst am: 15.07.2007, 12:03

Zitat:
Ich suche einen der überprüft ob Die File = txtPasswort.text ist?

Das hat TheCoder doch schon gepostet:
[code]Dim F As Integer
Dim sInhalt As String
F = FreeFile ' freier DateiZeiger
Open sFilename For Binary As #F ' die Datei zum lesen öffnen
sInhalt = Space$(LOF(F)) ' ein String von der Größe der Datei wird mit Leerzeichen gefüllt
Get #F, , sInhalt ' der inhalt der Datei wird eingelesen
Close #F
If txtPasswort.Text = sInhalt Then
MsgBox...
ElseIf ...
EndIf[/code]
oder was?
_________________
Wie findet ihr meine Sig?
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 12:37

Wenn ich diesen Code genau so übernehme Meldet er mir:

"Fehler beim Zugriff auf Pfad/Datei"


Wenn ich aber dan sFilename durch "Npw4882499.txt" ersetze dann funktioniert gar kein Passwort...
 
Hamtaro_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 06.05.2007
Beiträge: 217
Wohnort: NRW


Verfasst am: 15.07.2007, 12:54

Du musst natürlich den ganzen Pfad(C:\dasd\dsa\dsa.txt) als sFileName nehmen..
Also wenn es im Projektverzeichnis ist, dann [code]sFileName = App.Path & "\Npw4882499.txt"[/code]
_________________
Wie findet ihr meine Sig?
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 13:41

Aha, das erklärt einiges...

Aber trodzdem ist das Passwort immer noch falsch???

[code]Private Sub cmdLogin_Click()
Dim F As Integer
Dim sInhalt As String
F = FreeFile ' freier DateiZeiger
sFileName = App.Path & "\Npw4882499.txt"
Open sFileName For Binary As #F ' die Datei zum lesen öffnen
sInhalt = Space$(LOF(F)) ' ein String von der Größe der Datei wird mit Leerzeichen gefüllt
Get #F, , sInhalt ' der inhalt der Datei wird eingelesen
Close #F
If txtLogin.Text = sInhalt Then
Me.Hide
frmNachricht.Show
Else: MsgBox "Das Passwort ist falsch!", vbInformation
End If
End Sub[/code]
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.07.2007, 19:32

Ich schätze mal er liest aus der Datei zu viele Zeichen aus. Also irgendwelche unnötigen Zeichen wie Leerzeichen, Zeilenumbruch etc.

Vielleicht überprüfst du mal, was genau er eigentlich einliest.

mfg, ZiG
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 19:53

er liest nur 1 Wort, oder eine Zahl, mehr nicht...
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 20:05

Ich habe mal hier alles raufgeladen:

http://rapidshare.com/files/43105586/Nachricht.rar.html

Könnt ihr euches glück ja mal versuchen...
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.07.2007, 20:05

Tja, dann machst du irgendwas anderes falsch.
Ich habs mal mit deinem code ausprobiert und es geht ohne Probleme.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 20:27

http://rapidshare.com/files/43105586/Nachricht.rar.html

Lad es mal runter, villeicht findest du hier irgendwo sonst den Fehler...
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.07.2007, 20:40

Ganz einfach. Es ist wie ich gesagt habe dass er noch einen Zeilenumbruch einliest und deswegen der Vergleich der beiden strings nicht funktioniert.
Wenn man die Datei mit dem Passwort selber erstellt dann funktioniert es einwandfrei.
Das Problem liegt beim speichern des pw's.

Diese Zeile:
[code]
Print #1, txtPasswort.Text
[/code]

Mach einfach hinten ein Semikolon dran. Dann macht er keinen Zeilenumbruch.
So:
[code]
Print #1, txtPasswort.Text;
[/code]

mfg
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Luu_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 30.06.2007
Beiträge: 56


Verfasst am: 15.07.2007, 21:04


Ok klappt wunderbar, dankeschön!
_________________


 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: datei vorhanden, prüfen, text

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Passwort Generator 1526 08.07.2010, 00:32
Keine neuen Beiträge Passwort Schutz? 879 25.10.2007, 06:31
Keine neuen Beiträge Das passwort an die E-Mail von mir senden? 562 17.10.2007, 21:18
Keine neuen Beiträge Passwort Generator by sollniss 1270 28.11.2008, 17:03
Keine neuen Beiträge TUT zur Passwort abfrage 1013 10.08.2007, 15:06
 



[ Time: 0.6232s ][ Queries: 153 (0.0538s) ][ GZIP on - Debug on ]