⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clib.pas

📁 C,C++ To Delphi转换器 C,C++ To Delphi转换器
💻 PAS
字号:
Unit CLIB;

Interface

function calloc(size,count:word):pointer;

function fopen(fn,mode:string):integer;
function fgets(p:pchar; max,fd:integer):pchar;
function fgetc(fd:integer):char;
procedure fputc(c:char; fd:integer);
procedure fputs(p:pchar; fd:integer);
procedure fclose(fd:integer);

function isalpha(c:char):boolean;
function isdigit(c:char):boolean;

procedure abort(code:integer);

procedure poll(i:integer);

Implementation

function calloc(size,count:word):pointer;
 var
  p:pointer;
 begin
  getmem(p,size*count);
  calloc:=p;
 end;

var
 pasfiles:array[0..2] of record
  handle:text;
  line  :string;
  opened:boolean;
 end; (* input, input2 & output *)

function fopen(fn,mode:string):integer;
 var
  i:integer;
 begin
  i:=low(pasfiles);
  while pasfiles[i].opened do begin
   if i=high(pasfiles) then halt;
   inc(i);
  end;
  with pasfiles[i] do begin
   assign(handle,fn);
   if mode='r' then reset(handle) else
   if mode='w' then rewrite(handle) else halt;
   opened:=true;
  end;
  fopen:=i;
 end;

function fgets(p:pchar; max,fd:integer):pchar;
 begin
  with pasfiles[fd] do begin
   readln(handle,line);
   if max>length(line) then max:=length(line);
   move(line[1],p^,max);
  end;
  fgets:=p;
 end;

function fgetc(fd:integer):char;
 var
  c:char;
 begin
  with pasfiles[fd] do begin
   read(handle,c);
  end;
  fgetc:=c;
 end;

procedure fputc(c:char; fd:integer);
 begin
  with pasfiles[fd] do write(handle,c);
 end;

procedure fputs(p:pchar; fd:integer);
 begin
  while p^<>#0 do begin
   fputc(p^,fd);
   inc(p);
  end;
 end;

procedure fclose(fd:integer);
 begin
  with pasfiles[fd] do begin
   close(handle);
   opened:=false;
  end;
 end;

function isalpha(c:char):boolean;
 begin
  isalpha:=c in ['a'..'z','A'..'Z'];
 end;


function isdigit(c:char):boolean;
 begin
  isdigit:=c in ['0'..'9'];
 end;


procedure abort(code:integer);
 begin
  halt(code);
 end;

procedure poll(i:integer);
 begin
 end;

begin
 fillchar(pasfiles,sizeof(pasfiles),0);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -