Live with Dot Net Just another Programming weblog

How to Write bunch of text to a file

Posted on April 22, 2009

Here is one of the way to Write bunch of text to flat file:

1
2
3
4
5
6
7
8
9
10
11
12
Public Sub WriteFile(ByVal sText As String, ByVal sFile As String, Optional ByVal bAppendMode As Boolean = True)
    Try
        Dim Stream_Writer As New IO.StreamWriter(sFile, bAppendMode)
        Stream_Writer.Write(sText & vbCrLf)
        Stream_Writer.Flush()
        Stream_Writer.Close()
    Catch ex As Exception
        'Statements to handle Errors
    Finally
 
    End Try
End Sub

How to Check whether given file exists or not

Posted on April 22, 2009

Here is the code to Check whether the given file exists or not in VB.Net:

1
2
3
Public Function IsFileExists(ByVal strFileName As String) As Boolean
    IsFileExists = System.IO.File.Exists(strFileName)
End Function

How to get System’s active printer name

Posted on April 22, 2009

Here is the code to get the System's active printer name:

1
2
3
4
    Private Function GetActivePrinter() As String
        Dim ps As New Drawing.Printing.PrinterSettings()
        Return ps.PrinterName
    End Function

Using XML Nodes and implement RegEx in VB.Net

Posted on December 31, 2008

Retrive the information from the XML File and evalute the string using the Regular expression.

XML File which we will iterate and retrive data from:

Pattern.xml:-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8" ?> 
- <MatchingCriterias>
- <CriteriaForAllPages>
  <MatchingCriteria Value="Chksum: \d(2,)" /> 
  </CriteriaForAllPages>
- <CriteriaForDeletedPages>
- <Criteria Name="DocHeaderPage">
  <MatchingCriteria Value="DOC \d+ \:?\s?Header" /> 
  </Criteria>
- <Criteria Name="SubmissionHeaderPage">
  <MatchingCriteria Value="JobNumber:" /> 
  <MatchingCriteria Value="SUBMISSION" /> 
  <MatchingCriteria Value="SUBMISSION-CONTACT" /> 
  </Criteria>
- <Criteria Name="DocumentDescriptionPage">
  <MatchingCriteria Value="JobNumber:" /> 
  <MatchingCriteria Value="Name" /> 
  <MatchingCriteria Value="Description" /> 
  <MatchingCriteria Value="DOC \d+" /> 
  </Criteria>
  </CriteriaForDeletedPages>
  </MatchingCriterias>

VB Code to retreive the informations:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Imports System.Text.RegularExpressions
Imports System.Xml
Imports System.IO
 
Private Function IsDocHeaderPage(ByRef oPage As String) As Boolean
        Dim xmlCriteriaDoc As XmlDocument, lstCriteria As XmlNodeList, nodeCriteria As XmlNode, nodeChildCriteria As XmlNode
        Dim blnCheckCriteria As Boolean
        xmlCriteriaDoc = New XmlDocument
        Try
            xmlCriteriaDoc.Load("C://Temp//Pattern.xml")
            If Not xmlCriteriaDoc Is Nothing Then
                lstCriteria = xmlCriteriaDoc.SelectNodes("//CriteriaForAllPages")
                If Not lstCriteria Is Nothing Then
                    For Each nodeCriteria In lstCriteria
                        For Each nodeChildCriteria In nodeCriteria.ChildNodes
							'using regular expression with the pattern retreived
                            blnCheckCriteria = Regex.IsMatch(oPage.ToString, nodeChildCriteria.Attributes("Value").InnerText.ToString(), RegexOptions.Singleline)
                            If blnCheckCriteria Then
                                IsDocHeaderPage = False
                                Return IsDocHeaderPage
                            End If
                        Next nodeChildCriteria
                    Next nodeCriteria
                End If
 
                lstCriteria = xmlCriteriaDoc.SelectNodes("//CriteriaForDeletedPages/Criteria")
                If Not lstCriteria Is Nothing Then
                    For Each nodeCriteria In lstCriteria
                        For Each nodeChildCriteria In nodeCriteria.ChildNodes
                            blnCheckCriteria = Regex.IsMatch(oPage.Contents.CreateSingleContent.Stream.ToString, nodeChildCriteria.Attributes("Value").InnerText.ToString(), RegexOptions.Singleline)
                            If Not blnCheckCriteria Then
                                Exit For
                            End If
                            If nodeChildCriteria Is nodeCriteria.LastChild Then
                                IsDocHeaderPage = True
                                IsAnyHeaderPageExists = True
                                Return IsDocHeaderPage
                            End If
                        Next nodeChildCriteria
                    Next nodeCriteria
                End If
            End If
 
        Catch ex As Exception
            IsDocHeaderPage = False
            MessageBox.Show(ex.Message)
        End Try
    End Function

Dynamically adding ItemTemplate to the GridView holding controls

Posted on September 16, 2008

The code helps you to add Item template (or any part of templated column) to the Gridview dynamically. We has also set/add desired controls to the Item templates.

We have a class which will be used to set the item template control into the Gridview.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int index = 0; index < allRoles.Length; index++)
        {
            Table.Columns.Add(allRoles[index].Replace(" ", "_"));
 
            TemplateField tempField = new TemplateField();
            tempField.HeaderText = allRoles[index];
            tempField.ItemStyle.VerticalAlign = VerticalAlign.Middle;
            tempField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            //chBox.ID = allRoles[index].Replace(" ", "_");
            tempField.ItemTemplate = new GridViewTemplate(ListItemType.Item, allRoles[index].Replace(" ", "_"));
            if (IsPostBack)
            {
                grvManageSecurity.Columns.RemoveAt(1);
            }
            grvManageSecurity.Columns.Add(tempField);
        }

CLASS: Used to set the controls into Item template and

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
//A customized class for displaying the Template Column
public class GridViewTemplate : ITemplate
{
    //A variable to hold the type of ListItemType.
    ListItemType _templateType;
 
    //A variable to hold the column name.
    string _columnName;
 
    //Constructor where we define the template type and column name.
    public GridViewTemplate(ListItemType type, string colname)
    {
        //Stores the template type.
        _templateType = type;
 
        //Stores the column name.
        _columnName = colname;
    }
 
    void ITemplate.InstantiateIn(System.Web.UI.Control container)
    {
        switch (_templateType)
        {
            case ListItemType.Header:
                //Creates a new label control and add it to the container.
                Label lbl = new Label();            //Allocates the new label object.
                lbl.Text = _columnName;             //Assigns the name of the column in the lable.
                container.Controls.Add(lbl);        //Adds the newly created label control to the container.
                break;
 
            case ListItemType.Item:
                //Creates a new text box control and add it to the container.
                CheckBox chkField = new CheckBox();
                chkField.ID = _columnName;
            //Allocates the new text box object.
                container.Controls.Add(chkField);                            //Adds the newly created textbox to the container.
                break;
 
            case ListItemType.EditItem:
                //As, I am not using any EditItem, I didnot added any code here.
                break;
 
            case ListItemType.Footer:
                CheckBox chkColumn = new CheckBox();
                chkColumn.ID = "Chk" + _columnName;
                container.Controls.Add(chkColumn);
                break;
        }
    }
 
    /// <summary>
    /// This is the event, which will be raised when the binding happens.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void tb1_DataBinding(object sender, EventArgs e)
    {
        TextBox txtdata = (TextBox)sender;
        GridViewRow container = (GridViewRow)txtdata.NamingContainer;
        object dataValue = DataBinder.Eval(container.DataItem, _columnName);
        if (dataValue != DBNull.Value)
        {
            txtdata.Text = dataValue.ToString();
        }
    }
}