单位换算 Delphi示例
生活随笔
收集整理的這篇文章主要介紹了
单位换算 Delphi示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
unitConversion.XML? 單位分類及對應關系
<?xml version="1.0" encoding="UTF-8"?> <unitConversion><weight title="重量"><t title="噸">1</t><kg title="千克">1000</kg><g title="克">1000000</g><lb title="磅">0.00220462</lb></weight><length title="長度"><m title="米">1</m><cm title="厘米">100</cm><mm title="毫米">1000</mm><km title="千米">0.001</km><inch title="英寸">39.37</inch></length><volume title="體積"><m3 title="立方米">1</m3><cm3 title="立方厘米">1000000</cm3><mm3 title="立方毫米">1000000000</mm3><km3 title="立方千米">0.000000001</km3><inch3 title="立方英寸">61024</inch3></volume><area title="面積"><m2 title="平方米">1</m2><cm2 title="平方厘米">10000</cm2><mm2 title="平方毫米">1000000</mm2><km2 title="平方公里">0.000001</km2><acre title="公畝">0.01</acre><inch2 title="平方英寸">1550.05</inch2></area> </unitConversion>Delphi源碼? 單位換算單元
unit utUnitConversion;interface usesSysUtils,MSXML2_TLB;(*該函數(shù)返回ASourceVal相對ADestVal之間的單位系數(shù)AFilePath: XML文件路徑ASourceUnit, ADestUnit: 源,目標單位Result: 返回的換算系數(shù), 0表示配對失敗*)function UnitConversion(const AFilePath, ASourceUnit, ADestUnit: string): Double; implementationfunction UnitConversion(const AFilePath, ASourceUnit, ADestUnit: string): Double; varFXMLDoc : IXMLDOMDocument2;aNode : IXMLDOMNode;dSource, dDest : Double; begin//創(chuàng)建XML對象FXMLDoc := CoDOMDocument40.Create;try//讀取XML文件內(nèi)容FXMLDoc.load(AFilePath);FXMLDoc.setProperty('SelectionLanguage', 'XPath');Result := 0;//查找源單位節(jié)點,不存在則返回aNode := FXMLDoc.selectSingleNode('unitConversion//'+ASourceUnit);if aNode = nil then exit;//獲取源單位值dSource := StrToFloatDef(aNode.text, 0);//查找目標單位節(jié)點,不存在則返回aNode := aNode.parentNode.selectSingleNode(ADestUnit);if aNode = nil then exit;//獲取目標單位值dDest := StrToFloatDef(aNode.text, 0);//分母為0時返回if dDest = 0 then exit;//求兩者之間系數(shù)Result := dSource / dDest;finallyFXMLDoc := nil;end; end;end.
?
?
調(diào)用方式
Result := UnitConversion('unitConversion.XML', 'g', 'kg');
?
?
總結(jié)
以上是生活随笔為你收集整理的单位换算 Delphi示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sis最新地址获取方法_微信表情悄悄更新
- 下一篇: short转换byte