• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2540
  • Last Modified:

Urgent Help on VB6 chr$() to C#

Dear all,

I'm using VB6 need to convert to C# for printing. In VB6 I will send some printer command into the printer as below:-

Printer.Print "TESTING LINE 1"
Printer.Print "TESTING LINE 2"
Printer.Print Chr$(&H1C); "(L"; Chr$(66); Chr$(49);
Printer.Print Chr$(&H1D); "V"; Chr$(49);
Printer.Print Chr$(&H1C); "(L"; Chr$(67); Chr$(50);

In C# I'm writing a text file and open LPT1 to print some lines, the problem is how to convert those VB6 codes into C# ?

I've try using some sample code as below :-

writer.WriteLine ("TESTING LINE 1" + ((char) 13));
writer.WriteLine ("TESTING LINE 2" + ((char) 13));
writer.WriteLine( ((char)&H1C) + "(L" + ((char)66) +  ((char)49));
writer.WriteLine( ((char)&H1D) + "V" + ((char)49));
writer.WriteLine( ((char)&H1C) + "(L" + ((char)66) +  ((char)49));


But there are errors on '&H1C', '&H1D' on the above codes.

If I use VB6 to print it will print the "(L" character out when I'm using VB6 to print. How to resolve this as well ?

Please provide solutions and examples.


Thanks in advance


Cheers,
yymae
0
yymae
Asked:
yymae
1 Solution
 
TasneemCommented:
Casting does not work in all cases as C# uses Unicode! You need to be aware of this when using strings that were created in VB. Fortunately, MS included Microsoft.VisualBasic.Strings, which has the Chr() and Asc() function calls.
Something like
If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then
            e.Handled = False
            MsgBox("You pressed Enter.")
            Exit Sub
        End If

OR
Chr System.Char.GetNumericValue(char)
Asc System.Char.Parse(String)
 
 
0
 
smeggheadCommented:
Hello,

I wouldn't use the VisualBasic namespace, when C# can deal with this in it's own way.

Use

      Console.WriteLine("Hello\x41There");

This will produce the results

HelloAThere

Becuase hex 41='A'

\x is the escape sequence for hex

Smg.
0
 
AvonWyssCommented:
&H1C is a hex constant in basic. 0x1C would be the same hex constant in C#. Just replace &H with 0x.
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
Bob LearnedCommented:
writer.WriteLine("TESTING LINE 1");
writer.WriteLine("TESTING LINE 2");
writer.WriteLine(Chr(28) + "(L" + Chr(66) + Chr(49));
writer.WriteLine(Chr(29) + "V" + Chr(49));
writer.WriteLine(Chr(28) + "(L" + Chr(67) + Chr(50));

Bob
0
 
smeggheadCommented:
Or.. (without using the VB compatibility)

writer.WriteLine ("TESTING LINE 1\x0d");
writer.WriteLine ("TESTING LINE 2\x0d");
writer.WriteLine("\x1c(L\x42\x31");
writer.WriteLine("\x1dV\x31");
writer.WriteLine("\x1c(L\x42\x31");
0
 
smeggheadCommented:
Thanks for accepting my answer, but why just a grade 'C' ?? was the answer missing something ?

Smg.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now