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
fakerl
Newbie
Newbie

Anmeldedatum: 30.03.2009
Beiträge: 12

Keine IP größer als 255.255.255.255
Verfasst am: 30.07.2010, 22:14

Hallo!

ich möchte das der User keine IP eingibt in der einer der blöcke größer als 255 ist (weil es ja nicht höher geht), zur fehlervermeidung.
Das ganze sieht dann so aus:
Code:
Dim Max() As String
Dim IP As String

IP = txtip.Text

Max() = Split(IP, ".")
If Max(0) Or Max(1) Or Max(2) Or Max(3) > 255 Then
MsgBox "IP cannot be bigger then 255.255.255.255", vbCritical
End If
txtip.Text = "255.255.255.255"
Else
End If


Allerdings wird, wenn der User einen Block der IP im Textfelt über 255 eingibt, die Meldung zwei mal angezeigt, was recht unschön ist.
Wie kann ich das nun umgehen?
_________________
 
christopher.g
Überflieger
Überflieger

Anmeldedatum: 03.05.2008
Beiträge: 536


Verfasst am: 02.08.2010, 07:27

hi
so ein paar kleinigkeiten...

-) hast ein end if zuviel
-) If Max(0) Or Max(1) Or Max(2) Or Max(3) > 255 Then funktioniert nicht ... muss heissen
If Max(0) > 255 Or Max(1) > 255 Or Max(2) > 255 Or Max(3) > 255 Then

-) und du solltest prüfen ob überhaupt das richtige format eingegeben wurde
sont kommt der nächste fehler weil du nicht max(0-3) nicht prüfen kannst

Code:


Private Sub Command1_Click()
Dim Max() As String
Dim IP As String

IP = txtip.Text

If IsIPFormat(IP) = False Then
    MsgBox "Fehler"
    Exit Sub
End If

Max() = Split(IP, ".")
If Max(0) > 255 Or Max(1) > 255 Or Max(2) > 255 Or Max(3) > 255 Then
MsgBox "IP cannot be bigger then 255.255.255.255", vbCritical
txtip.Text = "255.255.255.255"
Else
End If

End Sub

Private Function IsIPFormat(ByVal IP As String) As Boolean
If IP = Format$(IP, "###,###,###,###") Then IsIPFormat = True

End Function


lg
 
fakerl
Newbie
Newbie

Anmeldedatum: 30.03.2009
Beiträge: 12


Verfasst am: 02.08.2010, 09:54

Danke! Funktioniert wunderbar, allerdings habe ich noch was hinzugefügt, da die IP nur aus Zahlen bestehen darf aber IP ein String ist, habe ich noch ein OnError eingebaut, falls jemand dort einen Buchstaben eingibt =)
Wo ist eigentlich der Unterschied zwischen Public Function und Private Function?
 
christopher.g
Überflieger
Überflieger

Anmeldedatum: 03.05.2008
Beiträge: 536


Verfasst am: 02.08.2010, 11:00

hi
ist ganz einfach erklärt

Code:
private, public, global

geben den bereich an von dem die funktion oder variable angesprochen werden kann...

private ... nur in dem modul oder form wo die funktion steht
pulic ... für das ganze projekt
und global ... glaub sogar systemweit also für dll usw (bin mir da aber nicht sicher)

so was heist das alles

beispiel:
du hast eine form und ein modul

im modul
Code:
private sub Msg_Box ( byval sText as string)
  msgbox sText
end Sub

ist auf der Form "unsichtbar"


Code:
public sub Msg_Box ( byval sText as string)
  msgbox sText
end Sub

ist sichtbar

und du kannst die funktion aufrufen
in form1
Code:
private sub command1_click()
modul1.Msg_Box "Das ist ein test"
end sub


und dann würde eine messagebox angezeigt werden

ich hoffe ich habe das halbwechs verständlich erklärt

lg

edit:

nimm nicht on error
sondern lieber
Code:
if isNumeric (txtip.text ) = false then 'Fehler

zwecks der übersicht
und mit den ganzen goto wirst wahnsinig Wink


Zuletzt bearbeitet von christopher.g am 02.08.2010, 11:04, insgesamt einmal bearbeitet
 
fakerl
Newbie
Newbie

Anmeldedatum: 30.03.2009
Beiträge: 12


Verfasst am: 02.08.2010, 11:04

Ah okay, also ganz einfach: Public ganzes Projekt und Private nur im Modul/Form in der man sich gerade befindet. Okay vielen dank =)
 
christopher.g
Überflieger
Überflieger

Anmeldedatum: 03.05.2008
Beiträge: 536


Verfasst am: 02.08.2010, 11:05

hab dir oben noch was gepostet
Wink
nur du warst schneller als ich mit dem editieren
_________________


 
fakerl
Newbie
Newbie

Anmeldedatum: 30.03.2009
Beiträge: 12


Verfasst am: 02.08.2010, 11:09


Mein OnError bestünde aus einem GoTo und dann käme
Code:

MsgBox "Error " & Err.Number & vbCrLf & vbCrLf & Err.Description


Aber ich denke mit deiner methode wirds beim debuggen besser, weil die IDE mir dann direkt zum fehler springt, wenn was anderes schief geht als eine falsche IP. Danke nochmals =)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: höher, string, user

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wichtig: [Video] Lesson 2 - If then Else, For Schleife 2904 14.02.2008, 06:21
Keine neuen Beiträge Nicht der ganze Queltext?? Warum 798 10.03.2009, 11:32
Keine neuen Beiträge [Frage] Ich bekomme einen Fehler das "End if" fehlt obwohl e 641 14.09.2008, 15:33
Keine neuen Beiträge ListView ganze Reihe markieren 567 27.03.2008, 22:32
Keine neuen Beiträge "Schließen"-drücken und das ganze Programm beenden 926 16.11.2007, 13:47
 



[ Time: 0.3220s ][ Queries: 105 (0.0342s) ][ GZIP on - Debug on ]