Re: Converting a string
Mike Andrews <[email protected]> Wed, 5 Sep 2007 09:48:48 -0500
| Newsgroups | gmane.comp.windows.devel.dotnet.winforms |
|---|---|
| Message-ID | <[email protected]> |
If you don't want to use binary or store the literal "CHR(XX)" in the database, you can write yourself a simple app that will convert your string to a BASE64 encoded string. You can then store it as a test string but it will be converted to it's binary equivelent upon conversion and then can be converted to a string using the System.Encoding.ASCII encoder. On 9/5/07, Knowlton, Gerald F. <[email protected]> wrote: > > Thank you both Len and Hugh. Good solutions. > > While waiting for replies to the post, I did some experimation and > discover that if I did the following, it would solve my problem > > Remembering that ScaleCommand is equal to a Oracle string > > ScaleCommand = " chr(27) & ""P"" & chr(13) & chr(10)" > > Then declare another variable > > X = string > > We can do the following > > X = ScaleCommand.Replace("Chr(27)", chr(27)) > X = X.Replace("Chr(13)",chr(13) > > And so forth for each unprintable. > > The result will be what is needed. > > I am now going to look at patterns for a simpler solution. For purposes > of the people who will come after me, Hugh solution might just throw > them for a loop although it is better then the one I presently have > developed. > > Thank you once again Gentlemen for coming through for me. > > > Best regards, > > > Jerry > > -----Original Message----- > From: Discussion forum for developers using Windows Forms to build apps > and controls [mailto:[email protected]] On Behalf Of > Hugh Brown > Sent: Wednesday, September 05, 2007 10:18 AM > To: [email protected] > Subject: Re: [DOTNET-WINFORMS] Converting a string > > Encode the entire command string in the database as hexadecimal. Then > this: > Chr(27) P Chr(13) Chr(10) > becomes: > 1B 50 0D 0A > and everything is representable in simple ASCII. > > "Knowlton, Gerald F." <[email protected]> wrote: Good morning > everyone. > > Here is the problem that I have. I have this application which > will control weighing scales through a commport. There are many > different scales at this facility so I can't hard code into the > application the parameters of the currently attached scale. > > So in an Oracle (we use Oracle here) table, I have the commands for the > many different type of scales we have and there is no problem for us to > automatically identify the type of scale. Thus we have the ability to be > able to get from the database, the commands needed to tare, standardize, > weigh and etc functions. > > The problem is that for the most part, each command (but not all) > require some type of unprintable character(s) in the command string. > Most are the ESC key - ASCII 27. So in the database, we have the > following command "CHR(27) & ""P"" & CHR(13) & CHR(10)" for one type of > scale. This command will cause the scale to transmit the value on the > scale's display back to the application. > > So if I hard code the command into the application such as: > > Public Sub SendWeighCommand() > Dim ScaleCommand as string = chr(27) & "P" & chr(13) & chr(10) > Dim Weight as string > Weight = ReadScale(ScaleCommand) > End sub > > Public function ReadScale(Command) as Double > > 'Return scale value > > End function > > This will work us fine because the chr(27),10 and 13 get translated into > unprintable characters. They look something like a square. > > But since I am getting the command string from the Oracle database, > everything is enclosed in quotes and the chr 27, 10 , and 13 do not > convert to the unprintable characters. > > Public Sub SendWeighCommand() > Dim ScaleCommand as string = > Dim Weight as string > Weight = ReadScale(ScaleCommand) > End sub > > Public function ReadScale(Command) as Double > > 'Return scale value > > End function > > Hence the ScaleCommand would pass the following string " chr(27) & ""P"" > & chr(13) & chr(10)" instead of the "P" along with the unprintable > characters. > > I thought I could use the CallByName function so the string would > translate but it appears that this is not so. > > Are there any other solutions to this problem of getting the translation > of an Oracle string value? > > Please embarrass me with a really simple solution!!! > > Best regards, > > > Jerry Knowlton >