I quite often use the trim() function when concatenating string together so that spacing can be controlled (used often for creation filenames for example) however I noticed that if the variable being trimmed is blank none of the strings following are added to the string. Is this expected?
eg
character*20 :: var1,var2,var3
character*132 :: string
var1 = '250.0'
var2 = 'millimetres'
var3 = 'tagline'
string = trim(var1)//' '//trim(var2)//' '//trim(var3)
string would be '250.0 millimetres tagline'
however if:
var2 = ' '
string would be just '250.0'
where I would expect '250.0 tagline'
I've only noticed this recently so may have been introduced in one of the later XE compiler updates.
eg
character*20 :: var1,var2,var3
character*132 :: string
var1 = '250.0'
var2 = 'millimetres'
var3 = 'tagline'
string = trim(var1)//' '//trim(var2)//' '//trim(var3)
string would be '250.0 millimetres tagline'
however if:
var2 = ' '
string would be just '250.0'
where I would expect '250.0 tagline'
I've only noticed this recently so may have been introduced in one of the later XE compiler updates.
連結已複製
4 回應
Hi Steve,
I'm running on Update 9 (12.1.330).
After some investigation the problem I flagged up occurs when thevar2 substring has not been initialised at all. This is down to bad programming practice on my part so apologies for that. However I would be interested to know if the behavoir of the function is as expected.
I know that len_trim() function does not like C strings with trailing char(0)/ Should these founctions still work even if they containare NULL characters using the first encountered NULL as the end of the string?
Thanks for your quick response.
I'm running on Update 9 (12.1.330).
After some investigation the problem I flagged up occurs when thevar2 substring has not been initialised at all. This is down to bad programming practice on my part so apologies for that. However I would be interested to know if the behavoir of the function is as expected.
I know that len_trim() function does not like C strings with trailing char(0)/ Should these founctions still work even if they containare NULL characters using the first encountered NULL as the end of the string?
Thanks for your quick response.