- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please report the specific compiler version which exhibits this behavior. Version 12.1.0.233 (32-bit and 64-bit) on Windows prints:
250.0 tagline
250.0 tagline
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I get:
250.0 tagline
in Update 9 (12.1.330)
Please show a complete program that demonstrates the problem and a command prompt log showing the build and run with the bad results.
250.0 tagline
in Update 9 (12.1.330)
Please show a complete program that demonstrates the problem and a command prompt log showing the build and run with the bad results.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
TRIM and LEN_TRIM remove blanks only - not other characters. the NUL character has no special meaning in Fortran.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page