Page 1 of 1
How to mask { and } in a string
Posted: Fri Oct 05, 2018 4:24 pm
by wriedmann
Hello,
I'm trying to build a connection string like this:
Code: Select all
String.Format( "Driver={Microsoft access Driver (*.mdb)};Dbq={0};Uid=Admin;Pwd=;", cDatabase )
But it gives a runtime error because of the parentheses { and }.
Is there any possibility to mask them?
TIA
Wolfgang
How to mask { and } in a string
Posted: Fri Oct 05, 2018 4:37 pm
by FFF
Wolfgang,
FUNCTION Start() AS VOID
LOCAL c AS STRING
c:="Driver={Microsoft access Driver (*.mdb)};Dbq={0};Uid=Admin;Pwd=;"
Console.WriteLine(c)
RETURN
works for me.
Seems i miss the point
EDIT Obviously.
BTW, there should be a "Delete" button for own posts...
Adding an "i" wouldn't be of use?
How to mask { and } in a string
Posted: Fri Oct 05, 2018 4:44 pm
by wriedmann
Hi Karl,
if you add a String.Format() and a parameter, it fails.
The same is occurring when using the prefix "i".
Wolfgang
How to mask { and } in a string
Posted: Fri Oct 05, 2018 5:44 pm
by robert
Wolfgang, you can escape the { and } characters by adding two of them in a row, so you will have to write:
"Driver={{Microsoft access Driver (*.mdb)}};Dbq={0};Uid=Admin;Pwd=;"
Robert
How to mask { and } in a string
Posted: Fri Oct 05, 2018 6:07 pm
by wriedmann
Hi Robert,
thank you very much! This works.
Thank you again.
Wolfgang
P.S. this is used in a X# monitoring service that will go into production on Monday
How to mask { and } in a string
Posted: Fri Oct 05, 2018 7:13 pm
by Jamal
I don't know about X#, but in C# whenever you want certain characters like in a string, I used the @ sign prefix.
For example: @"programs filestest"
otherwise I have to write @"program filestest"
Jamal
How to mask { and } in a string
Posted: Fri Oct 05, 2018 7:36 pm
by wriedmann
Hi Jamal,
normally this works also in X# (but with the prefix 'e' instead of '@'), but this does no worked for the '{' character.
The answer from Robert helped, doubling the '{' and the '}' character solved the problem.
Wolfgang
How to mask { and } in a string
Posted: Fri Oct 05, 2018 10:09 pm
by Chris
Hi Jamal,
In X#, it's the opposite of c#. c# uses escaped strings by default and you need to use @ in order to make them "regular" strings. In X#, literal strings are "regular" by default, and you need to prefix them with e to make them escaped.
Chris