<?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>deciacco.com blog &#187; My Programs</title>
	<atom:link href="http://www.deciacco.com/blog/category/my-programs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deciacco.com/blog</link>
	<description>my stuff online</description>
	<lastBuildDate>Tue, 29 Jun 2010 18:38:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Downloading Pictures From Your Digital Camera</title>
		<link>http://www.deciacco.com/blog/net-c/downloading-pictures-from-your-digital-camera/</link>
		<comments>http://www.deciacco.com/blog/net-c/downloading-pictures-from-your-digital-camera/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 15:51:17 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[.NET C#]]></category>
		<category><![CDATA[My Programs]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.deciacco.com/blog/?p=579</guid>
		<description><![CDATA[Here is a program that I use to quickly get the images off my flash cards. It's a very simple program; you tell it where the photos are that you want and where you want to put them and it does the rest. It is pretty specific and it does not have much flexibility, so [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Here is a program that I use to quickly get the images off my flash cards. It's a very simple program; you tell it where the photos are that you want and where you want to put them and it does the rest. It is pretty specific and it does not have much flexibility, so if you happen to like the way it organizes the photos then you'll be happy, but if you want some features added, shoot me an email and I will probably incorporate it.</p>
<p style="text-align: left;">You can pretty much see from the image below how the photos will be organized in your destination directory. Basically, it creates a "year" folder and a day folder within that. If the file already exists in the destination it will not copy it there. As it copies files it will check to see if it can find image orientation information and will rotate the file accordingly.</p>
<p style="text-align: left;">I like to use shoot raw together with a small jpeg file. I use the raw as the digital negative and the jpeg as a quick proof of the image. Generally I try to get it right in the camera, and it's also a lot quicker if I just want to take some snapshots and make them quickly available for viewing. Currently it only works with .raw and .jpg extensions, so if you need a different extension let me know and I will add it. I hope you find this useful even though it is a little limited.</p>
<p style="text-align: left;">Click on the thumbnails below for a closer look...</p>
<p>
<a href='http://www.deciacco.com/blog/net-c/downloading-pictures-from-your-digital-camera/attachment/9-10-2009-3-46-59-pm/' title='Main Screen'><img width="150" height="146" src="http://www.deciacco.com/blog/wp-content/uploads/9-10-2009-3-46-59-PM-150x146.jpg" class="attachment-thumbnail" alt="Main Screen" title="Main Screen" /></a>
<a href='http://www.deciacco.com/blog/net-c/downloading-pictures-from-your-digital-camera/attachment/9-3-2009-10-20-07-am/' title='Folder Structure and Organization of Images'><img width="150" height="120" src="http://www.deciacco.com/blog/wp-content/uploads/9-3-2009-10-20-07-AM-150x120.png" class="attachment-thumbnail" alt="Folder Structure and Organization of Images" title="Folder Structure and Organization of Images" /></a>
</p>
<p><a href="http://www.deciacco.com/blog/wp-content/uploads/GetPhotos-1.0-Beta.exe"></a></p>
<p style="text-align: left;"><a href="http://www.deciacco.com/blog/wp-content/uploads/GetPhotos-1.0-Beta.exe">Download the Program here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/net-c/downloading-pictures-from-your-digital-camera/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Easily Email Images With Microsoft Outlook</title>
		<link>http://www.deciacco.com/blog/php/easily-email-images-with-microsoft-outlook/</link>
		<comments>http://www.deciacco.com/blog/php/easily-email-images-with-microsoft-outlook/#comments</comments>
		<pubDate>Wed, 20 May 2009 20:20:50 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[My Programs]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.deciacco.com/blog/?p=551</guid>
		<description><![CDATA[Here is a small utility to more easily email photos with Microsoft Outlook. Basically, it allows you to embed images in the body of the email message so that it is easier for the recipient to view the files. Download the file using the link below. Once downloaded, install it by double-clicking it. To use [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.deciacco.com/blog/wp-content/uploads/5-21-2009-10-53-00-am.png"><img class="size-full wp-image-568 alignleft" title="5-21-2009-10-53-00-am" src="http://www.deciacco.com/blog/wp-content/uploads/5-21-2009-10-53-00-am.png" alt="5-21-2009-10-53-00-am" width="258" height="155" /></a>Here is a small utility to more easily email photos with Microsoft Outlook. Basically, it allows you to embed images in the body of the email message so that it is easier for the recipient to view the files.</p>
<p><a href="http://www.deciacco.com/blog/wp-content/uploads/5-20-2009-2-42-02-pm.png"><img class="size-thumbnail wp-image-556 alignright" title="5-20-2009-2-42-02-pm" src="http://www.deciacco.com/blog/wp-content/uploads/5-20-2009-2-42-02-pm-107x150.png" alt="5-20-2009-2-42-02-pm" width="107" height="150" /></a>Download the file using the link below. Once downloaded, install it by double-clicking it. To use the program, simply highlight the photos you wish to send, then right-click one of the highlighted images and select "Send-To" then "Image Mailer for Outlook". Image Mailer will resize the images to an appropriate size for e-mailing if necessary and then automatically create the e-mail for you with the images embedded in the body of the message. (<em>Click the small image to the right for a better idea...</em>)</p>
<p><a href="http://www.deciacco.com/blog/wp-content/uploads/5-22-2009-11-01-45-am.png"><img class="alignright size-full wp-image-577" title="5-27-2009-11-48-18-am" src="http://www.deciacco.com/blog/wp-content/uploads/5-27-2009-11-48-18-am.png" alt="5-27-2009-11-48-18-am" width="393" height="200" /></a></p>
<p>If you wish to change settings, like how large the image is when it's in the body of the message, you can use the settings editor included. Simply click on Start, All Programs, Deciacco.com, Image Mailer, and finally Settings.</p>
<p>There are three basic settings to choose from. The best settings for most people will be selected by default, but you may choose something to better fit your needs. Try experimenting with the different settings to see what suits you best.</p>
<p>Please note that while we have made are best efforts to insure its function you use this program at your own risk. In other words, you can use this program, but we don't want to get sued.</p>
<p>Please check back here for version updates and if you find a bug or would like an enhancement, feel free to leave a comment on this post or contact me directly via the e-mail on my contact page.</p>
<p><a href="http://www.deciacco.com/blog/wp-content/uploads/imgsendsetup.exe"></a><a href="http://www.deciacco.com/blog/wp-content/uploads/imgsendsetup.exe">Click here to download the Windows 98 and up installer (2.1Mb)</a></p>
<p><a href="http://www.deciacco.com/blog/wp-content/uploads/imgsendsetup.exe"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/php/easily-email-images-with-microsoft-outlook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image Resizer &#8211; Php Application for Windows (Almost)</title>
		<link>http://www.deciacco.com/blog/php/image-resizer-php-application-for-windows-almost/</link>
		<comments>http://www.deciacco.com/blog/php/image-resizer-php-application-for-windows-almost/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 03:10:33 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[My Programs]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[image resizing]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.deciacco.com/blog/archives/153</guid>
		<description><![CDATA[I decided to write a small utility to quickly and easily resize images. I wrote in PHP, and while PHP is mostly a "Web" language, it actually worked out quite nicely. You simply right-click an image or a folder containing images and select the appropriate command. Currently, the program supports JPEG, GIF, and PNG images. [...]]]></description>
			<content:encoded><![CDATA[<p>I decided to write a small utility to quickly and easily resize images.</p>
<p><img class="alignnone size-full wp-image-531" title="3-3-2009-10-19-53-pm" src="http://www.deciacco.com/blog/wp-content/uploads/3-3-2009-10-19-53-pm.png" alt="3-3-2009-10-19-53-pm" width="597" height="296" /></p>
<p>I wrote in PHP, and while PHP is mostly a "Web" language, it actually worked out quite nicely. You simply right-click an image or a folder containing images and select the appropriate command. Currently, the program supports JPEG, GIF, and PNG images. <span style="text-decoration: underline;">The original image remains intact as a new, resized version is created.</span></p>
<p><strong></strong></p>
<p><strong>Installing</strong></p>
<p>You can simply download the installer and run it on your computer. After the install, you will have an Image Resizer folder in your Start Menu as well as some new context menu(right-click) entries.</p>
<p><strong>Launching </strong></p>
<p>To start the program simply right-click on an image file and select "Resize Image". If you want to resize multiple files, right-click on the folder containing the images and select "Run Image Resizer On".</p>
<p><strong>Program Settings</strong></p>
<p>When you launch Image Resizer, it needs some information from you. You can specify this information in one of two ways. First, you can run it in interactive mode, where it will require you to input the settings every time. This is good when you require different image sizes often. Second, you can run Image Resizer in silent mode where you predefine the settings in the settings file. (<em>The settings file is located in the program directory and shortcut to it is created in the program group in the Start Menu.</em>) This is especially useful if you use Image Resizer to resize images before you send them in an email. Below are the required entries:</p>
<ol>
<li>Target Size
<ul>
<li>The maximum height or width in pixels the re-sized image can be. The aspect ratio will not change, therefore whichever side of the image is the longest will need to be the side to fit within the target size.</li>
</ul>
</li>
<li>Resized Image Postfix
<ul>
<li>Something to append to the end of the re-sized file's name.</li>
<li>Example: By taking the default value of "_resized", the image "silvesterkitty.jpg"<br />
will be copied and resized to "silvesterkitty_resized.jpg".</li>
</ul>
</li>
<li>Quality
<ul>
<li>The quality of the resized image. The higher the quality means the less atifacting will occure on the image and the final result is a more crisp looking image at the cost of higher file size.</li>
</ul>
</li>
</ol>
<p><strong>*Note:</strong> To run image resizer in Silent mode, open the settings file and set "Silent" equal to 1.</p>
<p><strong>**Note:</strong> <em>Image Resizer always reads the values from the settings file, whether in interactive or silent mode. If in interactive mode, the values from the settings are used as the defaults.</em></p>
<p><strong>Uninstalling</strong></p>
<p>To uninstall, use the Windows uninstall utility from the control panel. All files, shortcuts,  and registry entries are removed.</p>
<p><strong>Revision History</strong></p>
<ul>
<li>0.1.3 - 03/03/2009
<ul>
<li>added the ability to run on a single file or by selecting multiple files</li>
<li>removed the ability to drag and drop; not needed as right-click is sufficient</li>
<li>removed the launch icon from the start menu</li>
<li>renamed the ini file shortcut in the program group to make more sense</li>
<li>added documentation to the settings file</li>
<li>fixed bug in installer when installing on Vista 32bit that caused the wrong registry entry to be installed which in turn caused the program to not lauch from the context menu</li>
</ul>
</li>
<li>0.1.2 - 02/16/2009
<ul>
<li>added installer</li>
<li>changed the resizing algorithm</li>
<li>no longer uses width and height, but uses a target size</li>
</ul>
</li>
<li>0.1.1 - 04/03/2008
<ul>
<li>cleaned up the registry entry to launch the php file itself instead of cmd.exe</li>
<li>the "Run Image Resizer On" context menu extension does not show when right-clicking the Recycle Bin</li>
</ul>
</li>
</ul>
<p><strong>Download</strong></p>
<p><a href="http://www.deciacco.com/blog/wp-content/uploads/irzsetup.exe">Download Installer for XP, Vista here</a> (3MB)<br />
<a title="image resizer zip" href="http://www.deciacco.com/blog/wp-content/uploads/imageresizer.zip"></a></p>
<p><em>You can find more information on PHP at <a href="http://www.php.net/">http://www.php.net/<br />
</a>Find some cool icons at the Icon Drawer - <a href="http://www.php.net/">http://www.icondrawer.com/free.php</a><br />
Special thanks to <a href="http://www.bojanmatic.net/bmblog/">BojanM</a> for contributing to this utility.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/php/image-resizer-php-application-for-windows-almost/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TableScriptGen &#8211; C# 2 Console App</title>
		<link>http://www.deciacco.com/blog/net-c/tablescriptgen-c-2-console-app/</link>
		<comments>http://www.deciacco.com/blog/net-c/tablescriptgen-c-2-console-app/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 16:11:05 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[.NET C#]]></category>
		<category><![CDATA[My Programs]]></category>

		<guid isPermaLink="false">http://deciacco.com/blog/archives/67</guid>
		<description><![CDATA[NOTE: This is a first draft, alpha code release. Whenever you are working with Microsoft's SQL server you inevitably have to write some Transact SQL code. I'm currently working on a data migration script and I found I'm using similar code over and over for the different tables found in the source database. I've written [...]]]></description>
			<content:encoded><![CDATA[<p><strong>NOTE: This is a first draft, alpha code release.</strong></p>
<p>Whenever you are working with Microsoft's SQL server you inevitably have to write some Transact SQL code.</p>
<p>I'm currently working on a data migration script and I found I'm using similar code over and over for the different tables found in the source database.</p>
<p>I've written a small utility that can help in this task. The code connects to the database, collects table information like the columns and column data types, and writes the script.</p>
<p>Below is a list of the current scripts that it creates. I've provided the code for you as well so that you can simply copy and paste into a new console app. You can also download the Visual Studio 2k5 Solution.</p>
<p><span id="more-67"></span></p>
<p><strong><br />
Example Usage:</strong><br />
tablescriptgen.exe /server:(local) /initialcatalog:mydb /tablename:mytable /tablealias:mytbl</p>
<p><strong>List of Parameters:</strong><br />
<em>Required</em></p>
<p><span style="text-decoration: underline;">/server:</span> sever to connect to; uses Windows Authentication<br />
<span style="text-decoration: underline;">/initialcatalog:</span> database name to use<br />
<span style="text-decoration: underline;">/tablename:</span> the table to retrieve data for<br />
<span style="text-decoration: underline;">/tablealias:</span> the tablename used in the sql statement<br />
ex: "Select * from mytable as 'tablealias' "</p>
<p><em>Optional</em></p>
<p><span style="text-decoration: underline;">/writefilefullname:</span> full path with filename and extension of the file to write the script to; defaults to user's desktop<br />
<span style="text-decoration: underline;">/overridedbname:</span> the db name to use in the "USE" statement of the written script<br />
<span style="text-decoration: underline;">/usefromlinkedtablename:</span> create a cursor from the tablename that exists in a linked server</p>
<p><strong>List of supported scripts:</strong></p>
<p><em>WriteTableIterator()</em><br />
Creates Transactsql code to iterate through the source table rows with a cursor.</p>
<p><em>WriteInsertStatement()</em><br />
Creates the insert into statement</p>
<p>I plan on adding more as as I need them and if you add enhancements please shoot me a copy. (contact #ATT# deciacco #DOTT# com)</p>
<pre class="brush: csharp;">/*
 * http://www.deciacco.com/blog/
 *
 * TableScriptGen Program: Generates sql script for a given
 * MS Sql Server table
 *
 * Authors:		Deciacco.com
 * Contributors:
 * Created:		15 June 2007
 * Modified:		15 June 2007
 *
 * Version:		1.0
 * Arguments:		See below in the Arguments class for valid format
 *
 * Notes:			As of modified date above this program works with
 *			both SQL Server 2k and 2k5
 *
 * License:		This program is free and distributed 'AS IS' and without
 *			any warranty. If you make enhacements, please send a copy
 *			to contact #ATT# deciacco #DOTT# com.
 */
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Collections.Specialized;
using System.Text.RegularExpressions;

namespace TableScriptGen
{
	///
	/// Main program
	///
	class Program
	{
		#region Fields
		static string _server = string.Empty;
		static string _initialcatalog = string.Empty;
		static string _tablealias = string.Empty;
		static string _tablename = string.Empty;

		static DataSet _tabledata_ds = null;
		static SqlConnectionStringBuilder _sconnbldr = null;
		static SqlConnection _conx = null;
		static SqlDataAdapter _da = null;

		static string _getinfosql = string.Empty;

		static string _writefilefullname = string.Empty;
		static string _overridedbname = string.Empty;
		static string _usefromlinkedtablename = string.Empty;

		#endregion

		static void Main(string[] args)
		{
			try
			{
				// get the arguments
				Arguments cmargs = new Arguments(args);

				if (cmargs[&quot;server&quot;] == null ||
					cmargs[&quot;initialcatalog&quot;] == null ||
					cmargs[&quot;tablealias&quot;] == null ||
					cmargs[&quot;tablename&quot;] == null)
					throw new Exception(&quot;Invalid Arguments&quot;);

				// set the variables
				Program._server = cmargs[&quot;server&quot;];
				Program._initialcatalog = cmargs[&quot;initialcatalog&quot;];
				Program._tablealias = cmargs[&quot;tablealias&quot;];
				Program._tablename = cmargs[&quot;tablename&quot;];
				Program._writefilefullname = Environment.GetFolderPath(
						Environment.SpecialFolder.DesktopDirectory).ToString() +
						@&quot;\&quot; + Program._tablename + &quot;.txt&quot;;

				// optional arguments
				if(cmargs[&quot;writefilefullname&quot;] != null)
					Program._writefilefullname = cmargs[&quot;writefilefullname&quot;];

				if(cmargs[&quot;overridedbname&quot;] != null)
					Program._overridedbname = cmargs[&quot;overridedbname&quot;];

				if(cmargs[&quot;usefromlinkedtablename&quot;] != null)
					Program._usefromlinkedtablename = cmargs[&quot;usefromlinkedtablename&quot;];

				// set the sql statement to get table information from the db
				Program._getinfosql = &quot;select table_name, column_name, column_default, data_type, &quot;;
				Program._getinfosql += &quot;character_maximum_length, is_nullable &quot;;
				Program._getinfosql += &quot;from information_schema.columns &quot;;
				Program._getinfosql += &quot;where table_name in &quot;;
				Program._getinfosql += &quot;(select table_name &quot;;
				Program._getinfosql += &quot;from information_schema.tables &quot;;
				Program._getinfosql += &quot;where table_type = 'base table')&quot;;
				Program._getinfosql += &quot;and &quot;;
				Program._getinfosql += &quot;table_name = '&quot; + Program._tablename + &quot;'&quot;;

				// create the connection string builder object and set its properties
				Program._sconnbldr = new SqlConnectionStringBuilder();
				Program._sconnbldr.DataSource = Program._server;
				Program._sconnbldr.InitialCatalog = Program._initialcatalog;
				Program._sconnbldr.IntegratedSecurity = true;

				// create the connection object
				Program._conx = new SqlConnection(Program._sconnbldr.ToString());

				// open the connection and get the data
				Program._conx.Open();
				Program._da = new SqlDataAdapter(Program._getinfosql, Program._conx);

				Program._tabledata_ds = new DataSet(Program._tablealias);

				Program._da.Fill(Program._tabledata_ds, Program._tablealias);

				// process table data
				// this is a good place to add other functions to do other
				// scripts
				Program.WriteTableIterator(Program._writefilefullname, false,
					Program._overridedbname, Program._usefromlinkedtablename);

				Program.WriteInsertStatement(Program._writefilefullname, true);

			}
			catch (Exception ex)
			{
				Console.WriteLine(ex.Message);
			}
			finally
			{
				// if the connection object has been set and the error
				// occured after it was open, lets close the connection
				if(Program._conx != null)
					if (Program._conx.State == ConnectionState.Open)
					{
						Program._conx.Close();
						Program._conx.Dispose();
					}
			}
		}

		static void WriteTableIterator(string p_writefilefullname, bool p_appendtofile,
				string p_overridedbname, string p_usefromlinkedtablename)
		{
			TextWriter tw = new StreamWriter(p_writefilefullname, p_appendtofile);
			DataRowCollection drw = Program._tabledata_ds.Tables[Program._tablealias].Rows;

			string dataTypes = &quot;varchar&quot;;
			int cnt;

			if (p_overridedbname != string.Empty)
				tw.WriteLine(&quot;use &quot; + p_overridedbname + Environment.NewLine + &quot;go&quot; + Environment.NewLine);
			else
				tw.WriteLine(&quot;use &quot; + Program._initialcatalog + Environment.NewLine + &quot;go&quot; + Environment.NewLine);

			tw.Write(&quot;declare &quot;);
			for (cnt = 0; cnt &amp;lt; drw.Count; cnt++)
			{
				DataRow dr = drw[cnt];

				if (dr[&quot;data_type&quot;].ToString() == &quot;text&quot;) //Can't use text for local variable
				{
					dr[&quot;data_type&quot;] = &quot;varchar&quot;;
					dr[&quot;character_maximum_length&quot;] = 1000;
				}

				tw.Write(&quot;@&quot; + Program._tablealias + dr[&quot;column_name&quot;] + &quot; &quot; + dr[&quot;data_type&quot;]);

				if (dataTypes.IndexOf(dr[&quot;data_type&quot;].ToString()) &amp;gt;= 0)
					tw.Write(&quot;(&quot; + dr[&quot;character_maximum_length&quot;] + &quot;)&quot;);

				if (cnt != drw.Count - 1)
					tw.Write(&quot;,&quot;);
				else
					tw.Write(Environment.NewLine);

				tw.Write(Environment.NewLine);
			}

			tw.WriteLine(&quot;declare &quot; + Program._tablealias +
				&quot;_cursor cursor forward_only read_only&quot; + Environment.NewLine + &quot;for&quot;);

			tw.Write(&quot;select &quot;);
			for (cnt = 0; cnt &amp;lt; drw.Count; cnt++)
			{
				DataRow dr = drw[cnt];

				tw.Write(Program._tablealias + &quot;.&quot; + dr[&quot;column_name&quot;] + &quot; as _&quot; + Program._tablealias + dr[&quot;column_name&quot;]);

				if (cnt != drw.Count - 1)
					tw.Write(&quot;, &quot;);

				if ((cnt + 1) % 4 == 0)
					tw.Write(Environment.NewLine);
			}

			if (p_usefromlinkedtablename != string.Empty)
				tw.WriteLine(Environment.NewLine + &quot;from &quot; + p_usefromlinkedtablename + &quot; as &quot; + Program._tablealias);
			else
				tw.WriteLine(Environment.NewLine + &quot;from &quot; + Program._tablename + &quot; as &quot; + Program._tablealias);

			tw.Write(Environment.NewLine + &quot;open &quot; + Program._tablealias + &quot;_cursor &quot; + Environment.NewLine +
					Environment.NewLine + &quot;fetch next from &quot; + Program._tablealias + &quot;_cursor &quot; + Environment.NewLine +
					&quot;into &quot;);

			for (cnt = 0; cnt &amp;lt; drw.Count; cnt++)
			{
				DataRow dr = drw[cnt];

				tw.Write(&quot;@&quot; + Program._tablealias + dr[&quot;column_name&quot;]);

				if (cnt != drw.Count - 1)
					tw.Write(&quot;,&quot;);
				else
					tw.Write(Environment.NewLine);

				tw.Write(Environment.NewLine);
			}

			tw.WriteLine(&quot;while @@fetch_status = 0&quot; + Environment.NewLine + &quot;begin&quot; + Environment.NewLine);
			tw.WriteLine(Environment.NewLine + &quot;--start your code here&quot; +
				Environment.NewLine + Environment.NewLine);

			tw.WriteLine(&quot;fetch next from &quot; + Program._tablealias + &quot;_cursor&quot;);
			tw.Write(&quot;into &quot;);

			for (cnt = 0; cnt &amp;lt; drw.Count; cnt++)
			{
				DataRow dr = drw[cnt];

				tw.Write(&quot;@&quot; + Program._tablealias + dr[&quot;column_name&quot;]);

				if (cnt != drw.Count - 1)
					tw.Write(&quot;,&quot;);
				else
					tw.Write(Environment.NewLine);

				tw.Write(Environment.NewLine);
			}

			tw.WriteLine(&quot;end&quot;);

			tw.WriteLine(&quot;close &quot; + Program._tablealias + &quot;_cursor&quot;);
			tw.WriteLine(&quot;deallocate &quot; + Program._tablealias + &quot;_cursor&quot;);
			tw.Write(&quot;go&quot;);
			tw.WriteLine();
			tw.WriteLine();

			tw.Close();
			tw.Dispose();
		}

		static void WriteInsertStatement(string p_writefilefullname, bool p_appendtofile)
		{
			int cnt;

			TextWriter tw = new StreamWriter(p_writefilefullname, p_appendtofile);
			DataRowCollection drw = Program._tabledata_ds.Tables[Program._tablealias].Rows;

			tw.Write(&quot;insert into &quot; + Program._tablename + &quot; (&quot;);

			for (cnt = 0; cnt &amp;lt; drw.Count; cnt++)
			{
				DataRow dr = drw[cnt];

				tw.Write(dr[&quot;column_name&quot;]);

				if (cnt != drw.Count - 1)
					tw.Write(&quot;, &quot;);

				if ((cnt + 1) % 4 == 0)
					tw.Write(Environment.NewLine);
			}

			tw.WriteLine(&quot;)&quot;);

			tw.WriteLine(&quot;values (&quot;);
			for (cnt = 0; cnt &amp;lt; drw.Count; cnt++)
			{
				DataRow dr = drw[cnt];

				tw.Write(&quot;@&quot; + Program._tablealias + dr[&quot;column_name&quot;]);

				if (cnt != drw.Count - 1)
					tw.Write(&quot;,&quot;);

				if ((cnt + 1) % 4 == 0)
					tw.Write(Environment.NewLine);
			}

			tw.WriteLine(&quot;)&quot;);

			tw.WriteLine();
			tw.WriteLine();

			tw.Close();
			tw.Dispose();
		}
	}

/*
 * http://www.codeproject.com/csharp/command_line.asp
 * See below for valid parameter forms
 *
 * Arguments class: application arguments interpreter
 *
 * Authors:			R. LOPES
 * Contributors:	R. LOPES
 * Created:			25 October 2002
 * Modified:		28 October 2002
 *
 * Version:			1.0
 *
 */
    ///
    /// Arguments class
    ///
    public class Arguments{
        // Variables
        private StringDictionary Parameters;

        // Constructor
        public Arguments(string[] Args)
        {
            Parameters = new StringDictionary();
            Regex Spliter = new Regex(@&quot;^-{1,2}|^/|=|:&quot;,
                RegexOptions.IgnoreCase|RegexOptions.Compiled);

            Regex Remover = new Regex(@&quot;^['&quot;&quot;]?(.*?)['&quot;&quot;]?$&quot;,
                RegexOptions.IgnoreCase|RegexOptions.Compiled);

            string Parameter = null;
            string[] Parts;

            // Valid parameters forms:
            // {-,/,--}param{ ,=,:}((&quot;,')value(&quot;,'))
            // Examples:
            // -param1 value1 --param2 /param3:&quot;Test-:-work&quot;
            //   /param4=happy -param5 '--=nice=--'
            foreach(string Txt in Args)
            {
                // Look for new parameters (-,/ or --) and a
                // possible enclosed value (=,:)
                Parts = Spliter.Split(Txt,3);

                switch(Parts.Length){
                // Found a value (for the last parameter
                // found (space separator))
                case 1:
                    if(Parameter != null)
                    {
                        if(!Parameters.ContainsKey(Parameter))
                        {
                            Parts[0] =
                                Remover.Replace(Parts[0], &quot;$1&quot;);

                            Parameters.Add(Parameter, Parts[0]);
                        }
                        Parameter=null;
                    }
                    // else Error: no parameter waiting for a value (skipped)
                    break;

                // Found just a parameter
                case 2:
                    // The last parameter is still waiting.
                    // With no value, set it to true.
                    if(Parameter!=null)
                    {
                        if(!Parameters.ContainsKey(Parameter))
                            Parameters.Add(Parameter, &quot;true&quot;);
                    }
                    Parameter=Parts[1];
                    break;

                // Parameter with enclosed value
                case 3:
                    // The last parameter is still waiting.
                    // With no value, set it to true.
                    if(Parameter != null)
                    {
                        if(!Parameters.ContainsKey(Parameter))
                            Parameters.Add(Parameter, &quot;true&quot;);
                    }

                    Parameter = Parts[1];

                    // Remove possible enclosing characters (&quot;,')
                    if(!Parameters.ContainsKey(Parameter))
                    {
                        Parts[2] = Remover.Replace(Parts[2], &quot;$1&quot;);
                        Parameters.Add(Parameter, Parts[2]);
                    }

                    Parameter=null;
                    break;
                }
            }
            // In case a parameter is still waiting
            if(Parameter != null)
            {
                if(!Parameters.ContainsKey(Parameter))
                    Parameters.Add(Parameter, &quot;true&quot;);
            }
        }

        // Retrieve a parameter value if it exists
        // (overriding C# indexer property)
        public string this [string Param]
        {
            get
            {
                return(Parameters[Param]);
            }
        }
    }
}</pre>
<p><a title="Click here to download the C# 2 Source (Visual Studio 2k5) (45.2k)" href="http://www.deciacco.com/blog/wp-content/uploads/tablescriptgen.zip">Click here to download the C# 2 Source (Visual Studio 2k5) (45.2k)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/net-c/tablescriptgen-c-2-console-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BatchRun &#8211; .NET C# 2 App</title>
		<link>http://www.deciacco.com/blog/net-c/batchrun-net-c-2-app/</link>
		<comments>http://www.deciacco.com/blog/net-c/batchrun-net-c-2-app/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 19:13:44 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[.NET C#]]></category>
		<category><![CDATA[My Programs]]></category>

		<guid isPermaLink="false">http://deciacco.com/blog/archives/66</guid>
		<description><![CDATA[NOTE: This is a first draft, alpha code release. This application was written to run multiple sql scripts files against an MS Sql server database. I wrote it to learn more about .NET C# 2 Windows application development. It is pretty much a work in progress, but it&#8217;s at a usable point so I decided [...]]]></description>
			<content:encoded><![CDATA[<p><strong>NOTE: This is a first draft, alpha code release.</strong></p>
<p>This application was written to run multiple sql scripts files against an MS Sql server database. I wrote it to learn more about .NET C# 2 Windows application development.</p>
<p>It is pretty much a work in progress, but it&#8217;s at a usable point so I decided to release it.</p>
<p>Please download the source below. <strong>If you learn from it or find it useful in any way, please leave me a comment. Also, if you enhance it, I&#8217;d like a copy.<br />
</strong></p>
<p>Screenshots:<br />

<a href='http://www.deciacco.com/blog/net-c/batchrun-net-c-2-app/attachment/batchrun/' title='batchrun'><img width="140" height="150" src="http://www.deciacco.com/blog/wp-content/uploads/2007/06/batchrun.jpg" class="attachment-thumbnail" alt="batchrun" title="batchrun" /></a>
<a href='http://www.deciacco.com/blog/net-c/batchrun-net-c-2-app/attachment/batchrunsqlstring/' title='batchrunsqlstring'><img width="150" height="89" src="http://www.deciacco.com/blog/wp-content/uploads/2007/06/batchrunsqlstring.jpg" class="attachment-thumbnail" alt="batchrunsqlstring" title="batchrunsqlstring" /></a>
<a href='http://www.deciacco.com/blog/net-c/batchrun-net-c-2-app/attachment/batchrunstatus/' title='batchrunstatus'><img width="150" height="96" src="http://www.deciacco.com/blog/wp-content/uploads/2007/06/batchrunstatus.jpg" class="attachment-thumbnail" alt="batchrunstatus" title="batchrunstatus" /></a>
</p>
<p><a title="Click here to download the C# 2 Source (Visual Studio 2k5) (1.2Mb)" href="http://www.deciacco.com/blog/wp-content/uploads/batchrun.zip">Click here to download the C# 2 Source (Visual Studio 2k5) (1.2Mb)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/net-c/batchrun-net-c-2-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FoxPro Program For Printing Labels &#8211; LblPrint</title>
		<link>http://www.deciacco.com/blog/foxpro/lblprint-foxpro-app/</link>
		<comments>http://www.deciacco.com/blog/foxpro/lblprint-foxpro-app/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 20:30:17 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[My Programs]]></category>

		<guid isPermaLink="false">http://deciacco.com/blog/archives/20</guid>
		<description><![CDATA[This is a very simple label printer application I wrote for work. I don&#8217;t have the code for download, because it&#8217;s a very specific application, and probably won&#8217;t work for you, but it does showcase some of the powerfull features of Foxpro. Here is how it works: The user enters a search term, then clicks [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very simple label printer application I wrote for work. I don&#8217;t have the code for download, because it&#8217;s a very specific application, and probably won&#8217;t work for you, but it does showcase some of the powerfull features of Foxpro.</p>
<p>Here is how it works:</p>
<p>The user enters a search term, then clicks the search button. The program connects to the Sql Server 2000 database, retrieves the data, and populates the data grid. The user then selects the record desired and the label preview is generated. On every record selection the preview is automatically generated. The user can then select a modifier by clicking on one of the radio buttons to the right of the preview container. On each change of the modifier the preview is automatically updated. The user then clicks the print button and the label is sent to the label printer and the cursor is automatically placed in the search box.</p>
<p>Prior to printing, the user can can select the desired printer and paper size using the Print Setup button. Being able to select or change printer settings is very important, because some of the users use this application through a terminal server session. The label printer is attached to their local workstation and gets mapped from the terminal server back to their PC when they log on. Since the name of the printer is not known until after the user logs on, it would be difficult to hardcode the printer in the report file. By being able to make printer changes at runtime, it makes it easy for the user to chooses his or her printer after they log on. They only do this the first time, as once the settings are changed, they are saved in the lbx file until the next time they need to be updated.</p>
<p>For more information on the reporting capabilities of VFP 9, please check out this great article:</p>
<p><a href="http://www.spacefold.com/colin/archive/articles/reportpreview/techniques.htm">Techniques for an alternative Report Preview UI</a></p>
<p>Also, take a look at the SYS(1037) function in the FoxPro help file.</p>
<p>Here are some screenshots of the program. (click to enlarge)</p>
<p>
<a href='http://www.deciacco.com/blog/foxpro/lblprint-foxpro-app/attachment/lblprint1gif/' title='lblprint1.gif'><img width="150" height="134" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/lblprint1.gif" class="attachment-thumbnail" alt="lblprint1.gif" title="lblprint1.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/lblprint-foxpro-app/attachment/lblprintsetup1gif/' title='lblprintsetup1.gif'><img width="130" height="150" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/lblprintsetup1.gif" class="attachment-thumbnail" alt="lblprintsetup1.gif" title="lblprintsetup1.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/lblprint-foxpro-app/attachment/lblprintsetup2gif/' title='lblprintsetup2.gif'><img width="150" height="77" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/lblprintsetup2.gif" class="attachment-thumbnail" alt="lblprintsetup2.gif" title="lblprintsetup2.gif" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/foxpro/lblprint-foxpro-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FoxPro Program For Sharing Files At Lanparties &#8211; UtFiles</title>
		<link>http://www.deciacco.com/blog/foxpro/utfiles-foxpro-app/</link>
		<comments>http://www.deciacco.com/blog/foxpro/utfiles-foxpro-app/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 00:18:35 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[My Programs]]></category>

		<guid isPermaLink="false">http://deciacco.com/blog/archives/17</guid>
		<description><![CDATA[I&#8217;ve had this app for a while. In fact, this was one of the very first apps I built in Foxpro. I haven&#8217;t posted it because I wanted to get it cleaned up and add in some of the new things I&#8217;ve learned. It&#8217;s basically a file sorting utility that takes files from a specified [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had this app for a while. In fact, this was one of the very first apps I built in Foxpro. I haven&#8217;t posted it because I wanted to get it cleaned up and add in some of the new things I&#8217;ve learned.</p>
<p>It&#8217;s basically a file sorting utility that takes files from a specified source directory and its subdirectories, and places them in the destination&#8217;s subdirectories based on the file&#8217;s extension.</p>
<p>It was originally designed to be used with &#8220;Unreal Tournament&#8221;. At lanparties it is quicker and easier to start a new match if everyone already has the files locally on their computers instead of having to download them from the game server when entering a new game. This utility makes it easy for everyone to get all the new maps/addons from a &#8220;lanparty&#8221; directory prior to starting the game.</p>
<p>The program can also be used for other occasions where files need to be organized in directories based on their  extension. To know more download the program and give it a try. It has the ability to create a test directory, so you can change the mappings to search for any file type and then place it in one of the test directory&#8217;s subdirectory.</p>
<p>
<a href='http://www.deciacco.com/blog/foxpro/utfiles-foxpro-app/attachment/utfilegif/' title='utfile.gif'><img width="150" height="70" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/utfile.gif" class="attachment-thumbnail" alt="utfile.gif" title="utfile.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/utfiles-foxpro-app/attachment/mappingsgif/' title='mappings.gif'><img width="150" height="106" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/mappings.gif" class="attachment-thumbnail" alt="mappings.gif" title="mappings.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/utfiles-foxpro-app/attachment/testgif/' title='test.gif'><img width="150" height="110" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/test.gif" class="attachment-thumbnail" alt="test.gif" title="test.gif" /></a>
</p>
<p><a title="Click here to download the Windows 98 and up installer (5.2Mb)" href="http://www.deciacco.com/blog/wp-content/uploads/utfilesetup.exe">Click here to download the Windows 98 and up installer (5.2Mb)</a><br />
<small>Latest version 1.2.137</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/foxpro/utfiles-foxpro-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FoxPro Program For Extracting HTML &#8211; GetHtml</title>
		<link>http://www.deciacco.com/blog/foxpro/gethtml-foxpro-app/</link>
		<comments>http://www.deciacco.com/blog/foxpro/gethtml-foxpro-app/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 23:40:48 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[My Programs]]></category>

		<guid isPermaLink="false">http://deciacco.com/blog/archives/12</guid>
		<description><![CDATA[Another little program released. This program is for retrieving the HTML of a web page. After experimenting with the West Wind Internet and Client Tools and then with my own version of a wininet.dll wrapper, I decided the easiest way was to use the WinHTTP service. I didn&#8217;t even know it existed until I found [...]]]></description>
			<content:encoded><![CDATA[<p>Another little program released. This program is for retrieving the HTML of a web page.</p>
<p>After experimenting with the <a href="http://www.west-wind.com/wwClientTools.asp">West Wind Internet and Client Tools</a> and then with my own version of a wininet.dll wrapper, I decided the easiest way was to use the WinHTTP service. I didn&#8217;t even know it existed until I found it on <a href="http://blogs.msdn.com/calvin_hsia/archive/2006/05/25/607588.aspx">Calvin Hsia&#8217;s Weblog</a>.</p>
<p style="text-align: center;"><img class="size-full wp-image-36 aligncenter" title="gethtml1.gif" src="http://deciacco.com/blog/wp-content/uploads/2006/12/gethtml1.gif" alt="" width="404" height="304" /></p>
<p>Below is the main code of the application. Look at the links provided in the readme for more information on the oHTTP object instantiated in the code.</p>
<pre class="brush: fox;">Thisform.MousePointer = 11
Try
        Local oHTTP As &quot;winhttp.winhttprequest.5.1&quot;
        oHTTP=Newobject(&quot;winhttp.winhttprequest.5.1&quot;)
        oHTTP.Open(&quot;GET&quot;,Trim(Thisform.txtUrl.Value),.F.)
        oHTTP.Option(4) = 13056 &amp;amp;&amp;amp; Ignore ssl errors
        &amp;amp;&amp;amp; Lets look like IE
        oHTTP.SetRequestHeader(&quot;user-agent&quot;, ;
                &quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows ;
                NT 5.2; .NET CLR 1.0.3705;)&quot;)

        oHTTP.Send()

        Thisform.txtHtml.Value = oHTTP.ResponseText
        Thisform.txtHeaders.Value = oHTTP.GetAllResponseHeaders
Catch To ex
        Thisform.txtHtml.Value = ex.Message
Finally
        Thisform.MousePointer = 0
Endtry</pre>
<p><a title="Click here to download the Windows 2000sp3 and up installer (5.2Mb)" href="http://www.deciacco.com/blog/wp-content/uploads/gethtmlsetup.exe">Click here to download the Windows 2000sp3 and up installer (5.2Mb)</a><br />
<small>Latest version 1.0.47</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/foxpro/gethtml-foxpro-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FoxPro Program For Testing SMTP Servers &#8211; SmtpTester</title>
		<link>http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/</link>
		<comments>http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 23:08:34 +0000</pubDate>
		<dc:creator>deciacco</dc:creator>
				<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[My Programs]]></category>

		<guid isPermaLink="false">http://deciacco.com/blog/archives/6</guid>
		<description><![CDATA[Ok&#8230;so here it is&#8230;the first of hopefully many applications you can download. The idea to create this app came to me while I was trying to troubleshoot my uncle’s program that wouldn&#8217;t connect to his smtp server. His application is in VB6 and he uses it to send out emails from a list of addresses [...]]]></description>
			<content:encoded><![CDATA[<p>Ok&#8230;so here it is&#8230;the first of hopefully many applications you can download.</p>
<p>The idea to create this app came to me while I was trying to troubleshoot my uncle’s program that wouldn&#8217;t connect to his smtp server. His application is in VB6 and he uses it to send out emails from a list of addresses in an Access database. After he switched isps he could no longer get it to work since the new isp requires him to authenticate before being able to send mail. I didn&#8217;t know all the inner workings of communicating with an smtp server, but I was able to figure out that we needed to send the auth command and then in some way the username and password. Not having enough time to fix it I went home later that evening and started researching. To make it more interesting I decided to create a little tool that I could use to learn with as well as use later.</p>
<p>I decided to use Foxpro to develop the program for two main reasons. First, I&#8217;ve only been using it for about a year, so I needed the practice. Second, I wanted to develop an application that you wouldn&#8217;t normally see written in Foxpro. Most Foxpro apps, at least from what I can tell so far, are data driven applications. Many smaller companies out there tend to use Foxpro because it is relatively inexpensive, yet extremely flexible and super fast, especially when it comes to dealing with data. I also hope that by developing these little tools, I can help make people more aware that Foxpro is out there and can be used for a variety of projects.</p>
<p>
<a href='http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/attachment/smtptester1gif/' title='smtptester1.gif'><img width="150" height="102" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/smtptester1.gif" class="attachment-thumbnail" alt="smtptester1.gif" title="smtptester1.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/attachment/smtptestercmdboxgif/' title='smtptestercmdbox.gif'><img width="150" height="110" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/smtptestercmdbox.gif" class="attachment-thumbnail" alt="smtptestercmdbox.gif" title="smtptestercmdbox.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/attachment/smtptestersettingsgif/' title='smtptestersettings.gif'><img width="150" height="102" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/smtptestersettings.gif" class="attachment-thumbnail" alt="smtptestersettings.gif" title="smtptestersettings.gif" /></a>
<a href='http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/attachment/smtptestermsggif/' title='smtptestermsg.gif'><img width="150" height="102" src="http://www.deciacco.com/blog/wp-content/uploads/2006/12/smtptestermsg.gif" class="attachment-thumbnail" alt="smtptestermsg.gif" title="smtptestermsg.gif" /></a>
</p>
<p><a title="Click here to download the Windows 98 - XP installer (5.2Mb)" href="http://www.deciacco.com/blog/wp-content/uploads/smtptestersetup.exe">Click here to download the Windows 98 &#8211; XP installer (5.2Mb)</a><br />
<small>Latest version 1.2.301</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deciacco.com/blog/foxpro/smtptester-foxpro-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
