Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Eine funktionierende Private Sub Formel als Public Function

Frage Entwicklung VB for Applications

Mitglied: iVirusYx

iVirusYx (Level 2) - Jetzt verbinden

25.05.2011 um 12:32 Uhr, 3681 Aufrufe, 6 Kommentare

Ich habe eine funktionierende Formel auf mehrere Elemente verteilt und möchte diese nun als Public Function definieren,
jedoch kriege ich es einfach nicht gebacken diesesmal..

Hallo an alle
Ich bin relativ neu in der Programmation und bastele seit 3 Tagen an einem Password Generator.
Der funktioniert relativ gut und nun moechte ich noch einiges aufraeumen und all die Formeln die des oefteren benutzt werden als Function zusammenfassen

Ich habe zBsp hier eine TextBox in der ich mit der Formel unten nur die Eingabe von "0123456789" erlaube.
So als Private Sub funktioniert das auch relativ gut aber ich kriege die Formel unten einfach nicht in eine Public Function

Private Sub TxBxRndNum_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxRndNum.TextChanged
Dim charactersAllowedNUM As String = "0123456789"
Dim theText As String = TxBxRndNum.Text
Dim Letter As String
Dim SelectionIndex As Integer = TxBxRndNum.SelectionStart
Dim Change As Integer

For x As Integer = 0 To TxBxRndNum.Text.Length - 1
Letter = TxBxRndNum.Text.Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next

TxBxRndNum.Text = theText
TxBxRndNum.Select(SelectionIndex - Change, 0)
End Sub

Die Public Funtion würde dann so aussehen mit der Ausfuehrung (nun werded ihr aber etwas feststellen... dazu untendrunter):

Public Function blockCharNotNum(Input)

Dim charactersAllowedNUM As String = "0123456789"
Dim theText As String = Input
Dim Letter As String
Dim SelectionIndex As Integer = Input.SelectionStart
Dim Change As Integer

For x As Integer = 0 To Input.Length - 1
Letter = Input.Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next

Input = theText
Input.Select(SelectionIndex - Change, 0)

End Function

Private Sub TxBxPswdLgth1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxPswdLgth1.TextChanged

TxBxPswdLgth1.Text = blockCharNotNumerical(TxBxPswdLgth1.Text)

End Sub


Ja... zuerst weiß ich nicht richtig wie ich den Output definiere, ich habe es schon mit "Return Input = theText" probiert aber was ist dann mit " Input.Select(SelectionIndex - Change, 0)"?

Ich hoffe ihr koennt mir helfen!
MFG Michel

P.S.: Bitte überseht die vielen Programmierfehler fürs erste, ich bin Anfänger
Mitglied: SlainteMhath
25.05.2011 um 12:56 Uhr
Moin,

Vorab: Benutze doch bitte code-tags, wenn Du code postest, das macht das lesen leicher

Bitte überseht die vielen Programmierfehler fürs erste, ich bin Anfänger
Ok

Public Function blockCharNotNum(Input)
Gewöhn dir am besten gleich an, immer den Variablen Typ mit anzugeben

Etwas so:
01.
Public Function blockCharNotNum(theText as string) as string 
02.
 
03.
Dim Letter As String 
04.
Dim SelectionIndex As Integer = Input.SelectionStart 
05.
Dim Change As Integer 
06.
 
07.
For x As Integer = 0 To theText .Length - 1 
08.
  Letter = theText .Substring(x, 1) 
09.
  If charactersAllowedNUM.Contains(Letter) = False Then 
10.
    theText = theText.Replace(Letter, String.Empty) 
11.
    Change = 1 
12.
  End If 
13.
Next 
14.
 
15.
return theText  
16.
end function
Bitte warten ..
Mitglied: iVirusYx
25.05.2011 um 13:50 Uhr
Danke vielmals
Aber ich kriege noch immer den gleichen Fehler wie vorher:

"An error occurred creating the form. See Exception.InnerException for details. The error is: Public member 'SelectionStart' on type 'String' not found."

Und das nur bei dieser Formel wenn ich eine Public Function draus mache

EDIT:
Also hab ich jetzt einen Fehler bei dir raus gemacht und was versucht, jetzt weiß ich welcher SelectionStart geimeint ist:

01.
    Public Function blockCharNotNum(ByVal theText As String) 
02.
        Dim charactersAllowedNUM As String = AllNumChar 
03.
        Dim Letter As String 
04.
        ' Dim theText As String = Input 
05.
        Dim SelectionIndex As Integer = theText.SelectionStart 
06.
        Dim Change As Integer 
07.
        For x As Integer = 0 To theText.Length - 1 
08.
            Letter = theText.Substring(x, 1) 
09.
            If charactersAllowedNUM.Contains(Letter) = False Then 
10.
                theText = theText.Replace(Letter, String.Empty) 
11.
                Change = 1 
12.
            End If 
13.
        Next 
14.
        Return theText 
15.
    End Function
Dabei sagt er dass in Linie 05 der theText.SelectionStart : "SelectionStart ist kein Member von "String"

EDIT2:
Das liegt wahrscheinlich daran dass "theText = Textbox.Text" ist und "SelectionStart" müsste "Textbox.SelectionStart" sein, wie kann ich das jetzt machen?


MFG
Michel
Bitte warten ..
Mitglied: SlainteMhath
25.05.2011 um 14:02 Uhr
was genau ist denn "Input"? Textbox? String? Array? TreeView? erschliest sich aus deinem Codeschnipsel nicht ganz
Bitte warten ..
Mitglied: iVirusYx
25.05.2011 um 14:04 Uhr
Ich habe meine Antwort noch bearbeitet :

"theText = Textbox.Text" ist und "SelectionStart" müsste "Textbox.SelectionStart"
Also ja... der input "theText" ist ein String aus "Textbox.Text"

Und das ist auch der ganze Fehler Ich weiss jetzt nur nicht weiter...
Bitte warten ..
Mitglied: SlainteMhath
25.05.2011 um 14:14 Uhr
Is schon reichlich verworren dein Code

Versuchs doch mal so:

01.
public function blockCharNotNum(theText as string) as string 
02.
 
03.
Dim charactersAllowedNUM As String = "0123456789" 
04.
Dim Result as string="" 
05.
 
06.
for each c as char in theText.ToCharArray 
07.
  if charactersAllowedNUM.Contains(c) then 
08.
    Result += c 
09.
  end if 
10.
next 
11.
 
12.
return Result 
13.
end function 
14.
 
15.
Private Sub TxBxPswdLgth1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxPswdLgth1.TextChanged 
16.
 
17.
  TxBxPswdLgth1.Text = blockCharNotNum(TxBxPswdLgth1.Text) 
18.
 
19.
End Sub
Bitte warten ..
Mitglied: iVirusYx
25.05.2011 um 14:26 Uhr
Ein ganz anderer Ansatz als der Meine, an dem ich mühselige 8 Stunden verbracht habe, aber es funktioniert einwandfrei und ist zudem auch noch viel leichter! :D
Ich danke dir... mein Ansatz war halt nur gut wenn man ihr direkt auf die Textbox anwendet

MFG
Michel

P.S.: Wenn der Generator fertig ist werde ich wahrscheinlich das ganze Projekt zur Benotung und Verbesserungsvorschlägen hier beitrage.
Man sei gewarnt dass es das reinste Anfängerchaos ist aber ich gebe mir Mühe (Mühe, Mühe wir spielen blinde Kühe ;)
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel Marko "private sub" bearbeiten
gelöst Frage von ArnoNymousMicrosoft Office2 Kommentare

Hallo, ich stehe auf dem Schlauch. Habe hier eine Exceltabelle mit einem Makro, dass mittels "private sub" nicht sichtbar ...

VB for Applications
VBA Modul ruft Public Sub in Userform auf
gelöst Frage von aivilonVB for Applications15 Kommentare

Moin zusammen Wieder mal ein doofes Problem Ich hab eine Userform mit viel Code und dieser Code greift auf ...

Batch & Shell
Abfrage function und weitergabe der Parameter
gelöst Frage von complexBatch & Shell6 Kommentare

Hallo zusammen, bin leider noch blutiger anfänger im Bereich Powershell. Zu meinem Problem: Ich möchte ein Script schreiben, dass ...

Entwicklung
VBA wenn Formel
Frage von TheSB891Entwicklung1 Kommentar

Hallo Zusammen Ich hab da ein kleines Problem und finde leider keine Lösung. Ich habe eine Tabelle die ich ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 5 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 6 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 8 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 13 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...