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+} var filename: string; last3: string[3]; last4: string[4]; begin 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); readln; end. I'd never have thought to use a setlength on a shortstring??? _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal