4D does not return 21 (string array) from TYPE when the item being 
tested is in fact a string array!

Try this:
String array($Fred;20)
$x := Type($Fred)

$x == 18  (text array)

I found this while trying to write some generic code to manipulate 
arrays.
In this specific instance I am trying to (blindly) resize array(s)

Arrayutl_Resize_array(newSize;Array_ptr1;Array_ptr2...)

if the array is any type, except ARRAY STRING, I can simpley use a 
compiler directive to resize the array. However, this is NOT the case 
with a string array, as I do not know the string length in the array 
declaration.

So, I have code which uses Delete from array, or Insert into array to 
resize a string array, preserving/avoiding the string length issue.
Case of 
: ($Difference<0)
DELETE FROM ARRAY($Array_Pointer->;$Size+1;Abs($Difference))

: ($Difference>0)
INSERT IN ARRAY($Array_Pointer->;Size of 
array($Array_Pointer->);$Difference)
Else   //already at correct size
End case 

BUT -- this code will not ever run, as TYPE treats a string array as a 
text array and returns the value 18 (text array) rather then 21 (string 
array). 

Any workarounds??
does this exist in new versions?

Thanks
Chip
---------------
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to