Delphi中有一个EncdDecd单元,uses 它,以下的函数出自这个单元
1.用TBitmap对象Load图片
TBitmap.LoadfromFile
2.把TBitmap存入一个Stream中
TBitmap.SaveToStream(mapStream)
3.把图片流进行base64编码,生成一个字符串流
EncodeStream(Input, Output: TStream)
这里Input是你的图片流,Output是你预先建好的字符串流
4.从字符串流中读出字符串 TStringStream.DataString
从字符串转换为图片是一个逆过程.用DecodeStream函数
另外流处理时,要注意Stream.Postion,注意回位. ......
using System;
using System.Xml;
namespace ReadXMLfromFile
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string[] args)
{
XmlTextReader reader = new XmlTextReader ("books.xml");
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: // The node is an element.
Console.Write("<" + reader.Name);
Console.WriteLine(">");
break;
case XmlNodeType.Text: //Display the text in each element.
Console.WriteLine (reader.Value);
break;
case XmlNodeType.EndElement: //Display the end of the element.
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}
Console.ReadLine();
}
......
最近在博客园代码的重构中, 我发觉用DataTable.Select进行XML数据的查询也是挺方便的。
比如我们根据Url中参数值查询XML数据中相应节点的数据。
假如我们有这样的Xml数据文件Catalog.xml:
<Navigation>
<Catalog title="非技术区" url="default.aspx?cate=2" rss="MainFeed.aspx?cate=2" visible="true" cate="2"/>
<Catalog title="转载区" url="default.aspx?cate=7" rss="MainFeed.aspx?cate=7" visible="true" cate="7"/>
</Navigation>通过DataTable.Select查询Xml数据的方法是:
DataSet myds=new DataSet();
myds.ReadXml(Server.MapPath("Catalog.xml"));
if(Request.QueryString["cate"]!=null)
{
querystr="cate="+Request.QueryString["cate"];
}
  ......
<html>
<head>
<title>XML Demo</title>
</head>
<body>
<script language="javascript">
function window.onload()
{
var domXML=new ActiveXObject("Microsoft.xmldom");
domXML.load("aTest.xml");
var myRoot=domXML.documentElement;
var myNodes2=myRoot.childNodes;
var nn = domXML.getElementsByTagName("Name");
alert(nn.length);
var myNode2=myNodes2.nextNode();
var tableStr="";
}
</script>
<form id="myform" name="myform" action="#" method="get">
</form>
</body>
</html> ......
首先要有一个简易的服务器,建立一个站点,然后站点下存放
1:crossdomain.xml 这个是跨与域策略文件,用于指定域通过Flash
Player访问本域的资源(如果服务器在本机就没有这个必要)但是远程的话就要(建议要)
文件内容:
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
*是指所有的域通过 Flash Player都可以访问本域的资源。
2:由于这个是做用户登陆的,所以要有一个login.xml供外面访问。当然名字可以随便起。
Xml的内容参看图片。
代码以及解释如下
<mx:HTTPService
id="loginRPC" url="http://localhost/login.xml"
result="loginRPCResult(event)"/>
url:
远程xml文件的url
Result:接收
loginRPCResult(event) 返回的结果
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#04D99F,
#09B9FA]"
& ......
首先要有一个简易的服务器,建立一个站点,然后站点下存放
1:crossdomain.xml 这个是跨与域策略文件,用于指定域通过Flash
Player访问本域的资源(如果服务器在本机就没有这个必要)但是远程的话就要(建议要)
文件内容:
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
*是指所有的域通过 Flash Player都可以访问本域的资源。
2:由于这个是做用户登陆的,所以要有一个login.xml供外面访问。当然名字可以随便起。
Xml的内容参看图片。
代码以及解释如下
<mx:HTTPService
id="loginRPC" url="http://localhost/login.xml"
result="loginRPCResult(event)"/>
url:
远程xml文件的url
Result:接收
loginRPCResult(event) 返回的结果
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#04D99F,
#09B9FA]"
& ......
经常见XML序列化的文章,对该序列化方式并不是太晓得,看了MSDN和一些资料后有了大致的了解,大道理讲不出来,上 代码先:
方式一 通过XmlSerialize直接序列化:
Class BeSerialized
{
//某字段
public int someFiled;
//公共类的一个可序列化的属性
private bool serialme;
public bool SerialMe
{
get { return serialme; }
set { serialme = value; }
}
}
class process
{
public void Main()
{
SerialIt();
DeSerialIt();
}
SerialIt()
{
BeSerialized bs=new BeSerialized();
bs.someFiled=;
bs.SerialMe=;
XmlSerialize xs=new XmlSerialize(typeof(BeSerialized));
StreamWriter sw=
xs.Serialze(sw,bs);
}
DeSerialIt()
{
XmlSerialze xs=new XmlSerialize(typeof(BeSerialized));
StreamReader sr
BeSerialized bs=(BeSerialized)xs.DeSerialize(sr);
}
}
方式二 手动在要序列化的类设置属性类型
public class Student
{
private int id;
[xmlAttribute]
public int ID //序列化 ......