C# Log-Datei schreiben

Hier mal etwas Code-Schnipsel wie man eine Log-Datei schreibt.

StreamWriter sw;
if (!File.Exists(@"C:\log.txt"))
{
    sw = new StreamWriter(@"C:\log.txt");
}
else
{
    sw = File.AppendText(@"C:\log.txt");
}
sw.WriteLine("Start: " + DateTime.Now);
sw.Flush(); // Hier werden die Daten die sich im Speicher befinden schonmal in die Datei geschrieben
.
.
.
sw.WriteLine("Ende: " + DateTime.Now);
sw.Close();

 

C# Strings bearbeiten

Hier mal die wichtigsten Befehle um Strings zu bearbeiten:

  • Replace

    Mit Replace können einzelne Zeichen (Chars) oder Zeichenfolgen entfernt oder geändert werden.

    string newstring;
    string oldstring = "Teststring";
    
    newstring = oldstring.Replace("s","@");

    Ergebnis: „Te@t@ring“

    string newstring;
    string oldstring = "Teststring";
    
    newstring = oldstring.Replace("string","");

    Ergebnis: „Test“

  • Substring

    string oldstring = "Teststring";
    string newstring;
    
    newstring = oldstring.substring(2,3);

    Der Substring wird verwendet, wenn nur ein Teil des Strings benötigt wird.
    Die erste  Zahl in der Klammer ist der Startindex. In unserem Beispiel das „s“ an Stelle zwei.
    Die zweite Zahl gibt die länge an.  In unserem Beispiel drei Zeichen.

    T e s t s t r i n g
    0 1 2 3 4 5 6 7 8 9

    Ergebnis: „sts“.

    Möchte man z.B. die letzten drei Zeichen ausgeben sieht der Code so aus:

    string newstring;
    string oldstring = "Teststring";
    
    newstring = oldstring.Substring(oldstring.Length-3,3);

    Ergebnis: „ing“

  • ToLower

    Bei ToLower werden aus Großbuchstaben Kleinbuchstaben. Besonders hilfreich bei Authentifizierungen zu Systemen die case-sensitive sind.
    string newstring;
    string oldstring = "TestString";
    
    newstring = oldstring.ToLower();

    Ergebnis: „teststring“

Dynamischer Excel import in ein DataSet

Hier mal meine Klasse um Excelsheets in ein DataSet zu importieren.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;

namespace XLS_Test
{
    class Excel
    {
        public DataSet import(string excelfilename)
        {
            DataSet ds = new DataSet();
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = @"Data Source=" + excelfilename + ";Provider=Microsoft.Jet.OLEDB.4.0;";
            con.ConnectionString += @"Extended Properties=""Excel 8.0;HDR=Yes""";
            con.Open();
            DataTable sheets = con.GetOleDbSchemaTable(
            OleDbSchemaGuid.Tables,
            new object[] { null, null, null, "TABLE" });

            foreach (DataRow sheet in sheets.Rows)
            {
                string tableName = sheet["Table_Name"].ToString();
                if (tableName.Substring(tableName.Length - 1, 1) == "_")
                {
                    break;
                }
                else
                {
                    string sql = "SELECT * FROM [" + tableName + "]";
                    OleDbDataAdapter adap = new OleDbDataAdapter(sql, con);
                    adap.Fill(ds, tableName);
                }
            }
            con.Close();
            return ds;
        }

    }
}

Mit diesem Code funktionieren nur Excelsheets bis zur Excel Version 2003.

Falls Ihr xlsx-Dateien zum importieren habt wäre der einfachste weg diese Dateien vorher im xls Format abzuspeichern. Falls das keine Option darstellt könnt ich euch hier oledb 12 herunterladen.

Der connectionstring müsste dann so aussehen:

con.ConnectionString = @"Data Source=" + excelfilename + ";Provider=Microsoft.Ace.OLEDB.12.0;";
con.ConnectionString += @"Extended Properties=""Excel 12.0;HDR=Yes""";