xsharp.eu • How to mask { and } in a string
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