Show your source

1
Er zitten hier een stel mensen die, al of niet voor de kost, computer programmas maken. Voor al die mensen: laat eens een stukje source code van jouw hand zien. Dat geeft vaak zoveel extra informatie over de persoon erachter. Om de spits af te bijten zal ik de eerste zijn:

Code: Selecteer alles

PROCEDURE FileSize (FileName : Strings.String) : CARDINAL;

CONST   Chunk           = 1024;

VAR     n, size         : CARDINAL;
        m               : INTEGER;
        inF             : BasicIO.File;
        tmpPool         : MemPools.MemPool;
        tmpPtr          : POINTER TO CHAR;

BEGIN
  n := 0;       m := 0;
  BasicIO.OpenInput (inF, FileName);
  IF  NOT BasicIO.DONE  THEN  RETURN 0  END;
  MemPools.NewPool (tmpPool);
  MemPools.PoolAllocate (tmpPool, tmpPtr, Chunk);
  REPEAT
    BasicIO.Read (inF, tmpPtr, Chunk, m);
    INC (n, Chunk)
  UNTIL m # Chunk;
  DEC (n, Chunk);
  size := n + CARDINAL (m);
  MemPools.KillPool (tmpPool);
  BasicIO.Close (inF);
  RETURN size
END FileSize;
Ja, Modula-2. Een van de mooiste programmeertalen ooit bedacht.
cron