200分求助将c#改成delphi
本帖最后由 caozhy 于 2013-09-04 17:44:39 编辑
项目地址
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml;
using System.Xml.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication11
{
class BaiduApi
{
public static string GetDistance(string rregion, string rcity, string dregion, string dcity)
{
string str = "";
try
{
XDocument docbaidudis = XDocument.Load(Application.StartupPath + "\\baidudis.XML");
int count = int.Parse(creatconxml());
WebRequest request = WebRequest.Create("http://api.map.baidu.com/direction/v1?mode=driving&origin=" + rregion + "&destination=" + dregion + "&origin_region=" + rcity + "&destination_region=" + dcity + "&output=json&ak=" + docbaidudis.Element("sys").Element("key" + count.ToString()).Value);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
str = reader.ReadToEnd();
reader.Close();
reader.Dispose();
response.Close();
int statusindex = str.IndexOf("status");
string status = str.Substring(statusindex + 8, 1);
if (status == "0")
{
int lastdisindex = str.LastIndexOf("distance");
string distance = str.Substring(lastdisindex + 10, str.IndexOf(",", lastdisindex) - lastdisindex);
return distance.Remove(distance.IndexOf(','));
}
else if (status == "2")
{
return status;
}
else//(status == "5")
{
XDocument docbaiducount = XDocument.Load(Application.StartupPath + "\\baiducount.XML");
docbaiducount.Element("sys").Element("key").Value = (int.Parse(docbaiducount.Element("sys").Element("key").Value) + 1).ToString();
docbaiducount.Save("baiducount.xml");
return GetDistance(rregion, rcity, dregion, dcity);
}
}
catch (Exception tt)
{
return "0";
}
}
private static string creatconxml()
{
if (!File.Exists("baiducount.xml"))
{
XmlWriter writer = null;
try
{
writer = XmlWriter.Create("baiducount.xml");
writer.WriteStartElement("sys");
writer.WriteElementString("date", System.DateTime.Today.ToShortDateString());
writer.WriteElementString("key", "1");
writer.WriteEndDocument();
writer.Flush();
}
finally
{
if (writer != null)
writer.Close();
}
return "1";
}
else
{
XDocument doc = XDocument.Load(Application.StartupPath + "\\baiducount.XML");
string datetime = doc.Element("sys").Element("date").Value;
if (Convert.ToDateTime(datetime).Date != System.DateTime.Today)
{
doc.Element("sys").Element("date").Value = System.DateTime.Today.ToShortDateString();
doc.Element("sys").Element("key").Value = "1";
doc.Save("baiducount.XML");
return "1";
}
else
{
return doc.Element("sys").Element("key").Value;
}
}
}
}
http://download.csdn.net/download/cmy_ymc/5990727
不好意思,系统给分不让超过100。
[解决办法]
xml处理delphi中有xmldocument,web请求可以用idhttp
[解决办法]
本帖最后由 caozhy 于 2013-09-04 17:44:08 编辑 思路1L说的很清楚。干苦力的事情还是去项目交易频道请人帮忙吧。毕竟你让别人义务奉献给你劳动,你拿着劳动成果去老板那里领工资,这不合适。
[解决办法]
分给1楼吧,
这不合适
------解决方案--------------------
公司嘛,如果现抓一个小“项目”就当作救命稻草,说明员工瞎忙活一年到头来其实可能是无足轻重的。这种情况下就不能怪员工懒惰。