[fpc-pascal] assigning ansistring with shortstring

L505 fpc505 at z505.com
Fri May 26 14:10:57 CEST 2006

I'm lacking some memory concept here. Below program doesn't work unless setlengths
are called first on the shortstrings.

program Project1;

{$mode objfpc}{$H+}

  filename: string;
  last3: string[3];
  last4: string[4];
  filename:= 'test';
  filename:= filename+ 'ing.pas';
  setlength(last3, 3);
  last3[1]:= filename[length(filename)-2];
  last3[2]:= filename[length(filename)-1];
  last3[3]:= filename[length(filename)];
  writeln('debug last3: ' + last3);
  setlength(last4, 4);
  last4[1]:= filename[length(filename)-3];
  last4[2]:= filename[length(filename)-2];
  last4[3]:= filename[length(filename)-1];
  last4[4]:= filename[length(filename)];
  writeln('debug last4: ' + last4);

I'd never have thought to use a setlength on a shortstring???

More information about the fpc-pascal mailing list