Hi, Is it safe to do the following?
var W: Word; U: UInt64; {$R-} //range checkin off begin U := $0000000100000000; W := U; // or W := Word(U); end. I know that the value that i assigned to W is "wrong" (and I can handle that), but does it trash memory or cause other serious problems? Context: I have to deal with string input of arbitrary length (only digits) that I have to convert to a Value of type Word. For this I use Val(). Val('$0000000100000000', W, Err) gives W = 0; Err = 0 (indicating there was no error); I do not want to use rangechecking and then a try .. except (this would slow down code dramatically). So I thought I might use Val('$0000000100000000', U, Err) (U being of type UInt64) This has the advantage that any string which represents a value > High(QWord) wil set Err to > 0. After that I would have to assign the value in U to W (after a check that the value in U is not "invalid" in the context of my code). Bart _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal