<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://159.203.101.162/w/index.php?action=history&amp;feed=atom&amp;title=OS_How-To</id>
	<title>OS How-To - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://159.203.101.162/w/index.php?action=history&amp;feed=atom&amp;title=OS_How-To"/>
	<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=OS_How-To&amp;action=history"/>
	<updated>2026-05-13T16:22:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://159.203.101.162/w/index.php?title=OS_How-To&amp;diff=2975&amp;oldid=prev</id>
		<title>LegacyKing: Created page with &quot;===Barak's Email Note=== Since there seem to be a few OS questions cropping up, I thought I'd post a OS help file I started a while ago (note it is *not* complete, but what's the...&quot;</title>
		<link rel="alternate" type="text/html" href="http://159.203.101.162/w/index.php?title=OS_How-To&amp;diff=2975&amp;oldid=prev"/>
		<updated>2012-01-23T01:44:09Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;===Barak&amp;#039;s Email Note=== Since there seem to be a few OS questions cropping up, I thought I&amp;#039;d post a OS help file I started a while ago (note it is *not* complete, but what&amp;#039;s the...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===Barak's Email Note===&lt;br /&gt;
Since there seem to be a few OS questions cropping up, I thought I'd post a&lt;br /&gt;
OS help file I started a while ago (note it is *not* complete, but what's&lt;br /&gt;
there might still be helpful).  &lt;br /&gt;
&lt;br /&gt;
Hopefully the formatting on this will still be readable after e-mailing...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==='''Creating Character Sheet Templates'''===&lt;br /&gt;
&lt;br /&gt;
==Preface==&lt;br /&gt;
This guide is in the main going to focus on using the tokens effectively and&lt;br /&gt;
appropriately. For simplicity, we will primarily use HTML examples, some of&lt;br /&gt;
which may be fairly complicated, with XML/XSL examples for PDF templates&lt;br /&gt;
given as needed.  If you need help with HTML you should visit www.w3c.org&lt;br /&gt;
and read their tutorials.  For XML/XSL information ???  After going over the&lt;br /&gt;
basics, I will be taking you through the steps I used to create a sheet to&lt;br /&gt;
display a character's known spells and spellbooks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
You will need to have a basic understanding of how PCGen uses character&lt;br /&gt;
sheet templates to create them.  When you &amp;quot;Export&amp;quot; a character, the program&lt;br /&gt;
will ask you which template you would like to use.  PCGen starts by reading&lt;br /&gt;
that template into memory.  PCGen scans for special character sets called&lt;br /&gt;
&amp;quot;tokens&amp;quot; as it reads the template.  These tokens represent various bits of&lt;br /&gt;
information about the character you are exporting.  When PCGen encounters&lt;br /&gt;
one of these tokens, it retrieves the information from the character file&lt;br /&gt;
and inserts the information into the spot where the token was.  PCGen writes&lt;br /&gt;
the file out to disk with the information in place of the tokens once it has&lt;br /&gt;
completely loaded the file.&lt;br /&gt;
&lt;br /&gt;
A sample line in an HTML template file might be:&lt;br /&gt;
&lt;br /&gt;
   	&amp;lt;i&amp;gt;Character Name:&amp;lt;/i&amp;gt; |NAME|&lt;br /&gt;
&lt;br /&gt;
If you open the template with an HTML browser you would see:&lt;br /&gt;
&lt;br /&gt;
   	Character Name: |NAME|&lt;br /&gt;
&lt;br /&gt;
When you open the output file after exporting a character named George using&lt;br /&gt;
that template you would see:&lt;br /&gt;
&lt;br /&gt;
   	Character Name: George&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The bodies of the templates themselves can be done in HTML or XML/XSL for&lt;br /&gt;
PDF. In either case, the tokens used to get information from PCGen into the&lt;br /&gt;
sheet are the same.  A word of warning: PCGen only changes the token,&lt;br /&gt;
nothing else.  If you put in bad HTML or XML/XSL code, bad HTML or XML/XSL&lt;br /&gt;
code will come out.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first and most important thing I want to stress is to read the&lt;br /&gt;
documentation on the individual output tokens.  Then read them again.  There&lt;br /&gt;
are many subtleties in the use of the tokens contained there that cannot be&lt;br /&gt;
covered in a tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Through some frustrating trial and error I learned a few important things&lt;br /&gt;
regarding basic Character Sheet design:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1)  Decide on a specific purpose/use for your template.  There are LOTS of&lt;br /&gt;
tokens and there is no need to try and use them all.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2)  Figure out what's going to go on the sheet.  Are you just going to show&lt;br /&gt;
the main AC?  Are you going to want to show all the modifiers that make up&lt;br /&gt;
the total AC?  Do you want spell lists? Etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3)  Identify most of your tokens beforehand.  Once you have decided what you&lt;br /&gt;
want on the sheet, it's time to start figuring out what tokens you need to&lt;br /&gt;
use.  It is easiest to sketch a simple layout on a sheet of paper and fill&lt;br /&gt;
in what tokens go where so you have a quick reference.  You don't have to&lt;br /&gt;
get them all right now, but it is very helpful to have them right there so&lt;br /&gt;
you don't have to go digging around through the documentation looking for&lt;br /&gt;
the proper token when you're actually trying to type in the sheet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tokens==&lt;br /&gt;
Now down to the true nuts and bolts, the tokens.  First, some general notes:&lt;br /&gt;
&lt;br /&gt;
1) All tokens are CAPITALIZED.  There may be variables or options that are&lt;br /&gt;
not, but the token itself will be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) All tokens are delimited (set apart) from the rest of the text on the&lt;br /&gt;
character sheets by either the | (pipe) character, a \ (single backslash) or&lt;br /&gt;
a \\ (double backslash), depending on where the token is used.  There are no&lt;br /&gt;
spaces between the beginning and end of the token and the delimiter&lt;br /&gt;
characters.  The token documentation has the delimiter characters left out&lt;br /&gt;
for ease of reading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Some tokens output a single item, some output comma delimited lists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Not all tokens make PCGen output something.  Some are control commands&lt;br /&gt;
that make comparisons, cause loops or apply filters.  We will discuss these&lt;br /&gt;
shortly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5) Many tokens use variables so you can get at certain aspects.  Variables&lt;br /&gt;
come immediately after the token with a period &amp;quot;.&amp;quot; between them.  For&lt;br /&gt;
example the token EXPORT can provide date and time information on a sheet&lt;br /&gt;
using EXPORT.DATE and EXPORT.TIME.  The variables that may be used with each&lt;br /&gt;
token are listed in the output sheet token documentation.  Not all variables&lt;br /&gt;
are capitalized.  Some numeric variables start at zero (0) but those should&lt;br /&gt;
be noted in the documentation for the token.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control Tokens===&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
The first and easiest to understand of the control tokens are the filter&lt;br /&gt;
tokens.  These are used to stop the normal output if the filter condition is&lt;br /&gt;
not met.  Filters all begin with a % (percent) sign and will run from the&lt;br /&gt;
moment they are invoked until they encounter a different filter or until&lt;br /&gt;
they encounter the end of filter token, which is a single % symbol (E.g.&lt;br /&gt;
|%|)  In case this wasn't clear, what it essentially means is that one, and&lt;br /&gt;
only one, filter may be active at any time.  Nested filters are not&lt;br /&gt;
supported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The simplest ones are in the form |%TOKEN|.  Here PCGen simply checks to see&lt;br /&gt;
if the character has the appropriate data.  A good use of these simple&lt;br /&gt;
filters is to suppress spell list blocks for non-spellcasters so you can use&lt;br /&gt;
the same character sheet for both types of characters and not have an empty&lt;br /&gt;
spell list cluttering things up for a non-spellcaster.  Examples of these&lt;br /&gt;
types of tokens would be |%SPELLISTBOOK| or |%BIO|.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some slightly more complex filters are in the form of |%ARMORx| and&lt;br /&gt;
|%WEAPONx|.  In these filters x represents the number of appropriate items&lt;br /&gt;
(armor type or weapon type for the above examples) that the character must&lt;br /&gt;
have in order for the filter to allow output.  For example: |%WEAPON3| means&lt;br /&gt;
that there would be no output after the filter until it reaches the next&lt;br /&gt;
filter or filter end token unless the character has at least three weapons.&lt;br /&gt;
If the character has three weapons the output would proceed as normal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next form a filter may take is that of classname=level or&lt;br /&gt;
SPELLLISTCLASSx=level.  For example, |%BARD=3| would filter output if the&lt;br /&gt;
character did not have at least three Bard levels.  |%SPELLLISTCLASS0=2|&lt;br /&gt;
would filter output if the character did not have at least two levels in his&lt;br /&gt;
first spellcasting class.  SPELLLISTCLASS is one of the tokens that starts&lt;br /&gt;
at zero as mentioned earlier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The final form of filter is one that uses variables.  They all start with&lt;br /&gt;
%VAR and take the form of |%VAR.name.label.value|.  The &amp;quot;name&amp;quot; is the name&lt;br /&gt;
of any variable that has been set up in the LST files using the VAR tag.&lt;br /&gt;
The label is a comparator and must be one of the following: &lt;br /&gt;
   .	EQ (equals)&lt;br /&gt;
   .	NEQ (not equal)&lt;br /&gt;
   .	LT (less than)&lt;br /&gt;
   .	LTEQ (less than or equal to) &lt;br /&gt;
   .	GT (greater than)&lt;br /&gt;
   .	GTEQ (greater than or equal to).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example using the variable TOTALPOWERPOINTS defined in a LST from the&lt;br /&gt;
Psionic Handbook would be: |%VAR.TOTALPOWERPOINTS.GTEQ.1|.  This would&lt;br /&gt;
filter output unless the variable TOTALPOWERPOINTS was greater than or equal&lt;br /&gt;
to 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All of the available filters are listed in the output sheet token&lt;br /&gt;
documentation with the exception of the VAR ones which are too numerous to&lt;br /&gt;
include since every VAR in every LST can be used as a filter.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Count Token==&lt;br /&gt;
The second special token is the COUNT token.  This token also takes a&lt;br /&gt;
variable, but in a slightly different form.  The variable for the COUNT&lt;br /&gt;
token goes inside a set of [] (square brackets).  This token returns the&lt;br /&gt;
number of items of the variable type given.  |COUNT[CLASSES]| would return&lt;br /&gt;
the number of classes a character has.  While this has some limited use as&lt;br /&gt;
an actual output token, these tags are more often used to set the upper&lt;br /&gt;
limit in a FOR loop, which will be explained shortly.&lt;br /&gt;
&lt;br /&gt;
All of the available variables for the COUNT token are listed in the output&lt;br /&gt;
sheet token documentation.&lt;br /&gt;
&lt;br /&gt;
==IF Tokens==&lt;br /&gt;
The next set tokens in our review of control tokens are the IIF/OIF tokens.&lt;br /&gt;
The simpler of the two is the OIF token.  It is used to evaluate an&lt;br /&gt;
expression and return a value (text or number).  This token is in the form&lt;br /&gt;
|OIF(expr,true,false)|.  There are only certain expressions that may be&lt;br /&gt;
used, and they are listed in the output sheet token documentation.  The&lt;br /&gt;
&amp;quot;true&amp;quot; and &amp;quot;false&amp;quot; parts may be anything you want them to be.&lt;br /&gt;
|OIF(SPELLCASTER0=PREPARE,Yes,No)| would return &amp;quot;Yes&amp;quot; if the character's&lt;br /&gt;
first spellcasting class had to prepare spells and &amp;quot;No&amp;quot; if it didn't.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IIF token has a much broader range and does not return output itself.&lt;br /&gt;
The IIF statement takes the form of:&lt;br /&gt;
&lt;br /&gt;
   |IIF(expr)|&lt;br /&gt;
   true actions&lt;br /&gt;
   |ELSE|&lt;br /&gt;
   false actions&lt;br /&gt;
   |ENDIF|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IIF token, like the OIF token, can only take the expressions listed in&lt;br /&gt;
the output sheet documentation as usable with IF tokens.  The power of this&lt;br /&gt;
token is in the ability to perform a whole series of actions based upon the&lt;br /&gt;
evaluation of the expression.  An example of the IIF token could be:&lt;br /&gt;
&lt;br /&gt;
   |IIF(SKILL0.UNTRAINED)|&lt;br /&gt;
   *&lt;br /&gt;
   |ELSE|&lt;br /&gt;
   x&lt;br /&gt;
   |ENDIF|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This bit would check to see if your first skill (SKILL0) is usable&lt;br /&gt;
untrained.  If the skill is, it outputs an &amp;quot;*&amp;quot; otherwise it outputs an &amp;quot;x&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Loop Tokens==&lt;br /&gt;
The last set of control tokens we need to cover are the FOR/DFOR tokens.&lt;br /&gt;
These tokens provide loop capabilities for creating lists on character&lt;br /&gt;
sheets.  These lists can include equipment, classes, skills, spells, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The FOR loops come in three forms.  The format of the first is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   |FOR,%var,min,max,step,exists|&lt;br /&gt;
   character stuff&lt;br /&gt;
   |ENDFOR|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this token, %var is a variable name that you assign when you create a&lt;br /&gt;
loop.  It should not/cannot be the same as a variable defined in a LST by&lt;br /&gt;
the VAR tag.  Whenever you use that variable within that loop, it will be&lt;br /&gt;
evaluated and return the current iteration number.  The min and max values&lt;br /&gt;
are the start and end points for the loop.  It is normal to start the loops&lt;br /&gt;
at zero because most of the arrays in PCGen are zero indexed, meaning they&lt;br /&gt;
start at zero.  You may use the COUNT[xxx] token in the max field to tell&lt;br /&gt;
the loop when to stop.  The step field is how much you want it to increment&lt;br /&gt;
the variable each time it goes through the loop (this is usually 1).  The&lt;br /&gt;
exists field controls how the loop acts if it runs out of data before the&lt;br /&gt;
max value is reached.  There are only three valid values for the exists&lt;br /&gt;
field: 0, 1 or 2.  If the exists field is a 0, the loop will continue&lt;br /&gt;
processing until the max is reached.  If it is a 1, then the loop will stop&lt;br /&gt;
processing the contents of the loop and continue on through the sheet as if&lt;br /&gt;
the loop had reached the max.  If exists is 2 and the character sheet is&lt;br /&gt;
currently within a filter, PCGen will not print anything else until the end&lt;br /&gt;
of the filter |%| is reached or another filter is begun  The |ENDFOR| token&lt;br /&gt;
tells the program where the loop ends and is required when you use a |FOR,&lt;br /&gt;
loop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example demonstrating a FOR loop:&lt;br /&gt;
&lt;br /&gt;
   |FOR,%eqp,0,COUNT[EQUIPMENT]-1,1,1|&lt;br /&gt;
   |EQ%eqp.NAME|&amp;lt;br&amp;gt;&lt;br /&gt;
   |ENDFOR|&lt;br /&gt;
&lt;br /&gt;
This loop will generate a list of the names of all of your equipment, one&lt;br /&gt;
item to a line using the EQx.Name token, where x is the current count in the&lt;br /&gt;
loop. (The &amp;lt;br&amp;gt; is an HTML line break.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example output for a typical starting fighter would be:&lt;br /&gt;
   	Half-Plate&lt;br /&gt;
   Outfit (Explorer's)&lt;br /&gt;
   Shield (Large/Steel)&lt;br /&gt;
   Battleaxe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The variable in the above loop is %eqp.  The min is 0.  The max is&lt;br /&gt;
COUNT[EQUIPMENT]-1.  I subtracted 1 because we are going to cycle through&lt;br /&gt;
the equipment list and the equipment list array starts at 0 while the COUNT&lt;br /&gt;
statement starts at 1.  Because of this we need to reduce the actual count&lt;br /&gt;
by 1.  The increment is going to be 1 and the loop will exit immediately if&lt;br /&gt;
it runs out of items before the max is reached.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice the use of the variable %eqp to define the equipment number each time&lt;br /&gt;
through.  Using loop variables properly, you can accomplish the creation of&lt;br /&gt;
large lists with relatively little effort.  This is the main reason to use&lt;br /&gt;
loops.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One last thing to know about these kinds of loops is that they may be&lt;br /&gt;
nested.  For example:&lt;br /&gt;
&lt;br /&gt;
   |FOR,%spbk,0,COUNT[SPELLBOOKS]-1,1,1|&lt;br /&gt;
   |SPELLBOOKNAME%spbk|&lt;br /&gt;
   |FOR,%lvl,0,9,1,1|&lt;br /&gt;
   |SPELLLISTBOOK%spbk.%lvl|&lt;br /&gt;
   |ENDFOR|&lt;br /&gt;
   |ENDFOR|&lt;br /&gt;
&lt;br /&gt;
This would create a list of spells for each of your spellbooks (by level). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The spell list loop is said to be nested inside of the spell book loop.&lt;br /&gt;
This allows us to use two variables.   If you need more variables, you may&lt;br /&gt;
nest more loops.  Notice that each loop needs its own |ENDFOR| statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The format for the next kind of FOR loop looks like this:&lt;br /&gt;
&lt;br /&gt;
   |FOR.min,max,perLine,phrase,startLine,endLine,exists|&lt;br /&gt;
&lt;br /&gt;
This kind of FOR loop can be used to generate multi-column lists.  Notice&lt;br /&gt;
that the character following the FOR is a period instead of a comma.  There&lt;br /&gt;
is no variable name in this kind of loop; to get the current increment of&lt;br /&gt;
the FOR loop you would use the &amp;quot;%&amp;quot; (percent) symbol.  The min and max&lt;br /&gt;
variables are the start and end points for the loop. The perLine variable is&lt;br /&gt;
how many phrases will be repeated before the endLine is printed (e.g. 3 if&lt;br /&gt;
you wanted a 3-column list).  The phrase is the code that is parsed for&lt;br /&gt;
tokens.  You must use &amp;quot;\&amp;quot; (backslash) characters instead of &amp;quot;|&amp;quot; (pipe)&lt;br /&gt;
characters to delimit tokens within a FOR loop phrase.  The startLine will&lt;br /&gt;
be output at the beginning of the loop and after the endLine.  The endLine&lt;br /&gt;
variable will be printed every perLine times through the loop.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This type of FOR loop does not require an |ENDFOR| tag.  This type of FOR&lt;br /&gt;
loop cannot be nested.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: If you are using this type of FOR loop to create a party sheet&lt;br /&gt;
(psheet*.*) you must use a &amp;quot;\\&amp;quot; double backslash to delimit the tokens&lt;br /&gt;
within the phrase.  Party sheets will be covered elsewhere, but it is&lt;br /&gt;
important to be aware of it.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A real example (for a single character sheet):&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
   &amp;quot;&amp;lt;&amp;quot; table &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
   &amp;quot;|FOR.0,COUNT[EQUIPMENT]-1,2,&amp;lt;td&amp;gt;\EQ%.NAME\&amp;lt;/td&amp;gt;,&amp;lt;tr&amp;gt;,&amp;lt;/tr&amp;gt;,1|&amp;quot;&lt;br /&gt;
   &amp;quot;&amp;lt;&amp;quot; /table &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
HTML note:  The &amp;quot;&amp;lt;&amp;quot;table&amp;quot;&amp;gt;&amp;quot; and &amp;quot;&amp;lt;&amp;quot;/table&amp;quot;&amp;gt;&amp;quot; are the HTML table opening and closing&lt;br /&gt;
commands &amp;lt;tr&amp;gt; and &amp;lt;/tr&amp;gt; open and close a table row respectively and &amp;lt;td&amp;gt; and&lt;br /&gt;
&amp;lt;/td&amp;gt; open and close a single piece of data in the table.  The extra Quotes &amp;quot;&amp;lt;&amp;quot; &amp;quot;&amp;gt;&amp;quot; were to allow the WIKI to display these tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This would produce a table of two columns listing the names of all your&lt;br /&gt;
equipment.&lt;br /&gt;
&lt;br /&gt;
   Example Output:              	Half-Plate			Outfit&lt;br /&gt;
   (Explorer's)&lt;br /&gt;
   					Shield(large/Steel)	Battleaxe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is no named variable in this loop.  The min is 0.  The max is&lt;br /&gt;
COUNT[EQUIPMENT]-1.  The perLine is 2, so there will be two phrases output&lt;br /&gt;
before the endLine.  The phrase is &amp;quot;&amp;lt;td&amp;gt;\EQ%.NAME\&amp;lt;/td&amp;gt;&amp;quot;.  The startLine is&lt;br /&gt;
&amp;lt;tr&amp;gt; (to start the row) and the endLine is &amp;lt;/tr&amp;gt; (to end the row).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The final type of for loop is the DFOR loop.  While the format of the loop&lt;br /&gt;
itself is fairly complicated, what it does isn't.  Instead of creating a&lt;br /&gt;
table of elements across and then down, it creates a table of elements down&lt;br /&gt;
and then across.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To illustrate the difference between the different loops:    &lt;br /&gt;
&lt;br /&gt;
   FOR, Loop Output		FOR. loop Output 			DFOR&lt;br /&gt;
   Loop Output&lt;br /&gt;
   1				1	2	3			1&lt;br /&gt;
   4	&lt;br /&gt;
   2				4	5	6			2&lt;br /&gt;
   5&lt;br /&gt;
   3									3&lt;br /&gt;
   6&lt;br /&gt;
   4&lt;br /&gt;
   5&lt;br /&gt;
   6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this might help people!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Barak&lt;/div&gt;</summary>
		<author><name>LegacyKing</name></author>
		
	</entry>
</feed>