=

Daschmi's Notizblog

RSS Feed

Längste Übereinstimmung aus einer MySQL Tabelle auslesen

Erstellt in PHP, Sonstiges am 26. Februar 2016

Ich hatte das Problem, dass ich eine Tabelle mit Vorwahlen hatte und für eine Rufnummer die Kosten aus dieser Tabelle ermitteln musste. Hierzu wollte ich den Datensatz ermitteln der von der Länge her am weitesten mit der Nummer übereinstimmt. Ich musste etwas nachdenken und habe es schließlich mit folgendem Query gelöst:

SELECT
	*
FROM
	`tbl_connectionprice`
WHERE
	LEFT(':destinationnumber', LENGTH(`areacode`)) = `areacode`
ORDER BY
	LENGTH(`areacode`) DESC
LIMIT 1

Die Variable :destinationnumber ist dabei die komplette Rufnummer die angerufen wurde inklusive Vorwahl und in der Spalte areacode sind die Vorwahlen definiert.

Excel Funktion AUFRUNDEN mit PHP nachgebildet

Erstellt in PHP am 12. Januar 2016

Die Excel Funktion „AUFRUNDEN“ kann mit folgender Funktion in PHP nachgebildet werden:

public static function AUFRUNDEN($value, $digit)
{

	$pow = pow(10, $digit);

	return (ceil($pow * $value) + ceil($pow * $value - ceil($pow * $value))) / $pow;

} // public static function AUFRUNDEN($value, $digit)

Makro für doppelte Unterstreichung in MathJax

Erstellt in Sonstiges am 10. Dezember 2015

Um einen Text doppelt zu unterstreichen kann man in MathJax folgendes Makro definieren um sich die Arbeit zu vereinfachen:

MathJax.Hub.Config({
  TeX: {
    Macros: {
      du: ["\\underline{\\underline{#1}}", 1]
    }
  }
} );

WordPress Menü Reihenfolge drehen

Erstellt in Wordpress am 6. Dezember 2015

Hat man im WordPress ein Menü, welches man mittels wp_nav_menu anzeigt und möchte die Elemente drehen. So kann man folgenden Filter verwenden:

function daschmi_reverse_menu($menu, $options)
{

  return array_reverse($menu);

}

Das Menü bindet man dann wie folgt ein:

add_filter('wp_nav_menu_objects', 'daschmi_reverse_menu');
wp_nav_menu(array('theme_location' => 'header-menu'));
remove_filter('wp_nav_menu_objects', 'daschmi_reverse_menu');

PDFs automatisch aus Ordner drucken mit C#

Erstellt in C#, Sonstiges am 26. November 2015

Aufgabenstellung war das Drucken von PDF Dokumenten die automatisiert auf einem Netzlaufwerk abgelegt werden. Letztendlich habe ich es über ein kleines C# Programm gelöst welches den Acrobat aufruft, das Dokument druckt und anschließend löscht.

Im Beispiel werden alle Dokumente gedruckt, die im Ordner „U:\PRINT\“ abgelegt werden. Dem Programm können zwei Parameter übergeben werden, einmal der Pfad zum Acrobat Reader und einmal der Ordner der überwacht werden soll.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using System.Diagnostics;

namespace ConsoleApplication1
{

    class Program
    {

        static void Main(string[] args)
        {

            String strAcrobat = @"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe";
            String strPath = @"C:\Users\Daniel\Desktop\PRINT\";

            if (args.Length == 2 && !String.IsNullOrEmpty(args[0])) strAcrobat = args[0];
            if (args.Length == 2 && !String.IsNullOrEmpty(args[1])) strPath = args[1];

            do
            {

                while (!Console.KeyAvailable)
                {

                    string[] arFiles = Directory.GetFiles(strPath);

                    foreach (String strFile in arFiles)
                    {

                        Console.WriteLine("Drucke :" + strFile);

                        ProcessStartInfo procStartInfo = new ProcessStartInfo(strAcrobat, " /p /h " + strFile);

                        procStartInfo.RedirectStandardOutput = true;
                        procStartInfo.UseShellExecute = false;
                        procStartInfo.CreateNoWindow = true;

                        System.Diagnostics.Process proc = new System.Diagnostics.Process();
                        proc.StartInfo = procStartInfo;
                        proc.Start();
                        proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

                        if (proc.HasExited == false)
                        {
                            proc.WaitForExit(10000);
                        }

                        proc.EnableRaisingEvents = true;

                        proc.Close();
                        KillAdobe("AcroRd32");

                        Console.WriteLine("Lösche :" + strFile);
                        Console.WriteLine("");

                        File.Delete(strFile);

                    }

                }

            } while (Console.ReadKey(true).Key != ConsoleKey.Escape);

        } // static void Main(string[] args)

        private static bool KillAdobe(string name)
        {

            foreach (Process clsProcess in Process.GetProcesses().Where(clsProcess => clsProcess.ProcessName.StartsWith(name)))
            {

                clsProcess.Kill();

                return true;

            }

            return false;

        } // private static bool KillAdobe(string name)

    }

}


Bitte genehmigen Sie die Verwendung von Cookies dieser Website! Mehr Informationen

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close