张志峰的博客

水滴石川,积少成多。

导航

2013年8月16日

摘要: NativeXml可以在官网上下载,下载后将文件夹放在指定地方,打开DELPHI在其环境变量中引用NativeXml路径,然后在程序中引用NativeXml单元,我们就可以使用NativeXml了。NativeXml的方法属性:ANativeXml := TNativeXml.Create(Self);//创建ANativeXml.XmlFormat := xfReadable; //格式ANativeXml.EncodingString := 'UTF-8';//编码ANativeXml.ExternalEncoding := seUTF8;ANativeXml.L... 阅读全文

posted @ 2013-08-16 17:52 ╰★张志峰★╮ 阅读(1614) 评论(0) 推荐(0)

摘要: NativeXml默认的字符类型为Utf8String,有时在读取中文时还是会出现乱码问题,在329版本中提供一种类型转换函数sdUtf8ToWide(),我们可以这样sdUtf8ToWide(AXmlNode.Value)进行类型转换,对之前的版本中XML节点有ValueWide属性可正确取得中文,在329版本中这个属性可能变成了ValueUnicode,但效果并不是很理想。 阅读全文

posted @ 2013-08-16 17:51 ╰★张志峰★╮ 阅读(1592) 评论(0) 推荐(0)

摘要: 一般XML的编码格式设置成UTF8比较通用,下面演示使用UTF8编码方式存储和处理包含中文的XML字符串(文件)。1.设置启用内置的widestring支持NativeXml内部使用ANSI string和UTF8编码的string两种字符串类型。如果要让NativeXml能够解析widestring字符串的话,直接将TNativeXml的Utf8Encoded属性设置为True。如下:FXmlDoc:= TNativeXml.Create;FXmlDoc.Utf8Encoded:= True;这样NativeXml内部会自动对Widestring和utf8做转换。此处需要注意的是,如果执行F 阅读全文

posted @ 2013-08-16 17:37 ╰★张志峰★╮ 阅读(2525) 评论(0) 推荐(0)

摘要: 我遇到 NativeXML 在它的一个节点的属性上面写入属性,但是当读出的值中包含汉字的时候出现了乱码。检查代码如下NativeXml := TNativeXml.Create;try NativeXml.EncodingString := 'GB2312';// 'UTF-8'; NativeXml.Utf8Convert := True; NativeXml.BinaryEncoding := xbeBinHex; NativeXml.Clear; NativeXml.LoadFromFile(strFilePath); RootNode := Native 阅读全文

posted @ 2013-08-16 17:28 ╰★张志峰★╮ 阅读(478) 评论(0) 推荐(1)

摘要: Delphi 为TClientdataset定义结果集,并增加记录procedure addDefsFieldsForCDS(aDataSet: TClientDataSet);begin aDataSet.Data := null; aDataSet.FieldDefs.Clear; aDataSet.FieldDefs.Add('ID', ftString, 100); aDataSet.FieldDefs.Add('CODE', ftString, 100); aDataSet.FieldDefs.Add('NEW_L_CODE', ftS 阅读全文

posted @ 2013-08-16 17:26 ╰★张志峰★╮ 阅读(1001) 评论(0) 推荐(0)

摘要: Delphi生成GUIDUses ComObj;Var aGUID: string;aGUID := GetClassId; // 取得GUID 阅读全文

posted @ 2013-08-16 17:08 ╰★张志峰★╮ 阅读(1620) 评论(0) 推荐(0)

摘要: 1.创建XML文件var Doc: TNativeXml;//声明上下文对象var filepath:string;//文件路径DOC:=TNativeXml.CreateName('root');Doc.EncodingString:='gb2312';DOC.XmlFormat:=xfReadable;DOC.SaveToFile(filepath);2.创建新节点//先在根节点下创建一个节点名为userInfo的节点,然后给该节点写一个属性为loginname,属性值为ceshiyong DOC.Root.NodeNew('userInfo' 阅读全文

posted @ 2013-08-16 15:16 ╰★张志峰★╮ 阅读(481) 评论(0) 推荐(0)