C# – Datei nach ASCII konvertieren

Mit diesem kleinen Skript konvertieren ich mir Dateien nach ASCII.

        static void Main(string[] args)
        {

            string file = @"e:\Temp\file_with_utf8bom";

            Console.WriteLine(GetFileEncoding(file).ToString());
            Console.ReadKey();

            if (GetFileEncoding(file).ToString() != "System.Text.ASCIIEncoding")
            {
                StreamReader sr = new StreamReader(file);
                StreamWriter sw = new StreamWriter(file + "_new", false, Encoding.Default);

                sw.WriteLine(sr.ReadToEnd());
                sw.Close();
                sr.Close();

            }
        }

        public static Encoding GetFileEncoding(string filename)
        {
            // Read the BOM
            var bom = new byte[4];
            using (var file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                file.Read(bom, 0, 4);
            }

            // Analyze the BOM
            if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76)
            {
                return Encoding.UTF7;
            }

            else if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf)
            {
                return Encoding.UTF8;
            }
            else if (bom[0] == 0x42 && bom[1] == 0x50 && bom[2] == 0x30)
            {
                return Encoding.UTF8;
            }

            else if (bom[0] == 0xff && bom[1] == 0xfe)
            {
                return Encoding.Unicode;
            }

            else if (bom[0] == 0xfe && bom[1] == 0xff)
            {
                return Encoding.BigEndianUnicode;
            }

            else if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff)
            {
                return Encoding.UTF32;
            }
            else
                return Encoding.ASCII;
        }

SQL-Server – Festplattenkapazität selektieren

Ein kurzes aber ziemlich wichtiges Statement, wenn die Kapazitäten von einem oder mehreren SQL-Servern beobachtet werden soll. In meinem Fall läuft täglich ein Job, welcher diverse Parameter prüft und aus den gesammelten Daten eine Staus-E-Mail erzeugt. Neben einer Auflistung der SQL-Agents (aktiv, erfolgreich, fehlerhaft) führe ich mir jetzt endlich auch den freien Speicherplatz auf.

;WITH bytes
AS (
 SELECT DISTINCT s.volume_mount_point
 ,cast(s.available_bytes / 1048576.0 AS DECIMAL(20, 2)) AS verfuegbar
 ,cast(s.total_bytes / 1048576.0 AS DECIMAL(20, 2)) AS total
 FROM sys.master_files f
 CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id) s
 )
SELECT volume_mount_point
 ,verfuegbar
 ,total
 ,cast((verfuegbar / total) * 100 AS DECIMAL(20, 2)) as prozent
FROM bytes
ORDER BY volume_mount_point

Die Ausgabe könnte dann z.B. so aussehen:

volume_mount_point	verfuegbar	total		prozent
C:\			8257.02		40857.00	20.21
D:\			32284.75	48073.00	67.16

Facebook Account löschen

Da ich immer wieder suchen muss, wenn es um das Thema Account-Löschung geht, merke ich es mir nun hier.

Über diesen Link ist es möglich, seinen Account wirklich zu löschen. Facebook räumt einem noch 14 Tage Bedenkzeit ein. Wenn man sich in diesen zwei Wochen nicht einloggt und somit den Vorgang unterbricht, wird der Account gelöscht.

Happy „Lösching“

Weiterlesen

Tabelle auf Existens prüfen

Manchmal ist es notwendig, dass z.B. in einem Job geprüft werden muss, ob eine Tabelle bereits exisitiert, die angelegt werden soll. Meine Lösung dazu schaut so aus:

IF NOT (
        SELECT OBJECT_ID('tempdb..##test')
        ) IS NULL
    SELECT 'Datenbank vorhanden'
ELSE
BEGIN
    SELECT 'Datenbank nicht vorhanden'

    SELECT 'testeintrag' Feldname
    INTO ##test

    SELECT 'Datenbank angelegt'
END
GO

DROP TABLE ##test