mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 13:31:40 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| {
 | |
|     $Id$
 | |
|     This file is part of the Free Pascal Run time library.
 | |
|     Copyright (c) 1999-2000 by the Free Pascal development team
 | |
| 
 | |
|     See the File COPYING.FPC, included in this distribution,
 | |
|     for details about the copyright.
 | |
| 
 | |
|     This program is distributed in the hope that it will be useful,
 | |
|     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
| 
 | |
|  **********************************************************************}
 | |
| 
 | |
| {****************************************************************************
 | |
|                     subroutines for typed file handling
 | |
| ****************************************************************************}
 | |
| 
 | |
| Procedure assign(var f:TypedFile;const Name:string);
 | |
| {
 | |
|   Assign Name to file f so it can be used with the file routines
 | |
| }
 | |
| Begin
 | |
|   FillChar(f,SizeOF(FileRec),0);
 | |
|   FileRec(f).Handle:=UnusedHandle;
 | |
|   FileRec(f).mode:=fmClosed;
 | |
|   Move(Name[1],FileRec(f).Name,Length(Name));
 | |
| End;
 | |
| 
 | |
| 
 | |
| Procedure assign(var f:TypedFile;p:pchar);
 | |
| {
 | |
|   Assign Name to file f so it can be used with the file routines
 | |
| }
 | |
| begin
 | |
|   Assign(f,StrPas(p));
 | |
| end;
 | |
| 
 | |
| 
 | |
| Procedure assign(var f:TypedFile;c:char);
 | |
| {
 | |
|   Assign Name to file f so it can be used with the file routines
 | |
| }
 | |
| begin
 | |
|   Assign(f,string(c));
 | |
| end;
 | |
| 
 | |
| 
 | |
| Procedure fpc_reset_typed(var f : TypedFile;Size : Longint);[Public,IOCheck, Alias:'FPC_RESET_TYPED']; {$ifdef hascompilerproc} compilerproc; {$endif}
 | |
| Begin
 | |
|   If InOutRes <> 0 then
 | |
|    exit;
 | |
|   Reset(UnTypedFile(f),Size);
 | |
| End;
 | |
| 
 | |
| 
 | |
| Procedure fpc_rewrite_typed(var f : TypedFile;Size : Longint);[Public,IOCheck, Alias:'FPC_REWRITE_TYPED']; {$ifdef hascompilerproc} compilerproc; {$endif}
 | |
| Begin
 | |
|   If InOutRes <> 0 then
 | |
|    exit;
 | |
|   Rewrite(UnTypedFile(f),Size);
 | |
| End;
 | |
| 
 | |
| 
 | |
| Procedure fpc_typed_write(TypeSize : Longint;var f : TypedFile;const Buf);[IOCheck, Public, Alias :'FPC_TYPED_WRITE']; {$ifdef hascompilerproc} compilerproc; {$endif}
 | |
| Begin
 | |
|   If InOutRes <> 0 then
 | |
|    exit;
 | |
|   case fileRec(f).mode of
 | |
|     fmOutPut,fmInOut:
 | |
|       Do_Write(FileRec(f).Handle,Longint(@Buf),TypeSize);
 | |
|     fmInput: inOutRes := 105;
 | |
|     else inOutRes := 103;
 | |
|   end;
 | |
| End;
 | |
| 
 | |
| Procedure fpc_typed_read(TypeSize : Longint;var f : TypedFile;var Buf);[IOCheck, Public, Alias :'FPC_TYPED_READ']; {$ifdef hascompilerproc} compilerproc; {$endif}
 | |
| var
 | |
|   Result : Longint;
 | |
| Begin
 | |
|   If InOutRes <> 0 then
 | |
|    exit;
 | |
|   case FileRec(f).mode of
 | |
|     fmInput,fmInOut:
 | |
|       begin
 | |
|         Result:=Do_Read(FileRec(f).Handle,Longint(@Buf),TypeSize);
 | |
|         If Result<TypeSize Then
 | |
|          InOutRes:=100
 | |
|       end;
 | |
|     fmOutPut: inOutRes := 104
 | |
|     else inOutRes := 103;
 | |
|   end;
 | |
| End;
 | |
| 
 | |
| {
 | |
|   $Log$
 | |
|   Revision 1.3  2001-08-06 14:13:55  jonas
 | |
|     * changed buf parameter of fpc_type_write from var to const
 | |
|     + added names of helpers in typefile.inc to compproc.inc
 | |
| 
 | |
|   Revision 1.2  2000/07/13 11:33:46  michael
 | |
|   + removed logs
 | |
|  
 | |
| }
 | 
