35 lines
1.4 KiB
ObjectPascal
35 lines
1.4 KiB
ObjectPascal
program IsNumeric;
|
|
|
|
type
|
|
TDynamicArrayItem = record
|
|
StrValue: string;
|
|
end;
|
|
|
|
var
|
|
myDynamicArray: array of TDynamicArrayItem;
|
|
i: Integer;
|
|
Value: Extended;
|
|
Code: Integer;
|
|
|
|
begin
|
|
// Initialize the dynamic array with different data types
|
|
SetLength(myDynamicArray, 7);
|
|
myDynamicArray[0].StrValue := 'Hello';
|
|
myDynamicArray[1].StrValue := '42';
|
|
myDynamicArray[2].StrValue := '3.14159';
|
|
myDynamicArray[3].StrValue := 'World';
|
|
myDynamicArray[4].StrValue := '99';
|
|
myDynamicArray[5].StrValue := '0777'; // Octal representation for 511
|
|
myDynamicArray[6].StrValue := '$A1'; // Hexadecimal representation for 161
|
|
|
|
// Iterate through the dynamic array and determine data type
|
|
for i := Low(myDynamicArray) to High(myDynamicArray) do
|
|
begin
|
|
Val(myDynamicArray[i].StrValue, Value, Code);
|
|
if Code = 0 then // The value 0 for Code indicates that the conversion was successful.
|
|
Writeln('Element ', i, ': Numeric Value ', Chr(9),' - ', Value) // Chr(9) = tab
|
|
else
|
|
Writeln('Element ', i, ': Non-Numeric Value ', Chr(9), ' - ', myDynamicArray[i].StrValue);
|
|
end;
|
|
end.
|
|
{ Val converts the value represented in the string 'StrValue' to a numerical value or an enumerated value, and stores this value in the variable 'Value', which can be of type Longint, Real and Byte or any enumerated type. If the conversion isn't successful, then the parameter 'Code' contains the index of the character in 'StrValue' which prevented the conversion. }
|