Wednesday, August 24, 2011

Pad a string with zeros on the left/right in C# until completing n digits


Very simple way to pad with zeros until completing n digits
           
strMyString.PadLeft(n,'0');

Sample
string strMyString = "1234";
strMyString = strMyString.PadLeft(7,'0');


...will display "0001234"

Other notes: there is a .PadRight() function too.

Kill an Excel process in C#


foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcessesByName("EXCEL"))
        {
            if (process.MainModule.ModuleName.ToUpper().Equals("EXCEL.EXE"))
            {
                process.Kill();
                break;
            }
        }

Friday, August 19, 2011

Union of two dataTables and eliminate duplicates by using a customized IEqualityComparer


 public class StudentDataRowComparer : IEqualityComparer
    {

        #region IEqualityComparer Members

        public bool Equals(DataRow x, DataRow y)
        {
            return (x.Field("STUDENTID") == y.Field("STUDENTID"));
        }

        public int GetHashCode(DataRow obj)
        {
            return obj.ToString().GetHashCode();
        }

        #endregion
    }
 

How to call it
...
        //---Make an Union of both tables
        IEnumerable bothTables = dt1.AsEnumerable().Union(dt2.AsEnumerable());
                                DataTable dtUnion = bothTables.CopyToDataTable();

        //---Remove Duplicates
        var distinctStudents = dtUnion.AsEnumerable().Distinct( new StudentDataRowComparer());
                                DataTable dtFinal = distinctStudents.CopyToDataTable();

Friday, June 10, 2011

Add video to your page using HTML5

<!DOCTYPE HTML>
<html>
<body>
<video width="320" height="240" controls="controls" poster="../images/PosterImage.png">
<source src="MyVideo.mp4" type="video/mp4" />
Your browser does not support the video tag.
</video>
</body>
</html>

Tuesday, April 19, 2011

Sort a Listbox using IComparer in C#

What are we cooking today?
Sort a Listbox using IComparer in C# without loosing the value. 

RECIPE

The call
 SortList(MyListbox);

The Procedure

public void SortList(ListBox list)
{
        try
        {
            //---FROM LISTBOX TO LIST<>
            List ListItems = new List();
            foreach (ListItem lst in list.Items)
            {
                ListItems.Add(lst);
            }

            //---SORT LIST<>
            ListItemComparer listC = new ListItemComparer();
            ListItems.Sort(listC.Compare);

            //---CLEAR LISTBOX
            list.Items.Clear();

            //---ADD FROM ordered LIST<> to LISTBOX
            foreach (ListItem li in ListItems)
            {
                list.Items.Add(li);
            }
        }

        catch (Exception ex)
        {
            lblMsg.Text = ex.Message;
           
        }//--end catch
    }

The Icomparer: I am using this because a listitem has text and value, and we just want to order by the text, which could be a person's name or a product( the criteria could be also the value like price, personId, year...)


public class ListItemComparer : IComparer
{
    public int Compare(ListItem a, ListItem b)
    {
        int result = string.Compare(a.Text, b.Text);
        return result;
    }
}

Monday, February 28, 2011

Some helpful REGEX (regular expressions for postal code, email, phone, SIN)

What are we cooking today?
Some REGEX (Regular Expresions) for:
  • Canadian/US Postal Code
  • Email (x@x.x)
  • Phone number (xxx)(xxx-xx-xx)
  • Canadian SIN (xxx-xxx-xxx)
Recipe

Valid Canada Postal Code
(^[ABCEGHJ-NPRSTVXY]{1}[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[ ]?[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[0-9]{1}$)

Valid US and Canada
(\d{5}(-\d{4})?)|(^[ABCEGHJ-NPRSTVXY]{1}[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[ ]?[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[0-9]{1}$) )

Valid Email
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Valid US Phone
((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}

Canadian SIN
\d{3}-\d{3}-\d{3}

Thursday, February 24, 2011