[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]