I have noticed a behavior change between Clarion 10 and Clarion 11.
In the dictionary, the full path name is a variable - !loc:PROVIDER.
In Clarion 10, this code worked to set the file location:
loc:PROVIDER = glo:RootFolder & ‘PROVIDER’
In Clarion 11, I have to add the file extension (.dat) to the end of the file name. If not, a new file is created with no file extension.
loc:PROVIDER = glo:RootFolder & ‘PROVIDER.dat’
Is anyone else having this problem?
Thanks,
Emily
Hello Emily -
I am not seeing that behavior in C11.
This program created MyFile.DAT. And PROP:DefaultExtension returns ‘.DAT’.
PROGRAM
MAP
END
Yada STRING(FILE:MaxFilePath)
F FILE,DRIVER('CLARION'),PRE(F),NAME(Yada),CREATE
RECORD RECORD
S STRING(10)
END
END
CODE
Yada = LONGPATH('.\MyFile')
MESSAGE(F{PROP:DefaultExtension})
CREATE(F)
That’s interesting! My driver is Btrieve, but I don’t see why that would make a difference.
I will do some more testing. Thanks for your comment!
For what it’s worth, in C6.3 we had an issue with the TPS driver where it would sometimes not insert the file extension. Ended up writing code to explicitly append the extension. I don’t recall what circumstances would cause the issue, but explicit code fixed it.
1 Like
I guess I should add that I am trying to open the file - the program cannot find it, so it is creating it. It is looking for ‘PROVIDER’ and not seeing the ‘PROVIDER.dat’ sitting in the directory. I hope that makes sense.
That could very well be new behavior. I guess the only way to know is to test it and go accordingly. You could report it in a PTSS, but since that could take a while to get resolved it would probably be best to modify your code to deal with the issue in a more timely manner.
At least you know what the problem is and that it’s something solvable.
1 Like