Einzelnen Beitrag anzeigen
Ungelesen 22.05.23, 02:33   #6
Master_3
Anfänger
 
Registriert seit: May 2012
Beiträge: 32
Bedankt: 113
Master_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt PunkteMaster_3 erschlägt nachts Börsenmakler | 12981 Respekt Punkte
Standard

Also ich steige hier mal als Laie ein auch wenn nach erfahrenen Programmierern gefragt wurde:

Meiner Meinung nach ist das wichtigste beim Programmieren lernen sich nicht einfach Codeschnipsel zu ergoogeln und dann die Füße hochzulegen - das funktioniert halt nur für die kleinsten mini Tools u.ä...
Wichtig ist, in diesem Anfangsstadium den Code wirklich noch selber aufzuarbeiten und zu verstehen, was dieser Code bewirkt - dann ergeben sich drauß auch automatisch Abwandelungen die neue Wege eröffnen.

Dann wirst du deinen Code schreiben und wenn du damit fertig bist, wirst du für deine 100 Zeilen Code einen 5 Zeilen Code Block im Netz finden und graue Haare bekommen, aber bedenke, dass du 100 Zeilen Code dadurch geübt hast und mehr:
Übersicht über den Code behalten, klassische Fehler machen+finden+ausmerzen, ein Glücksgefühl haben wenn deine 100 Zeilen Code trotzdem funktioniert haben.

Ich gebe dir ein Beispiel das ich erst vor ein paar Tagen selber hatte, es ging darum die MAC -Adresse des ausführenden PC´s auszulesen und zusätzlich in eine Textdatei an eine bestimmte Stelle einzufügen - letzteres war das geringste Problem, aber an die MAC zu kommen und diese nach meinen Bedürfnissen zur Hand zu haben sah dann so aus:

Ausgangscode
Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                   Listbox1.items.add(.Name.ToString & .getphysicaladress.ToString)
Der Code geht, er zeigt jedoch alle Macs aller aktiven Netzwerkmodule an - also auch neben Lan die anderen üblichen Verdächtigen VPN, Wlan, usw. und ich brauchte nur die LAN Verbindung.

Also musste ich genauer differenzieren um nur die LAN MAC ausgegeben zu bekommen um sie dann in die Textdatei einzufügen.

Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                    If .Name = "LAN" Then
                                        Dim LAN = .GetPhysicalAddress.ToString
                                        Dim txt = IO.File.ReadAllText("C:\XXXXXX\XXXXX.txt")
                                        txt = txt.Replace("this_MAC", LAN)
                                        IO.File.WriteAllText("C:\XXXXXX\XXXXX.txt", txt)
                                    End If
                                End If
                            End With
                        Next
Die Mac Adresse durfte in der fertigen Textdatei nur Zahlen + Kleinbuchstaben enthalten, ergo "ToLower" hinzugefügt

Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                    If .Name = "LAN" Then
                                        Dim LAN = .GetPhysicalAddress.ToString.ToLower
                                        Dim txt = IO.File.ReadAllText("C:\XXXXXX\XXXXX.txt")
                                        txt = txt.Replace("this_MAC", LAN)
                                        IO.File.WriteAllText("C:\XXXXXX\XXXXX.txt", txt)
                                    End If
                                End If
                            End With
                        Next
Der Code tat was ich wollte - jetzt hätte man hier aufhören können, aber ich finde da liegt dann der Reiz, "kann ich das zuverlässig kürzen?"

Und dann fiel mir auf, dass die "DIM LAN" überflüssig war und ich den ".GetPhysicalAddress.ToString.ToLower" direkt in die "txt.replace" Funktion einbauen konnte, da ich ja bereits oben mit dem "If .Name = "LAN" " bereits eingegrenzt hatte:

Code:
Dim Mac As NetworkInterface
                        For Each Mac In NetworkInterface.GetAllNetworkInterfaces()
                            With Mac
                                If .NetworkInterfaceType <> NetworkInterfaceType.Loopback AndAlso
                            .NetworkInterfaceType <> NetworkInterfaceType.Tunnel Then
                                    If .Name = "LAN" Then
                                        Dim LAN = .GetPhysicalAddress.ToString.ToLower
                                        Dim txt = IO.File.ReadAllText("C:\XXXXXX\XXXXX.txt")
                                        txt = txt.Replace("this_MAC", .GetPhysicalAddress.ToString.ToLower)
                                        IO.File.WriteAllText("C:\XXXXXX\XXXXX.txt", txt)
                                    End If
                                End If
                            End With
                        Next
Und es wird garantiert dafür elegantere Lösungen geben, die ich entweder nicht kenne oder sie schlicht übersehen habe, aber so ist es nunmal - man entwickelt sich dadurch weiter.

Geändert von Master_3 (22.05.23 um 02:58 Uhr)
Master_3 ist offline   Mit Zitat antworten