Posts mit dem Label Tools werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Tools werden angezeigt. Alle Posts anzeigen

Dienstag, 27. September 2011

E-Mail mit Visual Basic.Net verschicken

Dieses Beispiel ist als Modul angelegt (da für eine Konsolenanwendung), kann aber fix auf OO-Programmierung geändert werden. In erster Linie will ich mir Sucherei ersparen.

  1. Imports mail = System.Net.Mail
  2.  
  3. Module EMail
  4.     Friend Function EMail(ByVal sAdressat, ByVal sBetreff, ByVal sText) As Boolean
  5.         Const csTrennzeichen As String = ";"
  6.         Dim oCredentials As New System.Net.NetworkCredential
  7.         Dim oClient As New mail.SmtpClient
  8.         Dim oEMail As New mail.MailMessage
  9.         Dim bReturn As Boolean
  10.         Dim asAdressen As String (), sAdresse As String
  11.  
  12.         bReturn = True
  13.         asAdressen = Split(sAdressat, csTrennzeichen)
  14.  
  15.         With oCredentials
  16.             .UserName = My.Settings.EMailUsername
  17.             .Password = My.Settings.EMailPasswort
  18.         End With
  19.  
  20.         With oClient
  21.             .Host = My.Settings.EMailSmtp
  22.             .Port = My.Settings.EMailSmtpPort
  23.             .UseDefaultCredentials = False
  24.             .Credentials = oCredentials
  25.         End With
  26.  
  27.         Try
  28.             With oEMail
  29.                 .IsBodyHtml = False
  30.                 .From = New mail.MailAddress (My.Settings.EMailAbsender)
  31.  
  32.                 For Each sAdresse In asAdressen
  33.                     .To.Add(sAdresse)
  34.                 Next
  35.  
  36.                 .Subject = sBetreff
  37.                 .Body = sText
  38.             End With
  39.  
  40.             oClient.Send(oEMail)
  41.  
  42.         Catch ex As Exception
  43.             Console .WriteLine("Fehler: " & ex.Message)
  44.             bReturn = False
  45.         End Try
  46.  
  47.         Return bReturn
  48.     End Function
  49. End Module
  50.  
  51.  

Info für mich: Liegt auf dem Asus im Projekteordner.

Freitag, 16. September 2011

Mit Visual Basic die IP-Adresse des eigenen Rechners ermitteln.

Diese Aufgabe stellte sich mir gerade. Im Internet fand ich zwei Lösungswege; der Weg über NetworkInformation erschien mir besser:

  1.  
  2. Imports N = System.Net.NetworkInformation
  3.  
  4. Module Module1
  5.  
  6.     Sub Main()
  7.         Dim aoAlleInterfaces() As N.NetworkInterface
  8.         Dim oInterface As N.NetworkInterface, oUnicastIpAdressInfoCollection As N.UnicastIPAddressInformationCollection
  9.         Dim iAnzahl As Integer , iZaehler As Integer , oUnicastIpAdressInfo As N.UnicastIPAddressInformation
  10.  
  11.         Console.WriteLine("Start" )
  12.  
  13.         aoAlleInterfaces = N.NetworkInterface.GetAllNetworkInterfaces
  14.  
  15.         For Each oInterface In aoAlleInterfaces
  16.             oUnicastIpAdressInfoCollection = oInterface.GetIPProperties().UnicastAddresses
  17.             iAnzahl = oUnicastIpAdressInfoCollection.Count
  18.             For iZaehler = 0 To iAnzahl - 1
  19.                 oUnicastIpAdressInfo = oUnicastIpAdressInfoCollection(iZaehler)
  20.                 If oUnicastIpAdressInfo.Address.AddressFamily = Net.Sockets.AddressFamily.InterNetwork Then
  21.                      Console.WriteLine("Treffer" )
  22.                     Console.WriteLine(oUnicastIpAdressInfo.Address.ToString)
  23.                 End If
  24.  
  25.              Next
  26.          Next
  27.  
  28.          Console.WriteLine("Ende" )
  29.         Console.ReadKey()
  30.     End Sub
  31.  
  32.  End Module

Als Vorbild diente ein Beispiel von Justus Bisser. Seine Lösung ist in C# geschrieben und nutzt LINQ; zur Anschauung habe ich es aufgedröselt.

Mittwoch, 15. Juni 2011

Tool zur Erstellung der 'stored procedures' für Sortierungen

Hinweis:
Dieser Beitrag macht nur für mich Sinn; nicht wundern.

Das Tool SortierungStoredProcedureBuilder erstellt die vier für die Sortierung nach Art des Hauses benötigten 'stored procedures' bereit.
Die benötigten Parameter sind aus der Abbildung ersichtlich.

Abbildung zeigt Userinterface (Ausschnitt)
Die Eingabefelder des Tools.

Speicherort

VB-Projekte Juni 2011; Asus

Programm

Das Programm liegt in der "Hermann Leopold"-Suite.

Montag, 6. Juni 2011

Tool für Textumwandlung.

Hinweis:
Dieser Beitrag macht nur für mich Sinn; nicht wundern.

Ein arg dreckiges Tool zum Umwandeln von Text in HTML liegt in der Hermann-Leopold-Suite: Der TextHtmlizer. Nichts für die große weite Welt, aber für die Shoptemplates doch sehr gut geeignet.

Speicherort:

VB-Projekte Juni 2011; Asus

Freitag, 3. Juni 2011

Tool für hübscheren Quellcode

Hinweis: Dieser Beitrag macht nur für mich Sinn; nicht wundern.

Ein kleines Tool zu Erstellen von schöneren Quellcodeangaben im Internet: Code2Html.

Das Tool bockt zwar mehr als ein Esel auf Red Bull und hat mehr Bugs als ein "Starship Troopers"-Film, aber dafür ist alles schön bunt.

Speicherort:VB-Projekte Mai 2011; Asus

Beispiel:

  1. #Region "Konstruktoren"
  2.      ''' <summary>
  3.      ''' Konstruktor
  4.      ''' </summary>
  5.      ''' <param name="iNummer">Die Nummer der Farbe</param>
  6.      ''' <param name="iRot">Der Wert für die Farbe "rot"</param>
  7.      ''' <param name="iGruen">Der Wert für die Farbe "grün"</param>
  8.      ''' <param name="iBlau">Der Wert für die Farbe "blau"</param>
  9.      ''' <remarks></remarks>
  10.      Public Sub New (ByVal iNummer As Integer , ByVal iRot As Integer , ByVal iGruen As Integer , ByVal iBlau As Integer )
  11.         With Me
  12.              .rot = iRot
  13.             .gruen = iGruen
  14.             .Blau = iBlau
  15.             .Nummer = iNummer
  16.         End With
  17.      End Sub

Montag, 22. September 2008

VB.Net: Ordner anlegen

Sie kennen das Problem? Ein Programm soll eine Datei in ein Verzeichnis schreiben, verschieben oder kopieren, doch Sie sind sich nicht sicher, ob der Ordner überhaupt existiert?

Für solche Fälle hatte ich in der Vergangenheit eine Routine, die mit Hilfe einer Rekursion nicht vorhandene Ordner anlegt; immerhin kann ja auch schon der übergeordnete Ordner fehlen.

Die alte Lösung funktionierte gut, gefiel mir nur nicht. Eine rekursive Funktion für einen solch einfachen Zweck? Bis mir aus heiterem Himmel eine bessere Lösung einfiel. Die Idee: split()

 Public Shared Sub OrdnerCheck(ByVal Ordnerpfad As String)    Dim asOrdner() As String    Dim sPfad As String = ""    asOrdner = Split(Ordnerpfad, "\" )    For Each sOrdner As String In asOrdner     sPfad &= sOrdner & "\"     If Not Directory.Exists(sPfad) Then Directory.CreateDirectory(sPfad)    Next  End Sub Code-Beispiel 1

Das Ding funktionierte auf Anhieb gut (was immer verdächtig ist); allerdings kann CreateDirectory einen Ausnahmefehler erzeugen. Daher ist es besser, diesen zu berücksichtigen.

 Public Shared Function OrdnerChecked(ByVal Ordnerpfad As String) As Boolean   Dim asOrdner() As String   Dim sPfad As String = ""   Dim bReturn As Boolean = True   asOrdner = Split(Ordnerpfad, "\")   Try    For Each sOrdner As String In asOrdner     sPfad &= sOrdner & "\"     If Not Directory.Exists(sPfad) Then _      Directory.CreateDirectory(sPfad)    Next   Catch ex As Exception    bReturn = False   End Try   Return bReturn  End FunctionCode-Beispiel 2

Jetzt kann mit einer If-Then-Else-Konstruktion die Existenz eines Ordners geprüft, gegebenenfalls der Ordner angelegt und die Datei abgelegt werden. Ist die Anlage unmöglich kann im Programm selbst auf das Problem reagiert werden (Dialog o.ä.)