home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / mp3osr05.zip / src / makeres.pas < prev    next >
Pascal/Delphi Source File  |  1999-11-21  |  2KB  |  77 lines

  1. (*
  2.  * making a resource file with genres
  3.  *  (c) 1999 by Alexander Trunov, 2:5069/10, jnc@mail.ru
  4.  *)
  5.  
  6. uses Objects, DOS;
  7.  
  8. var
  9.   res: PResourceFile;
  10.   coll: PStringCollection;
  11.   stream: PDosStream;
  12.   oldSize: Longint;
  13.  
  14. {.$define exe}
  15.  
  16. procedure MakeGenres;
  17. var
  18.   src: Text;
  19.   S: string;
  20. begin
  21.   Assign (src, 'genres.lst');
  22.   Reset (src);
  23.  
  24.   while not EOF (src) do
  25.   begin
  26.     Readln (src, S);
  27.     if Length (S) > 0 then
  28.       coll^.AtInsert (coll^.Count, NewStr (S));
  29.   end;
  30.  
  31.   Close (src);
  32. end;
  33.  
  34. function FileExists (AFile: FNameStr): Boolean;
  35. begin
  36.   FileExists := FSearch (AFile,'') <> '';
  37. end;
  38.  
  39. begin
  40.   if not FileExists ('genres.lst') then
  41.     Halt (254);
  42.  
  43.   RegisterObjects;
  44. {$ifdef exe}
  45.   stream := New (PDosStream, Init ('tagger.exe', stOpen));
  46.   stream^.Seek (stream^.GetSize);
  47. {$else}
  48.   stream := New (PDosStream, Init ('tagger.res', stCreate));
  49. {$endif}
  50.  
  51.   if stream^.Status <> stOk then
  52.   begin
  53.     Writeln ('An error occured while trying to open resource-file.');
  54.     Writeln ('Therefore, I am exiting...');
  55.     Dispose (stream, Done);
  56.     Halt (253);
  57.   end;
  58.  
  59.   oldSize := stream^.GetSize;
  60.  
  61.   res := New (PResourceFile, Init (stream));
  62.   coll := New (PStringCollection, Init (127, 10));
  63.  
  64.   MakeGenres;
  65.  
  66.   res^.Put (coll, 'genres');
  67.   res^.Flush;
  68.  
  69.   Writeln ('actual size of resource was ', res^.Stream^.GetSize - oldSize, ' bytes');
  70.   Writeln ('this is important once you decided to change the genre-list, heh');
  71.  
  72.   Dispose (coll, Done);
  73.   Dispose (res, Done);
  74.  
  75.   Writeln ('resources successfully created..');
  76.  
  77. end.