Speichern von Einstellungen in C# mit AppSettings

Wie speichert man eigentlich schnell und einfach Einstellungen in C# Anwendungen? Diese Frage hat sich sicherlich jeder einmal in seiner C# Laufbahn gestellt und die Antwort ist so simpel. Am einfachsten geht es mit den AppSettings des ConfigurationManager im .Net-Frameworks.
Das .Net-Framework bringt nämlich gleich einen eigenen Manager zum verwalten und speichern von Einstellungen mit sich. Die Eigenschaften werden im gebräuchlichen XML-Format abgelegt. Und damit ihr seht, dass der Umgang mit den AppSettings wirklich ein Kinderspiel ist, habe ich euch zwei kleine Methoden zum Speichern/Ändern und Auslesen von Einstellungen geschrieben.

public string getAppSetting(string key)
{
//Laden der AppSettings
Configuration config = ConfigurationManager.OpenExeConfiguration(
System.Reflection.Assembly.GetExecutingAssembly().Location);
//Zurückgeben der dem Key zugehörigen Value
return config.AppSettings.Settings[key].Value;
}

public void setAppSetting(string key, […]

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 […]

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

Update: Cloud Downloader 1.5

english flag For english information scroll down please.
Nun ist es mal wieder soweit, ein neues Update für den Cloud Downloader ist am Start.
Was sich alles geändert hat und was neu ist, habe ich euch kurz zusammengefasst:

Die gewählte Sprache, der letzte Speicherort und andere Einstellungen werden gesichert.
Es ist möglich Suchergebnisse beizubehalten, um Downloads aus mehreren Suchen gleichzeitig auszuwählen.
Es lassen sich alle Suchergebnisse auf einmal mit nur einem Klick markieren.
Es gibt einen Verlauf der heruntergeladenen Songs

Screenshots (Cloud Download 1.5):
clouddownloader download1 150x150 Update: Cloud Downloader 1.5 clouddownloader history 150x150 Update: Cloud Downloader 1.5 clouddownloader search 150x150 Update: Cloud Downloader 1.5