C# Random.Next(int, int) – obere und untere Grenze richtig setzen

Der Teufel ist ein Eichhorn, oder auch der Fehler liegt im Detail. Ich wollte gestern eine zufällige Zahlenreihe mit 0 und 1 erstellen. Das Visualstudio sagt mir hierzu nutze die Random.Next(int, int) Methode, wobei der erste Integer die untere Grenze und der zweite Integer die obere Grenze definiert. Nicht mehr und nicht weniger. Also müsste folgendes doch funktionieren:

Random rnd = new Random();
int zzahl = rnd.Next(0,1);

Falsch gedacht! So bekommt man nur eines – und zwar nur Nullen. Ein Blick in die MSDN Library sorgt für Aufklärung. Dort wird nämlich, im Gegenteil zum IntelliSense vom VisualStudio, erklärt, dass die untere Grenze inklusiv und die obere Grenze exklusiv ist.
Parameter
minValueTyp: System.Int32
Die inklusive untere Grenze der zurückgegebenen Zufallszahl.
 
maxValue
Typ: System.Int32Die exklusive obere Grenze der zurückgegebenen Zufallszahl. maxValue muss größer oder gleich minValue sein.

Im Klartext heißt das, dass der korrekte Aufruf um Nullen und Einsen zu generieren wie folgt aussehen müsste:

Random rnd = new Random();
int zzahl = rnd.Next(0,2);

Ich hoffe, ich konnte dem ein […]

Zufallszahlen in PHP mit rand() oder mt_rand() erstellen?

Nachdem mich René in den Kommentaren zu meinem Artikel über die Generierung von unterschiedlichen Zufallszahlen in PHP darauf hingewiesen hat, dass es sinnvoller sei, die PHP-Funktion mt_rand() anstelle von rand() zur Erstellung von Zufallszahlen zu nutzen, habe ich beschlossen ein wenig nachzuforschen und einen Artikel darüber zu schreiben. Aber was ist mt_rand() eigentlich?
Mit mt_rand() kann man genauso wie mit rand() Zufallszahlen generieren. Der Aufruf der Funktion erfolgt genauso, wie mit der normalen rand() Funktion. Zusätzlich heißt es in der PHP-Doku, würde mt_rand() Zufallszahlen bis zu 4-mal schneller generieren und diese auch wesentlich willkürlicher Auswählen. Kurz: Die von rand() erstellten Zufallszahlen seien nicht wirklich zufällig.
Mir war die ganze “Problematik” bis dato nicht bekannt und schon nach kurzem googeln musste ich feststellen, dass René mit seiner Meinung nicht alleine ist. Allerdings muss man auch dazu sagen, dass die meisten Beiträge, die beklagen, dass rand() nicht sauber arbeitet schon “etwas älter” sind.
Oft zitiert […]

Header einer Webseite mit C# auslesen

Mit der folgenden Funktion könnt ihr euch ganz leicht eine Übersicht der Header einer beliebigen Webseiten anzeigen lassen.
Es genügt als Parameter die Url der gewünschten Webseite an die Funktion zu übergeben und ihr erhaltet als Rückgabewert der Funktion ein nettes Dictionary<string, string>, welches als Key den Namen der Headereigenschaft und als Value den Wert der Headereigenschaft enthält.

using System.Net;

//…

public Dictionary getHeaders(string url)
{
//Dictionary für Header (Dictionary)
Dictionary header = new Dictionary();

//Anfrage an die Übergebene URL starten
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

//Antwort-Objekt erstellen
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//Jeden einzelnen Headereintrag in das Header-Dictionary
//einfügen
foreach (string headerItem in response.Headers)
{
header.Add(headerItem, response.Headers[headerItem]);
}

//Webanfrage schließen
[…]

Quelltext einer Webseite mit C# auslesen

Mit dem folgenden kleinen Snippet könnt ihr den Quelltext einer Webseite auslesen und in einem string speichern.
Solch eine Funktion eignet sich zum Beispiel, wenn man einzelne Informationen aus einer Webseite parsen und anderweitig benutzen will.
Damit das Snippet funktioniert, müsst ihr eurem Quelltext folgende beide Using-Direktiven hinzufügen.

using System.Net;
using System.IO;

//Snippet von www.code-bude.net

Die Funktion zum Download des Quelltextes sieht dann wie folgt aus:

public string getHTML(string url)
{
//Anfrage an die Übergebene URL starten
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

//Antwort-Objekt erstellen
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//Antwort Stream an Streamreader übergeben
StreamReader sr = new StreamReader(response.GetResponseStream());

//Antwort (HTML Code) auslesen
string html = sr.ReadToEnd();

//Streamreader und Webanfrage schließen
sr.Close();
response.Close();

//Quellcode zurückgeben
return html;
}

//Snippet von www.code-bude.net

Ein Aufruf der Funktion könnte zum Beispiel so aussehen:

getHTML("http://www.code-bude.net");

//Snippet von www.code-bude.net

Solltet ihr Verbesserungsvorschläge oder sogar Probleme mit dem Snippet haben, schreibt mir einen Kommentar.
Viele Grüße,
Raffi

Emails versenden in C#

csharp Mail 150x150 Emails versenden in C#Heute zeige ich euch, wie man ganz einfach Emails in C# verschicken kann. Alles, was benötigt wird, bringt die Klasse System.Net.Mail mit sich.
Um nachher Email mittels des Snippets verschicken zu können benötigt ihr lediglich die Adresse eines SMTP-Servers und gegebenen Falls die Zugangsdaten für diesen. (Offene, sprich registrierungsfreie Server, werdet ihr heutzutage kaum noch finden.)
Wie die Adresse des SMTP-Servers eures Anbieters lautet erfragt/ergoogelt ihr euch am besten auf den Seiten eures Anbieters oder ihr schaut mal in eine dieser drei Listen ([1] [2] [3]).
Habt ihr alle nötigen Zugangsdaten parat, kann es auch schon losgehen.

public void sendMail(string absender, string empfaenger,
[…]