[Back to FILES SWAG index] [Back to Main SWAG index] [Original]
{
   The purpose  of this  program is to  convert an ICON  into an  INC file.
               ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
               º                                        º°
               º          AVONTURE CHRISTOPHE           º°
               º              AVC SOFTWARE              º°
               º     BOULEVARD EDMOND MACHTENS 157/53   º°
               º           B-1080 BRUXELLES             º°
               º              BELGIQUE                  º°
               º                                        º°
               ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ°
               °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
}
FUNCTION No_Extension (st : String) : String;
VAR
   wExtension : Word;
BEGIN
   wExtension := Pos('.', st);
   Delete (St, wExtension, Length(st));
   No_Extension := st;
END;
CONST
   IcoSize  = 766;
   FileName = 'TEST.ICO';
TYPE
   Buffer = ARRAY[1..IcoSize] OF Byte;
VAR
   fIco    : File of Buffer;
   fSource : Text;
   Buf     : ^Buffer;
   I       : Word;
BEGIN
   IF PARAMCOUNT=0 THEN
      BEGIN
         Writeln ('');
         Writeln ('AVC Software (c) AVONTURE Christophe');
         Writeln ('');
         Writeln ('');
         Writeln ('Convert an ICO file to a pascal source file.');
         Writeln ('Type ICO2PAS followed by the name of the ICO (extension must be there).');
         Writeln ('');
         Writeln ('  Example  ICO2PAS WINWORD.ICO will create a WINWORD.INC file');
         Writeln ('');
         Halt;
      END;
   GetMem (Buf, IcoSize);
   Assign (fIco, ParamStr(1));
   FileMode := 0;
   Reset (fIco);
   Read (fIco, Buf^);
   Close (fIco);
   Assign (fSource, No_Extension (FileName)+'.INC');
   FIleMode := 1;
   Rewrite (fSource);
   Writeln (fSource, 'Const '+No_Extension (FileName)+'_ICO : Array[1..766] of Byte =');
   FOR I := 1 TO IcoSize-1 DO
      IF I = 1 THEN
         Write (fSource, '           (', Buf^[I],',')
      ELSE IF I Mod 20 = 19 THEN
         BEGIN
            Writeln (fSource, Buf^[I],',');
            Write (fSource, '            ');
         END
      ELSE
         Write (fSource, Buf^[I],',');
   Write (fSource, Buf^[IcoSize],');');
   Close (fSource);
END.
[Back to FILES SWAG index] [Back to Main SWAG index] [Original]