AdBrite

Your Ad Here

Friday, December 17, 2010

C# Split String

=== Example program for splitting on spaces (C#) ===

using System;

class Program
{
    static void Main()
    {
        string s = "there is a cat";
        //
        // Split string on spaces.
        // ... This will separate all the words.
        //
        string[] words = s.Split(' ');
        foreach (string word in words)
        {
            Console.WriteLine(word);
        }
    }
}

=== Output of the program ===

there
is
a
cat

Wednesday, December 15, 2010

The Click Event for Buttons

The Click Event for Buttons

The click event gets activated when a button is clicked on. Examine the default code for a button:
private void button1_Click(object sender, EventArgs e)
{
}
In between the round brackets, we have this:
object sender, EventArgs e
The object keyword refers to the object which activated the event, a button in this case. This is being placed in a variable called sender. You can test this for yourself.
Start a new project. Add a button to your new form and double click it. Place the following code between the curly brackets:
MessageBox.Show( sender.ToString() );
We're just using the ToString method on the sender variable. Run your programme and click the button. You should see this:

C# Message Box for the Sender Object
The Message is displaying which object was the sender of the event, as well as displaying the Text property of the sender: the button with the Text "button1".
The other argument in between the round brackets was this:
EventArgs e
EventArgs is a class. It's short for event arguments, and tells you which events was raised. The letter "e" sets up a variable to use this class. If you change your line of code to this:
MessageBox.Show( e.ToString() );
the message box will then display the following:

Tuesday, December 14, 2010

C# Delegate

        // This "DoMath" delegate can point to ANY method that:
        //   - Returns an int
        //   - Accepts two ints as parameters
        public delegate int DoMath(int x, int y);

      
        private void button1_Click(object sender, EventArgs e)
        {
            int result;

            DoMath a = new DoMath(Add);
            result = a(3, 4);
            MessageBox.Show(Convert.ToString(result));

            UseDelegate(a);
        }


        public void UseDelegate(DoMath x)
        {
            int r = x(6, 6);
            MessageBox.Show(Convert.ToString(r));

        }

       
        //This method can be pointed to by the DoMath delegate
        public int Add(int x, int y)
        {
            return x+y;
        }

        //This method can be pointed to by the DoMath delegate
        public int Subtract(int x, int y)
        {
            return x - y;
        }

        //This method can NOT be pointed to by the DoMath delegate
        //because it has a different signature (only one argument)
        public string Test(string y)
        {
            return "Test method";
        }
    }

Monday, December 6, 2010

Loop through the content of an array

            //create the array
            int[] ml = new int[7]; //{ 5, 3, 7, 9, 2, 6, 8, };
           
            //loop through the content of the ml array
            string x = "";

            for (int i = 0; i < ml.Length; i++)
            {
                x += Convert.ToInt32(ml[i]) + " ";
            }

            MessageBox.Show(x);

Wednesday, December 1, 2010

VTC Video Training Collection

http://www.megaupload.com/?d=Z937D566 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar 3.61 MB 0 
http://www.megaupload.com/?d=SEMPCCY7 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part03.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part03.rar 95.78 MB 0
http://www.megaupload.com/?d=4Z04QKQ9 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part04.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part04.rar 95.78 MB 0
http://www.megaupload.com/?d=FH98CX06 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part6.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part6.rar 15.61 MB 0
http://www.megaupload.com/?d=CH0OPQK6 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar 95.78 MB 0
http://www.megaupload.com/?d=FSQ3WJA9 VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar 95.78 MB 0
http://www.megaupload.com/?d=WEQ2A474 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part3.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=2DGRM8ZP VTC.CompTIA.A.Plus.Certification.2003.part2.rar VTC.CompTIA.A.Plus.Certification.2003.part2.rar 67.33 MB 0
http://www.megaupload.com/?d=4QLUSZ7U VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar 95.78 MB 0
http://www.megaupload.com/?d=U53POBGY VTC.intro.to.Ubuntu.part3.rar VTC.intro.to.Ubuntu.part3.rar 37.14 MB 0
http://www.megaupload.com/?d=QN3CNWXV VTC.Javascript.2007.by.CFE.part4.rar VTC.Javascript.2007.by.CFE.part4.rar 15.96 MB 0
http://www.megaupload.com/?d=1URPYFG1 VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part1.rar VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=MBV6YCLH VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=XWE7D5TX VTC.Java.2.Certified.Programmer.part1.rar VTC.Java.2.Certified.Programmer.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=9R7FZRVE VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part04.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part04.rar 95.78 MB 0
http://www.megaupload.com/?d=OI3PA7I2 VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part3.rar VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part3.rar 63.65 MB 0
http://www.megaupload.com/?d=78057E9A VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part02.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part02.rar 95.78 MB 0
http://www.megaupload.com/?d=PY40Z81A VTC.intro.to.Visual.Basic.NET.rar VTC.intro.to.Visual.Basic.NET.rar 86.42 MB 0
http://www.megaupload.com/?d=RG0DGYGQ VTC.Java.2.Certified.Programmer.part2.rar VTC.Java.2.Certified.Programmer.part2.rar 39.95 MB 0
http://www.megaupload.com/?d=F491P6EP VTC.intro.to.PHP.part2.rar VTC.intro.to.PHP.part2.rar 70.5 MB 0
http://www.megaupload.com/?d=PE9N8RI5 VTC.Javascript.2007.by.CFE.part1.rar VTC.Javascript.2007.by.CFE.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=RF59VLWM VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=4E44PXLF VTC.Javascript.2007.by.CFE.part2.rar VTC.Javascript.2007.by.CFE.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=0AKNERBH VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=7V8N6XIS VTC.Javascript.2007.by.CFE.part3.rar VTC.Javascript.2007.by.CFE.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=0U6W6LH9 VTC.Maya.Fundamentals.part2.rar VTC.Maya.Fundamentals.part2.rar 35.17 MB 0
http://www.megaupload.com/?d=2C3PICJ8 VTC.CompTIA.A.Plus.Certification.2003.part1.rar VTC.CompTIA.A.Plus.Certification.2003.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=2J2GGTJI VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part2.rar VTC.CompTIA.Network.Plus.Certification.2005.Exam.Objectives.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=12H0UTH0 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part05.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part05.rar 95.78 MB 0
http://www.megaupload.com/?d=AJN3TRO0 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part2.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=O87X6WOG VTC.intro.to.TCP.IP.rar VTC.intro.to.TCP.IP.rar 27.49 MB 0
http://www.megaupload.com/?d=5KWH7KFB VTC.Maya.Fundamentals.part1.rar VTC.Maya.Fundamentals.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=9RADRAV0 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part07.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part07.rar 95.78 MB 0
http://www.megaupload.com/?d=ATFDIX9F VTC.intro.to.Windows.Vista.part2.rar VTC.intro.to.Windows.Vista.part2.rar 69.69 MB 0
http://www.megaupload.com/?d=9D8X58D6 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part01.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part01.rar 95.78 MB 0
http://www.megaupload.com/?d=PMC7R283 VTC.intro.to.Windows.Vista.part1.rar VTC.intro.to.Windows.Vista.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=ODJD5OZM VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part08.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part08.rar 95.78 MB 0
http://www.megaupload.com/?d=SL6497A5 VTC.intro.to.Ubuntu.part1.rar VTC.intro.to.Ubuntu.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=YOMPLINN VTC.intro.to.Ubuntu.part2.rar VTC.intro.to.Ubuntu.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=DHGVDMI2 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part14.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part14.rar 95.78 MB 0
http://www.megaupload.com/?d=8AAEWI1H VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part06.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part06.rar 95.78 MB 0
http://www.megaupload.com/?d=WM5I0EEY VTC.Photoshop.Artistry.part7.rar VTC.Photoshop.Artistry.part7.rar 13.72 MB 0
http://www.megaupload.com/?d=HUMN89Z1 VTC.Photoshop.Artistry.part2.rar VTC.Photoshop.Artistry.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=FCP4ON72 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part11.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part11.rar 95.78 MB 0
http://www.megaupload.com/?d=RHCCRSWF VTC.PHP.Project.Solutions.part2.rar VTC.PHP.Project.Solutions.part2.rar 11.5 MB 0
http://www.megaupload.com/?d=D5CF217S VTC.Photoshop.Artistry.part4.rar VTC.Photoshop.Artistry.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=DSN0YPRM VTC.Photoshop.Artistry.part6.rar VTC.Photoshop.Artistry.part6.rar 95.78 MB 0
http://www.megaupload.com/?d=7XYRLFHI VTC.intro.to.PHP.part1.rar VTC.intro.to.PHP.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=S3M501L2 VTC.Photoshop.Image.Restoration.part2.rar VTC.Photoshop.Image.Restoration.part2.rar 39.98 MB 0
http://www.megaupload.com/?d=DZSU0C48 VTC.Photoshop.Artistry.part1.rar VTC.Photoshop.Artistry.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=TJ4W1CU3 VTC.Photoshop.Artistry.part3.rar VTC.Photoshop.Artistry.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=F1EH737X VTC.QuickStart.Adobe.Flash.CS3.rar VTC.QuickStart.Adobe.Flash.CS3.rar 56.02 MB 0
http://www.megaupload.com/?d=PE8Q04XG VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part13.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part13.rar 95.78 MB 0
http://www.megaupload.com/?d=44IZD0WI VTC.Photoshop.Artistry.part5.rar VTC.Photoshop.Artistry.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=SL89N6CN VTC.Photoshop.Image.Restoration.part1.rar VTC.Photoshop.Image.Restoration.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=1ZODUS8J VTC.Intro.to.M_.NET.Framework.rar VTC.Intro.to.M_.NET.Framework.rar 74.85 MB 0
http://www.megaupload.com/?d=E86IDC5F VTC.QuickStart.Adobe.Dreamweaver.CS3.rar VTC.QuickStart.Adobe.Dreamweaver.CS3.rar 89.54 MB 0
http://www.megaupload.com/?d=1HT6KWYC VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part10.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part10.rar 95.78 MB 0
http://www.megaupload.com/?d=5JJPX5LL VTC.SQL.Server.2005.Admin.part1.rar VTC.SQL.Server.2005.Admin.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=2G97Q23V VTC_PhotoshopCS3_CFE_ViH.part5.rar VTC_PhotoshopCS3_CFE_ViH.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=SRH862IG VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part06.rar 3.61 MB 0
http://www.megaupload.com/?d=S6AHWOL5 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part09.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part09.rar 95.78 MB 0
http://www.megaupload.com/?d=NET44QWO VTC.QuickStart.Adobe.Photoshop.CS3.rar VTC.QuickStart.Adobe.Photoshop.CS3.rar 50.74 MB 0
http://www.megaupload.com/?d=Q1D10B39 VTC.Real.World.PHP.Programming.Basics.part2.rar VTC.Real.World.PHP.Programming.Basics.part2.rar 95.78 MB 0
http://www.megaupload.com/?d=Z2PFKXQD VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part01.rar 95.78 MB 0
http://www.megaupload.com/?d=D0C30TJL VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part02.rar 95.78 MB 0
http://www.megaupload.com/?d=D9NLDHVF VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar VTC.ACT.By.Sage.2006.Bill.Ferguson.LiBiSO.part05.rar 95.78 MB 0
http://www.megaupload.com/?d=JBKI43GB VTC.QuickStart.Adobe.Illustrator.CS3.rar VTC.QuickStart.Adobe.Illustrator.CS3.rar 49.6 MB 0
http://www.megaupload.com/?d=KX0HUAD1 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part03.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part03.rar 95.78 MB 0
http://www.megaupload.com/?d=H8XP77RD VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part15.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part15.rar 88.92 MB 0
http://www.megaupload.com/?d=8AGZG0Q3 VTC.Real.World.PHP.Programming.Basics.part3.rar VTC.Real.World.PHP.Programming.Basics.part3.rar 95.78 MB 0
http://www.megaupload.com/?d=VFYJ5X69 VTC.PHP.Project.Solutions.part1.rar VTC.PHP.Project.Solutions.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=LLOKM7T6 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part5.rar 95.78 MB 0
http://www.megaupload.com/?d=O1RDUA61 VTC.VBA.for.Excel.part1.rar VTC.VBA.for.Excel.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=SJHWB0LU VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part1.rar 95.78 MB 0
http://www.megaupload.com/?d=0T2U2WQ9 VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar VTC.Adobe.After.Effect7.Rock.Solid.Foundation.Team.AG.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=X7YNL98K VTC_PhotoshopCS3_CFE_ViH.part4.rar VTC_PhotoshopCS3_CFE_ViH.part4.rar 95.78 MB 0
http://www.megaupload.com/?d=5YJR1EK7 VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part12.rar VTC.MCSE.2003.Complete.Set.70_270.290.291.293.294.297.298.part12.rar 95.78 MB 0

Sunday, November 28, 2010

How to embed and access resources by using Visual C#

Step-by-Step Demonstration

To add embedded resources to your project, you must first add the files as part of your project. After you have added the files to your project, you can access and display the resources through the System.Reflection namespace.

Add Embedded Resources

To add a text file and an image file to your project as embedded resources, follow these steps:
  1. Create a new Windows Application project for this demonstration. This form is used to display the resources that are accessed from the executing assembly during run time.
  2. Right-click your project name, click Add, and then click Add New Item.
  3. In the New Item dialog box, select Text File from the menu, and name the file MyTextFile.txt. When the file opens in the integrated development environment (IDE), add some text, and then close the file.
  4. Repeat steps 1 and 2 to add a bitmap image to your project, but instead of selecting Text File as the new item type, select Bitmap File, and then change the file name to MyImage.bmp. When the new image is opened in the IDE, draw something on the image, and then close the file.
  5. Right-click either the text file or the bitmap, and then select Properties.
  6. In the Properties dialog box, locate the Build Action property. By default, this property is set to Content. Click the property and change the Build Action property to Embedded Resource.
  7. Repeat steps 4 and 5 for the other file.
The next time you build the project, the compiler adds these files to your assembly. The compiler adds the root namespace of the project to the name of the resource when it is included in the project. For example, if the root namespace of your project is MyNamespace, the resources are named MyNamespace.MyTextFile.txt and MyNamespace.MyImage.bmp.
NOTE: The resource file names are case-sensitive. When you access the resources, you must use the exact spelling and case of the file name. If you do not use the exact spelling and case of the file name, the method call to access the ManifestResourceStream returns Nothing, and the system does not raise an exception.
NOTE: If you want to verify the resource names, you can use the Microsoft Intermediate Language Disassembler (ILDASM) to view the Manifest data, which lists the included resources.

Access Resources

To access the resources that you have embedded in the Manifest of your assembly, import the System.IO and the System.Reflection namespaces, as follows:
   using System.IO;
using System.Reflection;
The System.IO namespace provides the definition of a stream and the System.Reflection namespace defines the Assembly class that provides methods to access the resources that are embedded in your assembly.

When you declare the following in the general declaration area, the resources from the assembly are read when the form is loaded:
   Assembly _assembly;
Stream _imageStream;
StreamReader _textStreamReader;
NOTE: To access the Load event for the form in the Code Editor, double-click the form in the Design Editor.

To read the resource from the assembly that is executing the current code, you must obtain an instance of that assembly. To do this, use the
GetExecutingAssembly method of the assembly, as follows:
   _assembly = Assembly.GetExecutingAssembly();
Reading the information from the resource to a stream is performed with a method call to GetManifestResourceStream. The parameter that is passed to this method is the name of the resource that is to be accessed. The two resources are then read to their corresponding streams as the Load event of the form is executed.
   _imageStream = _assembly.GetManifestResourceStream("MyNameSpace.MyImage.bmp");
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNameSpace.MyTextFile.txt"));
The code in the Load event for the form resembles the following:
   try
{
_assembly = Assembly.GetExecutingAssembly();
_imageStream = _assembly.GetManifestResourceStream("MyNamespace.MyImage.bmp");
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"));
}
catch
{
MessageBox.Show("Error accessing resources!");
}
The Try-Catch statement, known as structured error handling in .NET, is used to catch any errors that may have occurred while the instance of the Assembly class accesses the resources.

Display Resources

This example uses two buttons to display the embedded resources. When you click the first button, a bitmap image that is based on the resource that is read from the assembly is created and displayed in the PictureBox

To display the embedded resources, follow these steps:
control of the form. The second button reads from a text resource and displays the text in a text box.
  1. Add a PictureBox control to the form.
  2. Add a new Button control to the form, and then change its Text property to Show Image.
  3. Double-click the button to open its Click event in the code viewer, and then paste the following code in this event:
       try
    {
    pictureBox1.Image = new Bitmap(_imageStream); }
    catch
    {
    MessageBox.Show("Error creating image!");
    }
    This code generates a new instance of a bitmap that is based on the resource stream that was read in the Load event of the form.
  4. Add a TextBox control to the form.
  5. Add another Button control to the form, and then change its Text property to Get Text.
  6. Double-click the button in the Design Editor to open the Click_Event for the button, and then paste the following code in the event:
       try
    {
    if(_textStreamReader.Peek() != -1)
    {
    textBox1.Text = _textStreamReader.ReadLine();
    }
    }
    catch
    {
    MessageBox.Show("Error writing text!");
    }
    This code determines whether characters to be read still exist in the stream. If characters are found, a line is read to the text box.
  7. Press F5 to run the application.

Sunday, November 14, 2010

Screen Capture and Save as an Image

/* Author: Perry Lee
* Submission: Capture Screen (Add Screenshot Capability to Programs)
* Date of Submission: 12/29/03
*/

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
// If you have any questions regarding functions (methods) imported from
// GDI32.dll and User32.dll refer to 'msdn.microsoft.com'
class GDI32
{
[DllImport("GDI32.dll")]
public static extern bool BitBlt(int hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,int hdcSrc,int nXSrc,int nYSrc,int dwRop);
[DllImport("GDI32.dll")]
public static extern int CreateCompatibleBitmap(int hdc,int nWidth, int nHeight);[DllImport("GDI32.dll")]
public static extern int CreateCompatibleDC(int hdc);
[DllImport("GDI32.dll")]
public static extern bool DeleteDC(int hdc);
[DllImport("GDI32.dll")]
public static extern bool DeleteObject(int hObject);
[DllImport("GDI32.dll")]
public static extern int GetDeviceCaps(int hdc,int nIndex);
[DllImport("GDI32.dll")]
public static extern int SelectObject(int hdc,int hgdiobj);
class User32
{
[DllImport("User32.dll")]
public static extern int GetDesktopWindow();
[DllImport("User32.dll")]
public static extern int GetWindowDC(int hWnd);
[DllImport("User32.dll")]
public static extern int ReleaseDC(int hWnd,int hDC);
}
class Example
{
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10)); GDI32.SelectObject(hdcDest,hBitmap);
GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat);
Cleanup(hBitmap,hdcSrc,hdcDest);
}
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
{
User32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
GDI32.DeleteDC(hdcDest);
GDI32.DeleteObject(hBitmap);
}
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
{
Bitmap image =
new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
image.Save(fileName,imageFormat);
}
}

Explanation of methods:
public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()), // Get a handle to the desktop windowhdcDest = GDI32.CreateCompatibleDC(hdcSrc), // Create a memory device contexthBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, // Create a bitmap and place it in the memory DC GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));
// GDI32.GetDeviceCaps(hdcSrc,8) returns the width of the desktop window// GDI32.GetDeviceCaps(hdcSrc,10) returns the height of the desktop windowGDI32.SelectObject(hdcDest,hBitmap); // Required to create a color bitmapGDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8), // Copy the on-screen image into the memory DCGDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
SaveImageAs(hBitmap,fileName,imageFormat); // Save the screen-capture to the specified file using the designated image formatCleanup(hBitmap,hdcSrc,hdcDest); // Free system resources}
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
{
// Release the device context resources back to the systemUser32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
GDI32.DeleteDC(hdcDest);
GDI32.DeleteObject(hBitmap);
}
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
{
// Create a bitmap from the Windows handleBitmap image = new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
image.Save(fileName,imageFormat);
}

Tuesday, November 9, 2010

Serialize - BinaryFormatter


private Stream SerializeObject(object myStringToSend)
        {
            // Initialize a storage medium to hold the serialized object
            Stream stream = new MemoryStream();

            // Serialize an object into the storage medium referenced by 'stream' object.
            BinaryFormatter formatter = new BinaryFormatter();

            // Serialize multiple objects into the stream

            formatter.Serialize(stream, myStringToSend);

            // Return a stream with multiple objects
            return stream;
        }
       

Monday, November 8, 2010

What are the advantages and disadvantags of serialization?

The advantages of serialization are:

  • It is easy to use and can be customized.

  • The serialized stream can be encrypted, authenticated and compressed, supporting the needs of secure Java computing.

  • Serialized classes can support coherent versioning and are flexible enough to allow gradual evolution of your application's object schema.

  • Serialization can also be used as a mechanism for exchanging objects between Java and C++ libraries, using third party vendor libraries (like RogueWave's Tools.h++ ) within C++.

  • There are simply too many critical technologies that rely upon serialization, including RMI, JavaBeans and EJB.

However, serialization has some disadvantages too:

  • It should ideally not be used with large-sized objects, as it offers significant overhead. Large objects also significantly increase the memory requirements of your application since the object input/output streams cache live references to all objects written to or read from the stream until the stream is closed or reset. Consequently, the garbage collection of these objects can be inordinately delayed.

  • The Serializable interface does not offer fine-grained control over object access - although you can somewhat circumvent this issue by implementing the complex Externalizable interface, instead.

  • Since serialization does not offer any transaction control mechanisms per se, it is not suitable for use within applications needing concurrent access without making use of additional APIs. 

  •  

Serialization

Serialization is the process of converting an object into a stream of bytes in order to persist it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed. The reverse process is called deserialization.


How Serialization Works

This illustration shows the overall process of serialization.
Serialization Graphic
The object is serialized to a stream, which carries not just the data, but information about the object's type, such as its version, culture, and assembly name. From that stream, it can be stored in a database, a file, or memory.

Uses for Serialization

Serialization allows the developer to save the state of an object and recreate it as needed, providing storage of objects as well as data exchange. Through serialization, a developer can perform actions like sending the object to a remote application by means of a Web Service, passing an object from one domain to another, passing an object through a firewall as an XML string, or maintaining security or user-specific information across applications.

Making an Object Serializable

To serialize an object, you need the object to be serialized, a stream to contain the serialized object, and a Formatter. System.Runtime.Serialization contains the classes necessary for serializing and deserializing objects.
Apply the SerializableAttribute attribute to a type to indicate that instances of this type can be serialized. A SerializationException exception is thrown if you attempt to serialize but the type does not have the SerializableAttribute attribute.
If you do not want a field within your class to be serializable, apply the NonSerializedAttribute attribute. If a field of a serializable type contains a pointer, a handle, or some other data structure that is specific to a particular environment, and the field cannot be meaningfully reconstituted in a different environment, then you may want to make it nonserializable.
If a serialized class contains references to objects of other classes that are marked SerializableAttribute, those objects will also be serialized.
Binary and XML Serialization

Either binary or XML serialization can be used. In binary serialization, all members, even those that are read-only, are serialized, and performance is enhanced. XML serialization provides more readable code, as well as greater flexibility of object sharing and usage for interoperability purposes.

Binary Serialization

Binary serialization uses binary encoding to produce compact serialization for uses such as storage or socket-based network streams.

XML Serialization

XML serialization serializes the public fields and properties of an object, or the parameters and return values of methods, into an XML stream that conforms to a specific XML Schema definition language (XSD) document. XML serialization results in strongly typed classes with public properties and fields that are converted to XML. System.Xml.Serialization contains the classes necessary for serializing and deserializing XML.
You can apply attributes to classes and class members in order to control the way the XmlSerializer serializes or deserializes an instance of the class.

SOAP Serialization

XML serialization can also be used to serialize objects into XML streams that conform to the SOAP specification. SOAP is a protocol based on XML, designed specifically to transport procedure calls using XML. As with regular XML serialization, attributes can be used to control the literal-style SOAP messages generated by an XML Web service.

Tuesday, November 2, 2010

[C#] TcpListenser

[C#] 
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
 
class MyTcpListener
{
  public static void Main()
  {    
    try
    {
      // Set the TcpListener on port 13000.
      Int32 port = 13000;
      IPAddress localAddr = IPAddress.Parse("127.0.0.1");
      
      // TcpListener server = new TcpListener(port);
      TcpListener server = new TcpListener(localAddr, port);
 
      // Start listening for client requests.
      server.Start();
         
      // Buffer for reading data
      Byte[] bytes = new Byte[256];
      String data = null;
 
      // Enter the listening loop.
      while(true) 
      {
        Console.Write("Waiting for a connection... ");
        
        // Perform a blocking call to accept requests.
        // You could also user server.AcceptSocket() here.
        TcpClient client = server.AcceptTcpClient();            
        Console.WriteLine("Connected!");
 
        data = null;
 
        // Get a stream object for reading and writing
        NetworkStream stream = client.GetStream();
 
        int i;
 
        // Loop to receive all the data sent by the client.
        while((i = stream.Read(bytes, 0, bytes.Length))!=0) 
        {   
          // Translate data bytes to a ASCII string.
          data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
          Console.WriteLine(String.Format("Received: {0}", data));
       
          // Process the data sent by the client.
          data = data.ToUpper();
 
          byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
 
          // Send back a response.
          stream.Write(msg, 0, msg.Length);
          Console.WriteLine(String.Format("Sent: {0}", data));            
        }
         
        // Shutdown and end connection
        client.Close();
      }
    }
    catch(SocketException e)
    {
      Console.WriteLine("SocketException: {0}", e);
    }
      
    Console.WriteLine("\nHit enter to continue...");
    Console.Read();
  }   
}

Thursday, October 28, 2010

[C#] Port Scanner

/* Port Scanner
*  http://ProjectGhostt.com
*  FreckleS
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;

namespace Port_Scanner
{
    class Program
    {
        static void Main(string[] args)
        {
            // Scan specific port
            int port = 135;
            if (TestPort(port) == true)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Port {0} is OPEN!", port);
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Port {0} is CLOSED!", port);
            }

            // Scan a range of ports
            for (int i = 1; i < 1000; i++) // for (int i = startPort; i < stopPort; increment port)
            {
                if (TestPort(i) == true)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Port {0} is OPEN!", i);
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Port {0} is CLOSED!", i);
                }
            }
        }

        static bool TestPort(int port)
        {
            try
            {
                TcpClient tcp = new TcpClient("127.0.0.1", port);
                if (tcp.Connected == true)
                {
                    return true;
                }
            }
            catch
            {
                return false;
            }
            return false;
        }
    }
}

Wednesday, October 27, 2010

Stream.Read Method

When overridden in a derived class, reads a sequence of bytes from the 
current stream and advances the position within the stream by the number of bytes read.
 
public abstract int Read(
byte[] buffer,
int offset,
int count
)

Stream.Write Method

When overridden in a derived class, writes a sequence of bytes to the 
current stream and advances the current position within this stream by
the number of bytes written. 

const int size = 4096;
byte[] bytes = new byte[4096];
int numBytes;
while((numBytes = input.Read(bytes, 0, size)) > 0)
output.Write(bytes, 0, numBytes);

Saturday, October 23, 2010

A Beginner's Simple Encryption Tutorial / Example

// Adam Boulfoul - "A Beginner's Simple Encryption Tutorial / Example" chebby_shabby@hotmail.com
/////////////////////////////////////////////////////////////////////////////////////////////////
// This is not an "uncrackable" type of encryption but once you can understand the basics of
// this type of file encryption you CAN make better ones than me. This is just a quick example
// of basic encryption. Highly commented to help beginners.
/////////////////////////////////////////////////////////////////////////////////////////////////
// Before we start:
// What this basic program does is simply getting a byte from a file then adding 25 to it
// (ofcouse you can change it to whatever you like).
/////////////////////////////////////////////////////////////////////////////////////////////////
// If you have any questions, my e-mail is above
/////////////////////////////////////////////////////////////////////////////////////////////////

#include // We need this for input and output to the user
#include // This is the header to read or write files
#include // We only need this to delete a file using remove()
// As mentioned abode, we simply add 25 to a byte, change this to whatever you like.
#define ENCRYPTION_FORMULA (int) Byte + 25
// The decryption formula is the opposite to encryption formula, every "+" is a "-"
#define DECRYPTION_FORMULA (int) Byte - 25

///////////////////////////////////////////////////////////////////////////////////////////
// TIP: Everytime you see ENCRYPTION_FORMULA ot DECRYPTION_FORMULA mensioned, highlight it
// then press on definition and it will bring you up here! (Only on Visual C++)
///////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////
// Our main function, put this in your program, FILENAME is the file to encrypt
// and NEW_FILENAME is the new location of the encrypted file
/////////////////////////////////////////////////////////////////////////////////

int Encrypt (char * FILENAME, char * NEW_FILENAME)
{
ifstream inFile; // This is the file that we're going to encrypt and read
ofstream outFile; // Once we encrypt the file, this is it's new location

char Byte; // This is the FILENAME's byte, we'll add 25 to this later

///////////////////////////////////////////////////////////////
// Before we continue:
// ios:: in - Used for reading a file
// ios::out - Used for writing a file
// ios::binary - Used for reading or writing binary files
///////////////////////////////////////////////////////////////

inFile.open(FILENAME, ios::in | ios::binary); // We read this file in binary mode
outFile.open(NEW_FILENAME, ios::out | ios::binary); // And we write the file in binary mode

// eof() stands for End Of File, so while we are still reading the file, continue
while(!inFile.eof())
{
// Remember we need to change a byte so we add 25 to it
char NewByte;

//////////////////////////////////////////////////
// NOTE: Only use the .put() and .get() in loops
// because it only reads 1 Byte at a time!
//////////////////////////////////////////////////

// Out old byte is recieved from the file
Byte = inFile.get();

// If the file that we are reading has an error, turn 0
if (inFile.fail())
return 0;
//Remember our Encryption Formula above?
//Our new byte is recieved from it, see above
NewByte = ENCRYPTION_FORMULA;
// This simple puts the new byte, into the new file!
outFile.put(NewByte);
}

// We have to be neat so we close both the file that we're reading
// and the file that we're writing
inFile.close(); // (File to read)
outFile.close(); // (File to write)

return 1; // Success!
}

///////////////////////////////////////////////////////////////////////////////
// What's the point of encrypting a file if you can't decrypt it?
// If you're wondering why this is not commented it's because I've already
// explained everything above, notice that everything is the same except for
// two lines!
///////////////////////////////////////////////////////////////////////////////

int Decrypt (char * FILENAME, char * NEW_FILENAME)
{
ifstream inFile;
ofstream outFile;

char Byte;

inFile.open(FILENAME, ios::in | ios::binary);
outFile.open(NEW_FILENAME, ios::out | ios::binary);

while(!inFile.eof())
{
char NewByte;

Byte = inFile.get();

if (inFile.fail())
return 0;
/////////////////////////////////////////////////////
NewByte = DECRYPTION_FORMULA; // New Line! We just change the ENCRYPTION_FORMULA
// to DECRYPTION_FORMULA, see above
/////////////////////////////////////////////////////
outFile.put(NewByte);
}

inFile.close();
outFile.close();

return 1;
}

///////////////////////////////////////////////////////////////////////
// WARNING: If you choose to decrypt a file that it already decrypted
// then the file would be encrypted!
///////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////
// To use the functions in your program (doesn't have to be a DOS program),
// copy the 2 functions above, this is just an example, in the example I'm
// encrypting
///////////////////////////////////////////////////////////////////////////////////

int main()
{
///////////////////////////////////////////////////////////////////
// The functions can be used in not only DOS programs
// Since this is an example, I'll show you how to use them
///////////////////////////////////////////////////////////////////

char EncFile[200]; // This is the string for the file to be encrypted
char NewEncFile[200]; // This is the new location of the encrypted file

char DecFile[200]; // This is the string for the file to be decrypted
char NewDecFile[200]; // This is the new location of the decrypted file

int Choice; //The user's choice variable (1 = Encrypt 2 = Decrypt)

// In case you didn't know, all these "cout" just display a message
// Cin tells the user to input something
cout << "NOTE: You must encrypt the file with the same file extension!"<
cout << "Enter 1 to Encrypt / 2 to Decrypt"<
cin >> Choice; // In this case, our input is the user's choice

switch(Choice)
{
case 1: // Did the user choose to encrypt a file?
cout << "Enter the current Filename: ";
cin >> EncFile; // The user's input for the current file to be encrypted

cout << "Enter the new Filename: ";
cin >> NewEncFile; //The user's input for the new location of the encrypted file

Encrypt(EncFile, NewEncFile); /*********** ENCRYPT FUNCTION ************/
break;

case 2: // Or did the user choose to decrypt a file?
cout << "Enter the current Filename: ";
cin >> DecFile; //Already explained but with the decrypted file this time!

cout << "Enter the new Filename: ";
cin >> NewDecFile;

Decrypt(DecFile, NewDecFile); /*********** DECRYPT FUNCTION ************/
break;
}


return 0; //Exit!
}

//////////////////////////////////////////////////////////////////////////////////
// That's it! Looks so long yet it's so simple and easy to understand!
//////////////////////////////////////////////////////////////////////////////////
// So what we basicly done is open a file and add 25 to every byte of the file!
// Very simple!
//////////////////////////////////////////////////////////////////////////////////
// Any questions to chebby_shabby@hotmail.com
// If this tutorial is successful then my next tutorial is
// "A Beginner's Simple Compression Tutorial / Example
//////////////////////////////////////////////////////////////////////////////////
// by Adam Boulfoul
//////////////////////////////////////////////////////////////////////////////////

Tuesday, October 19, 2010

How to encrypt and decrypt a file by using Visual C#

using System;
using System.IO;
using System.Security;
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using System.Text;

namespace CSEncryptDecrypt
{
class Class1
{
// Call this function to remove the key from memory after use for security
[System.Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint="RtlZeroMemory")]
public static extern bool ZeroMemory(IntPtr Destination, int Length);

// Function to Generate a 64 bits Key.
static string GenerateKey()
{
// Create an instance of Symetric Algorithm. Key and IV is generated automatically.
DESCryptoServiceProvider desCrypto =(DESCryptoServiceProvider)DESCryptoServiceProvider.Create();

// Use the Automatically generated key for Encryption.
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}

static void EncryptFile(string sInputFilename,
string sOutputFilename,
string sKey)
{
FileStream fsInput = new FileStream(sInputFilename,
FileMode.Open,
FileAccess.Read);

FileStream fsEncrypted = new FileStream(sOutputFilename,
FileMode.Create,
FileAccess.Write);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
CryptoStream cryptostream = new CryptoStream(fsEncrypted,
desencrypt,
CryptoStreamMode.Write);

byte[] bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
fsEncrypted.Close();
}

static void DecryptFile(string sInputFilename,
string sOutputFilename,
string sKey)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
//A 64 bit key and IV is required for this provider.
//Set secret key For DES algorithm.
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
//Set initialization vector.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

//Create a file stream to read the encrypted file back.
FileStream fsread = new FileStream(sInputFilename,
FileMode.Open,
FileAccess.Read);
//Create a DES decryptor from the DES instance.
ICryptoTransform desdecrypt = DES.CreateDecryptor();
//Create crypto stream set to read and do a
//DES decryption transform on incoming bytes.
CryptoStream cryptostreamDecr = new CryptoStream(fsread,
desdecrypt,
CryptoStreamMode.Read);
//Print the contents of the decrypted file.
StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
fsDecrypted.Flush();
fsDecrypted.Close();
}

static void Main()
{
// Must be 64 bits, 8 bytes.
// Distribute this key to the user who will decrypt this file.
string sSecretKey;

// Get the Key for the file to Encrypt.
sSecretKey = GenerateKey();

// For additional security Pin the key.
GCHandle gch = GCHandle.Alloc( sSecretKey,GCHandleType.Pinned );

// Encrypt the file.
EncryptFile(@"C:\MyData.txt",
@"C:\Encrypted.txt",
sSecretKey);

// Decrypt the file.
DecryptFile(@"C:\Encrypted.txt",
@"C:\Decrypted.txt",
sSecretKey);

// Remove the Key from memory.
ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2);
gch.Free();
}
}
}

BidVertiser

pocket cents

PocketCents Local Online Advertising