All pastes #991945 Raw Edit

Unbenannt

public text v1 · immutable
#991945 ·published 2008-04-21 14:34 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;

namespace MensaPlan
{
    class Program
    {
        static HttpWebRequest m_WebRequest;
        static CookieContainer m_Cookies = new CookieContainer();


        static void Main(string[] args)
        {
            const string foodExp = "(.)+&lt;td class=\"borderb\"&gt;(?<FOOD>(.)+) &nbsp;&lt;/td&gt;";
            const string URL = "http://www.studierendenwerk-koblenz.de/speiseplan.php";
            string page = string.Empty;

            page = LoadURL(URL);
            if (page.Equals(string.Empty))
            {
                Environment.Exit(1);
            }

            page = page.Replace(">", "&gt;"); // will weder >
            page = page.Replace("<", "&lt;"); // noch < parsen :(

            Regex regex = new Regex(foodExp);
            MatchCollection matches = regex.Matches(page);

            if (matches.Count != 10)
            {
                Console.WriteLine("Fehlerhafte Anzahl an Einträgen");
                Environment.Exit(1);
            }

            int dow;
            switch (DateTime.Now.DayOfWeek)
            {
                case DayOfWeek.Monday: dow = 0;
                    break;
                case DayOfWeek.Tuesday: dow = 1;
                    break;
                case DayOfWeek.Wednesday: dow = 2;
                    break;
                case DayOfWeek.Thursday: dow = 3;
                    break;
                case DayOfWeek.Friday: dow = 4;
                    break;
                default:
                    dow = 0;
                    Console.WriteLine("Heute gibts nix");
                    Environment.Exit(1);
                    break;
            }


            if (matches[dow].Success && matches[dow + 5].Success)
            {
                Console.WriteLine("Ausgabe 1: " + matches[dow].Groups["FOOD"].Value);
                Console.WriteLine("Ausgabe 2: " + matches[dow + 5].Groups["FOOD"].Value);
            }
        }


        public static string LoadURL(string url)
        {
            HttpWebResponse response = null;
            Stream dataStream = null;
            StreamReader reader = null;
            string resp = string.Empty;

            try
            {
                m_WebRequest = (HttpWebRequest)WebRequest.Create(url);
                m_WebRequest.UserAgent = "Agent Smith";
                m_WebRequest.CookieContainer = m_Cookies;

                response = (HttpWebResponse)m_WebRequest.GetResponse();
                dataStream = response.GetResponseStream();
                reader = new StreamReader(dataStream);
                resp = reader.ReadToEnd();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.Message);
                Console.WriteLine("URL      : " + url);
                System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
                System.Diagnostics.StackFrame sf = st.GetFrame(1);
                Console.WriteLine("Methode  : " + sf.GetMethod().Name + "()");
            }
            finally
            {
                if (reader != null)
                    reader.Close();
                if (dataStream != null)
                    dataStream.Close();
                if (response != null)
                    response.Close();
            }

            return resp;
        }
    }
}