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

Datum zur aktuellen Kalenderwoche

Wenn man zur aktuellen Kalernderwoche Wochenstart und Wochenende errechnen möchte, dann nutzt man diese kleine Abfrage. Lässt sich natürlich auch auf andere Zeiträume berechnen.

Ein Beispiel für die Aktuelle KW:

select
convert(date,dateadd(WEEK, datediff(WEEK,0,getdate()), 0)-1) as Start,
convert(date,dateadd(WEEK, datediff(WEEK,0,getdate()), 0)+6) as Ende

Ein Beispiel für die vergangene Woche:

select
convert(date,dateadd(WEEK, datediff(WEEK,0,getdate()), 0)-7) as Start,
convert(date,dateadd(WEEK, datediff(WEEK,0,getdate()), 0)-1) as Ende

Unsere Zukunft oder doch nur eine Wahnvorstellung?

Dieses Video ist schon etwas älter, bin aber durch Zufall wieder drüber gestolpert. Ich finde es durchaus beängstigend, denn vorstellbar ist es, dass es so in ferner Zukunft ablaufen wird. Die technischen Voraussetzungen sind sicherlich bald gegeben.

Damit ich mir dieses Video immer wieder mal in Erinnerung rufen kann, speicher ich es mir mal ab.

Sight from Robot Genius on Vimeo.