📄 bcl2cold.pas
字号:
USES Crt,Dos;
VAR T:Text;
F:FILE;
I,K,M:LongInt;
SR:SearchRec;
PosCnt:LongInt;
StN:ARRAY[0..1000]OF STRING[20];
StN2:ARRAY[0..1000]OF STRING[20];
Anz:LongInt;
PROCEDURE WriteToFile(C:Byte);
BEGIN
PosCnt:=PosCnt+1;
if(PosCnt=7) THEN BEGIN
Write(T,C);
WriteLn(T,',');
PosCnt:=0;
END ELSE BEGIN
Write(T,C);
Write(T,',');
END;
END;
PROCEDURE WriteFile(St:STRING);
VAR Name:STRING;
B:Byte;
BEGIN
StN[Anz]:=St;
PosCnt:=0;
Name:='BCL'+St;
Delete(Name,Pos('.',Name),4);
if(Pos('~',Name)<>0) THEN Delete(Name,Pos('~',Name),1);
StN2[Anz]:=Name;
WriteLn(T,'const unsigned char '+Name+'[] = {');
Assign(F,St);
ReSet(F,1);
WHILE NOT EoF(F) DO BEGIN
BlockRead(F,B,1);
WriteToFile(B);
END;
Close(F);
WriteLn(T,'};');
WriteLn(T);
Anz:=Anz+1;
END;
BEGIN
Anz:=0;
Assign(T,'..\bcls.h');
ReWrite(T);
WriteLn(T,'/* .BCL-Files - Created by BCL2C (C)2004 Pap/JTMK/CM */');
WriteLn(T,'#ifndef _BCL_FILES');
WriteLn(T,'#define _BCL_FILES');
FindFirst('*.BCL',AnyFile,SR);
WHILE DosError=0 DO BEGIN
WriteFile(SR.Name);
FindNext(SR);
END;
WriteLn(T,'unsigned char *GetBCLAddr(char *Name);');
WriteLn(T,'#endif');
Close(T);
ChDir('..');
Assign(T,'bcls.cpp');
ReWrite(T);
writeLn(T,'#include <windows.h>;');
WriteLn(T,'#include "bcls.h";');
WriteLn(T,'unsigned char *GetBCLAddr(char *Name)');
WriteLn(T,'{');
WriteLn(T,'CharUpper(Name);');
FOR I:=1 TO Anz DO BEGIN
WriteLn(T,'if(strcmp(Name,"'+StN[I-1]+'")==0) return((unsigned char*)&'+StN2[I-1]+');');
END;
WriteLn(T,'return(0);');
WriteLn(T,'}');
Close(T);
ChDir('BCLOPD3D');
END.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -