Någon kankse är intresserad?
Kod: Markera allt
using System;
using System.IO;
using System.Net;
using System.Globalization;
using System.Text.RegularExpressions;
namespace EurofireControl
{
public class Temp
{
protected static Regex termoPattern = new Regex(@"Time[:][ ](\d{2}[:]\d{2})[,][ ]Date[:][ ](\d{2}[ ][a-zA-Z]{3}[ ]\d{4})[,][ ]Temp[:][ ]([-]?[0-9\.]+)", RegexOptions.Compiled|RegexOptions.IgnoreCase);
public static bool GetCurrentTemp(out DateTime date, out double temp)
{
bool fStatus = false;
date = DateTime.MinValue;
temp = 0.0;
// reads temp from temperatur.nu, expected format:
// Time: 22:07, Date: 09 Jan 2008, Temp: 2.6°C
try
{
WebRequest wr = HttpWebRequest.Create("http://www.temperatur.nu/termo/sollentuna/termo.txt");
wr.Method = "GET";
wr.Timeout = 10000;
using(WebResponse resp = wr.GetResponse())
{
using(Stream s = resp.GetResponseStream())
{
StreamReader sr = new StreamReader(s);
String termoLine = sr.ReadToEnd();
sr.Close();
Match termoMatch = termoPattern.Match(termoLine);
if(termoMatch.Success)
{
CultureInfo ci = new CultureInfo("en-US");
string dateTimeString = String.Format("{0} {1}", termoMatch.Groups[2].Value, termoMatch.Groups[1].Value);
date = DateTime.ParseExact(dateTimeString, "dd MMM yyyy HH:mm", ci);
ci.NumberFormat.NumberDecimalSeparator = ".";
temp = double.Parse(termoMatch.Groups[3].Value, NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, ci);
fStatus = true;
}
}
resp.Close();
}
}
catch(Exception)
{
}
return fStatus;
}
}
}