[comp.lang.pascal] HELP WITH POINTERS!!!!!!!

C0361@univscvm.csd.scarolina.edu ( Thomas Jenkins) (10/19/90)

Hello,

   I'm in need of some help :-) !  I'm trying to write a generic read/write
   unit that encrypts as it read/writes.  Well, the unit works fine ( even
   with encrypt versions of seek and filepos! )  The trouble is that to
   pass any type of data structure in it must be a VAR parameter.  The
   problem?  In the encrypt write, the buffer is encrypted, so the program
   gets garbage back.  I've gotten around this by decrypting before
   returning, but this is not the best solution.

   I decided to use GetMem and Move to create a temp buffer for the
   encryption like this:

      VAR
            tempBuffer                            : POINTER ;

      BEGIN
        IF ( MemAvail < size )
         THEN
          BEGIN
            EncryptError := NOT_ENOUGH_MEMORY ;
            Exit ;
          END ;  {  IF  }

        Move ( buffer , tempBuffer , size ) ;

          ..................

        BlockWrite ( f , tempBuffer , size , numWritten ) ;

     END ;  {  WriteEncrypt  }

Now, I'm sure there maybe an error in the POINTER stuff (I'm new to Move),
but the error being reported id file not open!  I call ReWrite ( f , 1 ) then
writeEncrypt and it say's file not open!

   Can someone tell me what is wrong?  I'll send the source to those
   interested, but I think the above is enough to show where the error is.

PS., once I get this thing working, I'll post it with my password unit.  I
wrote this unit to encrypt the password file, but made it VERY generic so
it could be used for ANY data type ( even records ).

thanks,

tom

THOMAS E. JENKINS, JR.

  PROGRAMMER, UNIVERSITY OF SOUTH CAROLINA
    BITNET, C0361 AT UNIVSCVM.BITNET
     INTERNET C0361 AT UNIVSCVM.CSD.SCAROLINA.EDU