Solved

Formatting or Padding Bytes

Posted on 2012-04-11
5
243 Views
Last Modified: 2012-04-11
Hi, I'm using MS Visual Studio C# 2010. I am trying to read a file into a textbox as a Binary String. My code is at the end of this question.

My question is... when I get to bytes that are single digits like "0" or "A", I only get one digit printing out, rather than two. Such as below:

6C 79 2E D A 0 0 0 0 0 0 0 0 0

How should I format or pad my output, so it prints out as show below?

6C 79 2E 0D 0A 00 00 00 00 00 00 00 00 00


Code:
private void btnRead_Click(object sender, EventArgs e)
        {
            string path = @"F:\Mary had a little Lamb.txt";

            if (File.Exists(path))
            {
                Console.WriteLine("The file exists");
                StreamReader sr = new StreamReader(File.OpenRead (path));
                byte[] buffer = new byte[1000];
                sr.BaseStream.Read(buffer, 0, 1000);
                foreach ( byte myByte in buffer)
                {
                    tbxText.Text += myByte.ToString("X") + " ";
                }
             
                sr.Dispose();
            }
            else
            {
                Console.WriteLine("The file does NOT exists");
            }

Open in new window

0
Comment
Question by:Mr_Fulano
  • 2
  • 2
5 Comments
 
LVL 4

Expert Comment

by:jatkin
ID: 37831343
Hi,

Try this:

    tbxText.Text += myByte.ToString("X").PadLeft(2, '0') + " ";

It will pad using the char specified

Hope this helps,

James
0
 
LVL 4

Expert Comment

by:jatkin
ID: 37831373
Hi,

The PadLeft function actually performs the length test for you. The length specified in the call is the TOTAL length of the resulting string.

i.e.
"AA" would return "AA"
"A" would return "0A"

Regards,

James
0
 
LVL 23

Accepted Solution

by:
wdosanjos earned 500 total points
ID: 37834150
Try:

tbxText.Text += myByte.ToString("X2") + " ";
0
 

Author Comment

by:Mr_Fulano
ID: 37835626
Thank you both for your great replies. Although James was first to respond, Wdosanjos had the best approach. Thank you again for your help!

Fulano
0
 

Author Closing Comment

by:Mr_Fulano
ID: 37835629
Very good and effective approach.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now