<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The curse of Dennis D. Spreen &#187; Delphi 2009</title>
	<atom:link href="http://blog.spreendigital.de/category/delphi/delphi-2009/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.spreendigital.de</link>
	<description>A blog about Delphi programming, web and other technical stuff</description>
	<lastBuildDate>Thu, 10 May 2012 07:14:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>VerySimpleXML &#8211; a lightweight Delphi XML reader and writer</title>
		<link>http://blog.spreendigital.de/2011/11/10/verysimplexml-a-lightweight-delphi-xml-reader-and-writer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=verysimplexml-a-lightweight-delphi-xml-reader-and-writer</link>
		<comments>http://blog.spreendigital.de/2011/11/10/verysimplexml-a-lightweight-delphi-xml-reader-and-writer/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 10:04:24 +0000</pubDate>
		<dc:creator>Dennis</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Delphi 2010]]></category>
		<category><![CDATA[Delphi Programming]]></category>
		<category><![CDATA[Delphi XE]]></category>
		<category><![CDATA[Delphi XE2]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.spreendigital.de/?p=897</guid>
		<description><![CDATA[There are lot of possibilities if you&#8217;re in need to parse or write XML files: use TXMLDocument (the MSXML wrapper) or use xml components like OmniXML, NativeXml, ADOM, SAX, libxml2, DIXml, fcl-XML, Fast XMLParser, SimpleXML Now here comes another one: VerySimpleXML &#8211; a lightweight, one-unit XML reader/writer in under 500 600 lines of code. Use [...]]]></description>
			<content:encoded><![CDATA[<p>There are lot of possibilities if you&#8217;re in need to parse or write <a href="http://www.w3.org/XML/" target="_blank">XML</a> files:</p>
<ul>
<li>use <a href="http://delphi.about.com/od/internetintranet/ss/xml_rss_read.htm" target="_blank">TXMLDocument</a> (the MSXML wrapper)</li>
<li>or use xml components like <a href="http://www.omnixml.com/" target="_blank">OmniXML</a>, <a href="http://www.simdesign.nl/xml.html" target="_blank">NativeXml</a>, <a href="http://www.philo.de/xml/downloads.shtml" target="_blank">ADOM</a>, <a href="http://sourceforge.net/projects/saxforpascal/" target="_blank">SAX</a>, <a href="http://sourceforge.net/projects/libxml2-pas/" rel="nofollow" target="_blank">libxml2</a>, <a href="http://www.yunqa.de/delphi/doku.php/products/xml/index" target="_blank">DIXml</a>,<a href="http://wiki.freepascal.org/fcl-xml" target="_blank"> fcl-XML</a>, <a href="http://destructor.de/xmlparser/index.htm" target="_blank">Fast XMLParser,</a> <a href="http://www.audio-data.de/simplexml.html" target="_blank">SimpleXML<br />
</a></li>
</ul>
<p>Now here comes another one: <strong>VerySimpleXML &#8211; a lightweight, one-unit XML reader/writer</strong> in under <del>500</del> 600 lines of code. Use it for small well-formed XML files (like configuration files, etc.).<span id="more-897"></span></p>
<p><strong>Download <a href='http://blog.spreendigital.de/wp-content/uploads/2012/05/verysimplexml-v1.1.zip'>verysimplexml-v1.1.zip</a></strong> (7kb)<br />
<strong>Download <a href='http://blog.spreendigital.de/wp-content/uploads/2011/11/verysimplexml-v1.0.zip'>verysimplexml-v1.0.zip</a></strong> (7kb)</p>
<p>What&#8217;s new:<br />
v1.1 &#8211; 2012/05/01<br />
changed class name to reflect unit naming (class is now called<br />
TXmlVerySimple instead TVerySimpleXml)<br />
- it uses TStreamReader to read line by line instead of reading the<br />
whole file at once (this allows parsing of big xml files with little<br />
additional memory)<br />
- automatically escapes/unescapes not allowed chars (>, <, ", &#038;), thus<br />
removes the most-hated "- escaping introduced in v1.0</p>
<p>Some usage examples:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">uses</span> Xml<span style="color: #000066;">.</span><span style="color: #006600;">VerySimple</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span>
  Xml<span style="color: #000066;">:</span> TXmlVerySimple<span style="color: #000066;">;</span>
  Node<span style="color: #000066;">,</span> Child<span style="color: #000066;">:</span> TXmlNode<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  Xml <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TXmlVerySimple<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Xml<span style="color: #000066;">.</span><span style="color: #006600;">LoadFromFile</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'example.xml'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Xml<span style="color: #000066;">.</span><span style="color: #006600;">Root</span><span style="color: #000066;">.</span><span style="color: #006600;">Find</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'book'</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'id'</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'bk102'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">.</span><span style="color: #006600;">Find</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'author'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">.</span><span style="color: #006600;">Text</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Dein, Carol'</span><span style="color: #000066;">;</span>
  Node <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Xml<span style="color: #000066;">.</span><span style="color: #006600;">Root</span><span style="color: #000066;">.</span><span style="color: #006600;">AddChild</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'book'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Child <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Node<span style="color: #000066;">.</span><span style="color: #006600;">AddChild</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'author'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Child<span style="color: #000066;">.</span><span style="color: #006600;">Text</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Barger, Al'</span><span style="color: #000066;">;</span>
  Child<span style="color: #000066;">.</span><span style="color: #006600;">Attribute</span><span style="color: #000066;">&#91;</span><span style="color: #ff0000;">'type'</span><span style="color: #000066;">&#93;</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'topseller'</span><span style="color: #000066;">;</span>
  Node<span style="color: #000066;">.</span><span style="color: #006600;">AddChild</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'title'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">.</span><span style="color: #006600;">SetAttribute</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'lang'</span><span style="color: #000066;">,</span> <span style="color: #ff0000;">'en'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">.</span><span style="color: #006600;">SetText</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'A big View'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Xml<span style="color: #000066;">.</span><span style="color: #006600;">SaveToFile</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'output.xml'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Xml<span style="color: #000066;">.</span><span style="color: #006600;">Free</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>VerySimpleXML supports just a subset of the XML specification </p>
<ul>
<li>load and save from stream or file</li>
<li>nodes, childs and attributes</li>
<li>UTF-8 and ANSI encoding</li>
<li>compact output by setting Xml.Ident := &#8221;;</li>
<li>method chaining</li>
<li><del>&#8220;&gt;&#8221; and &#8220;&gt;&#8221; inside text and attribute values when wrapped in quotation marks (XML-spec requires you to transform them into &amp;lt; etc.)</del>now automatically escaped with v1.1</li>
</ul>
<p>It does NOT support:</p>
<ul>
<li>CDATA, comments, etc&#8230;</li>
</ul>
<p>Example XML-file:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;book</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;bk101&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Gambardella, Matthew<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;keywords</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;book</span> <span style="color: #000066;">id</span>=bk102 <span style="color: #000066;">lang</span>=<span style="color: #ff0000;">&quot;en&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ralls, Kim<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Midnight Rain<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>A former architect battles corporate zombies<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;keyword</span> <span style="color: #000066;">lang</span>=<span style="color: #ff0000;">&quot;es&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>no-muerto<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/keyword<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;keyword</span> <span style="color: #000066;">lang</span>=en<span style="color: #000000; font-weight: bold;">&gt;</span></span>zombies<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/keyword<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/keywords<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;book</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;bk103&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;author</span> <span style="color: #000066;">rate</span>=<span style="color: #ff0000;">&quot;&amp;gt;5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Corets, Eva<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Maeve Ascendant<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>The collapse of a <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;nanotechnology<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> society<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><del>Warning! This is not a standard well-formed XML file (not all attributes are wrapped with quotation marks, &lt; and &gt; are used within attributes and text), it is an example of the (very simple) fault tolerance of VerySimpleXML</del>. Version 1.1 automatically escapes all non allowed chars.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.spreendigital.de/2011/11/10/verysimplexml-a-lightweight-delphi-xml-reader-and-writer/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Solving circular unit references with class helpers</title>
		<link>http://blog.spreendigital.de/2011/06/09/solving-circular-unit-references-with-class-helpers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=solving-circular-unit-references-with-class-helpers</link>
		<comments>http://blog.spreendigital.de/2011/06/09/solving-circular-unit-references-with-class-helpers/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 08:39:45 +0000</pubDate>
		<dc:creator>Dennis</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Delphi 2010]]></category>
		<category><![CDATA[Delphi Programming]]></category>
		<category><![CDATA[Delphi XE]]></category>

		<guid isPermaLink="false">http://blog.spreendigital.de/?p=767</guid>
		<description><![CDATA[Sooner or later you run into the circular unit reference problem when using a single unit for each class. There are some solutions (move the common used structs into a separate unit, use type casting, redesign your obvious bad class design, etc.) &#8211; this is a solution using class helpers. Recommended reading: &#8220;Class Helpers &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Sooner or later you run into the circular unit reference problem when using a single unit for each class. There are some <a href="http://stackoverflow.com/questions/2644973/getting-around-circular-references-in-delphi" target="_blank">solutions</a> (move the common used structs into a separate unit, use type casting, redesign your obvious bad class design, etc.) &#8211; this is a solution using class helpers. <span id="more-767"></span>Recommended reading: &#8220;<a href="http://davidglassborow.blogspot.com/2006/05/class-helpers-good-or-bad.html" target="_blank">Class Helpers &#8211; good or bad ?</a>&#8221; and &#8220;<a href="http://edn.embarcadero.com/article/34324" target="_blank">New Delphi language features since Delphi 7</a>&#8220;:</p>
<blockquote><p>&#8220;Class helpers provide a way to extend a class, but they should not be viewed as a design tool to be used when developing new code. They should be used solely for their intended purpose, which is language and platform RTL binding. &#8220;</p></blockquote>
<p>Let&#8217;s suppose we have a simple <em>TDog </em>class:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> Dog<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TDog <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>and a corresponding <em>TMaster</em> class:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TMaster <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Let&#8217;s create our objects:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">uses</span>
  Dog<span style="color: #000066;">,</span> Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span>
  Dog<span style="color: #000066;">:</span> TDog<span style="color: #000066;">;</span>
  Master<span style="color: #000066;">:</span> TMaster<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">begin</span>
  Dog <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TDog<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Dog<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Bobby'</span><span style="color: #000066;">;</span>
&nbsp;
  Master <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TMaster<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Master<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Joe'</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Works. Now we&#8217;re adding the dog&#8217;s master in our<em> TDog </em>class:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> Dog<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">uses</span>
  Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TDog <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
    Master<span style="color: #000066;">:</span> TMaster<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Ok, compiles. Alright. Now what if we need a reference to our dog in the <em>TMaster</em> class? First approach:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">uses</span>
  Dog<span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">// Compile error</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TMaster <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
    Dog<span style="color: #000066;">:</span> TDog<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Won&#8217;t compile &#8211; circular unit reference (unit <em>Dog</em> uses unit <em>Master</em>, and unit <em>Master </em>uses unit <em>Dog</em>). You may getting around by using TObject as the<em> Dog</em> object:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;">  TMaster <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
    Dog<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Well, that compiles &#8211; but you always have to type cast your <em>Dog</em> object:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000066;">&#91;</span><span style="color: #000066;">..</span><span style="color: #000066;">&#93;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  Dog <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TDog<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Dog<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Bobby'</span><span style="color: #000066;">;</span>
&nbsp;
  Master <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TMaster<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Master<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Joe'</span><span style="color: #000066;">;</span>
&nbsp;
  Master<span style="color: #000066;">.</span><span style="color: #006600;">Dog</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Dog<span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// The Master has a dog</span>
  Dog<span style="color: #000066;">.</span><span style="color: #006600;">Master</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Master<span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// The dog's master is Master</span>
&nbsp;
  <span style="color: #000066;">Writeln</span><span style="color: #000066;">&#40;</span>TDog<span style="color: #000066;">&#40;</span>Master<span style="color: #000066;">.</span><span style="color: #006600;">Dog</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">.</span><span style="color: #006600;">Name</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Now &#8211; how about using class helpers? First we move the<em> Dog </em>object into our protected area:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TMaster <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
  <span style="color: #000000; font-weight: bold;">protected</span>
    FDog<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>then we introduce a new class helper which &#8220;exports&#8221; the dog as a <em>TDog</em> class</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> MasterClassHelper<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">uses</span>
  Dog<span style="color: #000066;">,</span> Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TMasterClassHelper <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span> helper <span style="color: #000000; font-weight: bold;">for</span> TMaster
  <span style="color: #000000; font-weight: bold;">private</span>
    <span style="color: #000000; font-weight: bold;">procedure</span> SetDog<span style="color: #000066;">&#40;</span>Value<span style="color: #000066;">:</span> TDog<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
    <span style="color: #000000; font-weight: bold;">function</span> GetDog<span style="color: #000066;">:</span> TDog<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span>
    <span style="color: #000000; font-weight: bold;">property</span> Dog<span style="color: #000066;">:</span> TDog <span style="color: #000066;">read</span> GetDog <span style="color: #000066;">write</span> SetDog<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> TMasterClassHelper<span style="color: #000066;">.</span><span style="color: #006600;">GetDog</span><span style="color: #000066;">:</span> TDog<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TDog<span style="color: #000066;">&#40;</span>FDog<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// We cast the TObject(FDog) to TDog!</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">procedure</span> TMasterClassHelper<span style="color: #000066;">.</span><span style="color: #006600;">SetDog</span><span style="color: #000066;">&#40;</span>Value<span style="color: #000066;">:</span> TDog<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  FDog <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Value<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Now we&#8217;re able to access the <em>Dog</em> reference of the <em>Master</em> object without typecasting:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">uses</span>
  Dog<span style="color: #000066;">,</span> Master<span style="color: #000066;">,</span> MasterClassHelper<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span>
  Dog<span style="color: #000066;">:</span> TDog<span style="color: #000066;">;</span>
  Master<span style="color: #000066;">:</span> TMaster<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">begin</span>
  Dog <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TDog<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Dog<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Bobby'</span><span style="color: #000066;">;</span>
&nbsp;
  Master <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TMaster<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  Master<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Joe'</span><span style="color: #000066;">;</span>
&nbsp;
  Master<span style="color: #000066;">.</span><span style="color: #006600;">Dog</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Dog<span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// The Master has a dog</span>
  Dog<span style="color: #000066;">.</span><span style="color: #006600;">Master</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Master<span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// The dog's master is Master</span>
&nbsp;
  <span style="color: #000066;">Writeln</span><span style="color: #000066;">&#40;</span>Master<span style="color: #000066;">.</span><span style="color: #006600;">Dog</span><span style="color: #000066;">.</span><span style="color: #006600;">Name</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// &quot;Bobby&quot;</span>
  <span style="color: #000066;">Writeln</span><span style="color: #000066;">&#40;</span>Dog<span style="color: #000066;">.</span><span style="color: #006600;">Master</span><span style="color: #000066;">.</span><span style="color: #006600;">Name</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>  <span style="color: #808080; font-style: italic;">// &quot;Joe&quot;;</span>
&nbsp;
  <span style="color: #000066;">Writeln</span><span style="color: #000066;">&#40;</span>Dog<span style="color: #000066;">.</span><span style="color: #006600;">Master</span><span style="color: #000066;">.</span><span style="color: #006600;">Dog</span><span style="color: #000066;">.</span><span style="color: #006600;">Master</span><span style="color: #000066;">.</span><span style="color: #006600;">Dog</span><span style="color: #000066;">.</span><span style="color: #006600;">Master</span><span style="color: #000066;">.</span><span style="color: #006600;">Dog</span><span style="color: #000066;">.</span><span style="color: #006600;">Name</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span> <span style="color: #808080; font-style: italic;">// &quot;Bobby&quot;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Adding the <em>MasterClassHelper</em> in the implementation part of the <em>Master</em> unit allows us to access the<em> TDog</em> class inside our <em>TMaster</em> class, too:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">unit</span> Master<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TMaster <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span>
  <span style="color: #000000; font-weight: bold;">protected</span>
    FDog<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">TObject</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">public</span>
    Name<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">String</span><span style="color: #000066;">;</span>
    <span style="color: #000000; font-weight: bold;">procedure</span> RenameDog<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">implementation</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">uses</span>
  MasterClassHelper<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">procedure</span> TMaster<span style="color: #000066;">.</span><span style="color: #006600;">RenameDog</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  Dog<span style="color: #000066;">.</span><span style="color: #006600;">Name</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #ff0000;">'Buddy'</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Download Delphi source <a href="http://blog.spreendigital.de/wp-content/uploads/2011/06/DogMaster.zip">DogMaster.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.spreendigital.de/2011/06/09/solving-circular-unit-references-with-class-helpers/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Lua 5.1 for Delphi 2010</title>
		<link>http://blog.spreendigital.de/2009/09/28/lua-5-1-for-delphi-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lua-5-1-for-delphi-2010</link>
		<comments>http://blog.spreendigital.de/2009/09/28/lua-5-1-for-delphi-2010/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 18:36:18 +0000</pubDate>
		<dc:creator>Dennis</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Delphi 2010]]></category>
		<category><![CDATA[Delphi Programming]]></category>
		<category><![CDATA[Lua]]></category>

		<guid isPermaLink="false">http://www.spreendigital.de/blog/?p=375</guid>
		<description><![CDATA[This is a Lua 5.1 Wrapper for Delphi 2009 and Delphi 2010 which automatically creates OOP callback functions. &#8220;Lua is a powerful, fast, lightweight, embeddable scripting language, it has been used in many industrial applications (e.g., Adobe&#8217;s Photoshop Lightroom), with an emphasis on embedded systems (e.g., the Ginga middleware for digital TV in Brazil) and [...]]]></description>
			<content:encoded><![CDATA[<p>This is a Lua 5.1 Wrapper for Delphi 2009 and Delphi 2010 which automatically creates OOP callback functions.<br />
<span id="more-375"></span><a href="http://www.lua.org/about.html" target="_blank"><br />
<em>&#8220;Lua</em></a><em> is a powerful, fast, lightweight, embeddable scripting language, it has been used in many industrial applications (e.g., Adobe&#8217;s Photoshop Lightroom), with an emphasis on embedded systems (e.g., the Ginga middleware for digital TV in Brazil) and games (e.g., World of Warcraft). Lua is currently the leading scripting language in games and it has a deserved reputation for performance. To claim to be &#8220;as fast as Lua&#8221; is an aspiration of other scripting languages.&#8221;</em></p>
<p>This Lua Wrapper is based on Lua-Pascal v0.2 by <a href="http://www.marcoabreu.eti.br" target="_blank">Marco Antonio Abreu</a><br />
- converted PChar to PAnsiChar<br />
- converted Char to AnsiChar<br />
- added function LuaLibLoaded: Boolean;<br />
- added a new base class (TLua) with OOP call back functions</p>
<p><strong>Download</strong><br />
<a href="http://www.spreendigital.de/blog/wp-content/uploads/2009/09/LuaDelphi2010-v1.2.zip"></a><a href="http://blog.spreendigital.de/wp-content/uploads/2009/10/LuaDelphi2010-v1.3.zip">LuaDelphi2010-v1.3</a></p>
<p><strong>History</strong><br />
1.3 Improved Callback, now uses pointer instead of object index. Modified RegisterFunctions to allow methods from other class to be registered, moved object table into TLua class<br />
1.2  Added example on how to extend lua with a delphi dll<br />
1.1  Improved global object table, optimized delphi function calls<br />
1.0  Initial Release</p>
<p><strong>Example</strong><br />
TLua automatically creates OOP callback functions for Delphi &lt;-&gt; Lua:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">uses</span>
  Lua<span style="color: #000066;">,</span> LuaLib<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">type</span>
  TMyLua <span style="color: #000066;">=</span> <span style="color: #000000; font-weight: bold;">class</span><span style="color: #000066;">&#40;</span>TLua<span style="color: #000066;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">published</span>
    <span style="color: #000000; font-weight: bold;">function</span> HelloWorld<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">:</span> TLuaState<span style="color: #000066;">&#41;</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> TMyLua<span style="color: #000066;">.</span><span style="color: #006600;">HelloWorld</span><span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">var</span>
  ArgCount<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #000066;">;</span>
  I<span style="color: #000066;">:</span> <span style="color: #000066; font-weight: bold;">integer</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  <span style="color: #000066;">writeln</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Delphi: Hello World'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
  ArgCount <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Lua_GetTop<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  <span style="color: #000066;">writeln</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Arguments: '</span><span style="color: #000066;">,</span> ArgCount<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">for</span> I <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #0000ff;">1</span> <span style="color: #000000; font-weight: bold;">to</span> ArgCount <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000066;">writeln</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Arg1'</span><span style="color: #000066;">,</span> I<span style="color: #000066;">,</span> <span style="color: #ff0000;">': '</span><span style="color: #000066;">,</span> Lua_ToInteger<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">,</span> I<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">// Clear stack</span>
  Lua_Pop<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">,</span> Lua_GetTop<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">&#41;</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">// Push return values</span>
  Lua_PushInteger<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">,</span> <span style="color: #0000ff;">101</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Lua_PushInteger<span style="color: #000066;">&#40;</span>LuaState<span style="color: #000066;">,</span> <span style="color: #0000ff;">102</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  Result <span style="color: #000066;">:</span><span style="color: #000066;">=</span> <span style="color: #0000ff;">2</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span>
  MyLua<span style="color: #000066;">:</span> TLua<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">begin</span>
  MyLua <span style="color: #000066;">:</span><span style="color: #000066;">=</span> TMyLua<span style="color: #000066;">.</span><span style="color: #006600;">Create</span><span style="color: #000066;">;</span>
  MyLua<span style="color: #000066;">.</span><span style="color: #006600;">DoFile</span><span style="color: #000066;">&#40;</span><span style="color: #ff0000;">'Helloworld.lua'</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
  MyLua<span style="color: #000066;">.</span><span style="color: #006600;">Free</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p><em>helloworld.lua</em></p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;"><span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;LuaDelphi Test&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
p1,p2 <span style="color: #66cc66;">=</span> HelloWorld<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">print</span> <span style="color: #ff0000;">&quot;Results:&quot;</span><span style="color: #66cc66;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #66cc66;">&#40;</span>p1<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #b1b100;">print</span> <span style="color: #66cc66;">&#40;</span>p2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.spreendigital.de/2009/09/28/lua-5-1-for-delphi-2010/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Unicode in Resource files</title>
		<link>http://blog.spreendigital.de/2008/10/14/unicode-in-resource-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unicode-in-resource-files</link>
		<comments>http://blog.spreendigital.de/2008/10/14/unicode-in-resource-files/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 15:20:22 +0000</pubDate>
		<dc:creator>Dennis</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Delphi Programming]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.spreendigital.de/blog/?p=79</guid>
		<description><![CDATA[Ever tried to put a unicode string (Delphi 2009) in a resource (.rc) file and tried to compile it with brcc32 or rc32? You&#8217;ll get this error:  Expecting resource name or resource type name The Solution is very simple (though it kept me searching some hours : Use cgrc.exe (CodeGear Resource Compiler/Binder) instead!]]></description>
			<content:encoded><![CDATA[<p>Ever tried to put a unicode string (Delphi 2009) in a resource (.rc) file and tried to compile it with brcc32 or rc32?</p>
<p>You&#8217;ll get this error:  Expecting resource name or resource type name</p>
<p>The Solution is very simple (though it kept me searching some hours <img src='http://blog.spreendigital.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> :</p>
<p><span id="more-79"></span></p>
<p>Use</p>
<p><code>cgrc.exe</code></p>
<p>(CodeGear Resource Compiler/Binder) instead!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.spreendigital.de/2008/10/14/unicode-in-resource-files/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

