home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / graph / tools.pas < prev    next >
Pascal/Delphi Source File  |  1994-10-04  |  2KB  |  47 lines

  1. Unit Tools;
  2.  
  3. Interface
  4.  
  5. procedure sin_gen(var table:Array of word;periode,amplitude,offset:word);
  6. Procedure Draw_Ansi(Nom:String);
  7.  
  8.  
  9. Implementation
  10.  
  11. procedure sin_gen(var table:Array of word;periode,amplitude,offset:word);
  12. {calcule une table des sinus de longueur periode ,
  13.  et la mémorise dans le tableau table.
  14.  "hauteur" est stockée dans la variable Amplitude et
  15.  la situation du point 0 en offset }
  16. Var i:Word;
  17. Begin
  18.   for i:=0 to periode-1 do
  19.     table[i]:=round(sin(i*2*pi/periode)*amplitude)+offset;
  20. End;
  21.  
  22. Procedure Draw_Ansi(Nom:String);
  23. {Renvoi un fichier ANSI à l'écran (ANSI.SYS nécessaire !)}
  24. Var Ansi:File;                  {Fichier Ansi}
  25.     StdOut:File;                {Fichier de sortie standard (Int 21h)}
  26.     Tampon:Pointer;             {Tampon pour l'écran}
  27.     Taille:Word;               {Taille du fichier}
  28. Begin
  29.   Assign(Ansi,Nom);            {Ouverture du fichier Ansi}
  30.   Assign(StdOut,'CON');         {Ouverture du fichier de sortie}
  31.  
  32.   Reset(Ansi,1);          {Init. du Fichier Ansi avec une taille de 1 octet}
  33.   Taille:=FileSize(Ansi);
  34.   Reset(Ansi,Taille);          {Init.du fichier avec pour taille Taille}
  35.   Reset(StdOut,Taille);        {Init. du fichier de sortie}
  36.  
  37.   GetMem(Tampon,Taille);       {Allocation mémoire}
  38.   BlockRead(Ansi,Tampon^,1);    {Lecture de fichier ...}
  39.   BlockWrite(StdOut,Tampon^,1); {... et écriture}
  40.   FreeMem(Tampon,Taille);      {Libération de la mémoire}
  41.   Close(Ansi);                  {Fermeture du fichier}
  42.   Close(StdOut);
  43. End;
  44.  
  45. Begin
  46. End.
  47.