Language C/AL (Microsoft Navision)
(Codeunit)
| Date: | 03/08/06 |
| Author: | Carsten Scholling |
| URL: | n/a |
| Comments: | 0 |
| Info: | http://www.microsoft.com/dynamics/nav/default.mspx |
| Score: |
OBJECT Codeunit 50085 99 Bottles of Beer
{
OBJECT-PROPERTIES
{
Date=01.03.06;
Time=12:57:20;
Modified=Yes;
Version List=01.03.06;
}
PROPERTIES
{
OnRun=BEGIN
char13 := 13;
char10 := 10;
SongFile.WRITEMODE(TRUE);
SongFile.TEXTMODE(TRUE);
SongFile.CREATE(c_txtFileName);
SongFile.CREATEOUTSTREAM(SongStream);
FOR i := 99 DOWNTO 0 DO BEGIN
SongLine1 := c_txtLyrics001;
SongLine2 := c_txtLyrics002;
Plural1 := 's';
Plural2 := 's';
TextNumber1 := FORMAT(i);
TextNumber2 := FORMAT(i - 1);
CASE i OF
2: BEGIN
Plural2 := '';
END;
1: BEGIN
TextNumber2 := c_txtNoMore;
Plural1 := '';
END;
0: BEGIN
TextNumber1 := c_txtNoMore;
TextNumber2 := c_txtNoMore;
SongLine2 := c_txtLyrics003;
END;
END;
SongLine1 := STRSUBSTNO(SongLine1, TextNumber1, Plural1) +
FORMAT(char13) + FORMAT(char10);
SongLine2 := STRSUBSTNO(SongLine2, TextNumber2, Plural2) +
FORMAT(char13) + FORMAT(char10) + FORMAT(char13) + FORMAT(char10);
SongStream.WRITETEXT(SongLine1);
SongStream.WRITETEXT(SongLine2);
END;
SongFile.CLOSE();
END;
}
CODE
{
VAR
c_txtLyrics001@1000000005 : TextConst 'ENU=%01 bottle%02 of beer on the wall, %01 bottle%02
of beer.';
c_txtLyrics002@1000000003 : TextConst 'ENU=Take one down and pass it around, %01 bottle%02 of
beer on the wall.';
c_txtLyrics003@1000000000 : TextConst 'ENU=Go to the store and buy some more, 99 bottles of
beer on the wall.';
SongFile@1000000010 : File;
SongStream@1000000013 : OutStream;
SongLine1@1000000002 : Text[100];
SongLine2@1000000009 : Text[100];
TextNumber1@1000000004 : Text[30];
TextNumber2@1000000006 : Text[30];
Plural1@1000000007 : Text[1];
Plural2@1000000008 : Text[1];
char13@1000000014 : Char;
char10@1000000015 : Char;
i@1000000001 : Integer;
c_txtNoMore@1000000011 : TextConst 'ENU=No more';
c_txtFileName@1000000012 : TextConst 'ENU=C:\99BottlesOfBeer.txt';
BEGIN
{
99 Bottles of Beer as a Microsoft Navision Codeunit in C/AL.
by Carsten Scholling (cscholling /at/ bugcomputer.de)
Inspired by http://www.99-bottles-of-beer.net
A file named "99BottlesOfBeer.txt" will be created in C: root.
There is no console in Navision to write to, so i used this solution.
Of course it could be shorter, nicer and so on, but with 99 bottles of
beer in my head this was the only possible solution ;-)
}
END.
}
}
Download Source | Write Comment
Download Source | Write Comment
Add Comment
Please provide a value for the fields Name,
Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.
Please don't post large portions of code here! Use the form to submit new examples or updates instead!
Comments