下载《仙剑》金曲

Author: 樊一鹏 Date: 1997-01-01

#3  你知道游戏《仙剑奇侠传》共有多少金曲吗?——86首!现在,你终于可以一次性拥有这86首金曲的特辑了!这就是要送给大家的——《仙剑》音乐下载小程序。
  源程序名:PAL-MIDIC
  编译环境:TURBO C或BORLAND C++;有波表卡,效果将更好。
  #include <stdioh>
  #include <stdlibh>
  #include <conioh>
  char TargetFileName[32]="MUSIC-00MID";/*目标文件名*/
  void main(void)
  { 
  FILE *SourceFile,*TargetFile;/*文件指针*/ 
  long Start,End,Len;
  int i,j,k,file;
  file=0;
  clrscr();
  gotoxy(18,10);
  printf("《仙剑奇侠传》音乐文件生成器 作者:樊一鹏");
  /*打开源文件*/
  if((SourceFile=fopen("MIDI.MKF","rb"))==NULL)
  /*打开源文件失败*/
  gotoxy(21,13);
  printf("错误:当前目录下找不到MIDIMKF文件!\n");
  exit(1);
  }
  /*主循环*/
  for(i=1;i<=87;i++)
  /*读指针定位*/
  fseek(SourceFile,i*4,SEEK-SET);
  fread(&Start,1,4,SourceFile);
  fread(&End,1,4,SourceFile);
  fseek(SourceFile,Start,SEEK-SET);
  /*计算音乐文件长度*/
  Len=End-Start;
  /*音乐文件是否存在*/
  if(Len>0)
  { 
  /*音乐文件存在,开始处理*/
  ++file;
  TargetFileName[6]=(file/10)+'0';
  TargetFileName[7]=(file%10)+'0';
  /*打开目标文件*/
  TargetFile=fopen(TargetFileName,"wb");
  /*生成目标文件*/
  gotoxy(23,13);
  printf("正在生成第[%d]首音乐:%s",file,TargetFileName);
  for(j=0;j<Len;j++)
  {    
  k=fgetc(SourceFile);    
  fputc(k,TargetFile);   
  }
  /*关闭目标文件*/
  fclose(TargetFile);
  }
  }
  /*关闭源文件*/
  fclose(SourceFile);
  gotoxy(29,15);
  printf("音乐文件全部生成完毕!\n");
  }
  以上程序可在TURBO C或BORLAND C++集成环境下输入、编译(compile)、链接(link)形成可执行文件PAL-MIDI.EXE,把它拷入《仙剑》所在子目录下运行,就会用MIDI格式生成八十六个音乐文件,从MUSIC-01.MID到MUSIC-86.MID。如果用户的机器上没有C语言或不懂得编译过程,可寄10元钱到本报编辑部拷贝源代码和执行文件。