Friday, April 24, 2009

Extract links from html in C#

private List ExtractLinks(string html)
{
List links = new List();

string startSquence = "<a";
string endSequence = "</a>";

html = html.ToLower();

while (html.IndexOf("<a") != -1)
{
int start = html.IndexOf(startSquence) ;
int end = html.IndexOf(endSequence, start+startSquence.Length);

//Extract the link, and add it to the list
if (end > start)
{
string link = html.Substring(start, end + endSequence.Length - start);

//Check b
if (link.Substring(1).IndexOf(startSquence) != -1)
{
html = html.Substring(start + startSquence.Length);
continue;
}

if (link != string.Empty)
{
links.Add(link);
}
}
else if (end < start)
{
html = html.Substring(start + startSquence.Length);
continue;
}
//Trim the raw data
html = html.Substring(end + endSequence.Length);
}
return links;
}

Wednesday, April 22, 2009

how to modify web.config in asp.net using C#

You can modify web.config at run time. For exmaple to add a property in app settings section of web.config, you can use the following c# code

Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings.Add("CommentsLimit", "10");
myConfiguration.Save();


To update the existing property:
Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
myConfiguration.AppSettings.Settings["CommentsLimit"].Value = "20";
myConfiguration.Save();

Thursday, April 9, 2009

virtual keyword in C#

If a base class method is to be overriden, it is defined using the keyword virtual
The class member method may be overriden even if the virtual keyword is not used, but its usage makes the code more transparent & meaningful.

When the override keyword is used to override the virtual method, in a scenario where the base class method is required in a child class along with the overriden method, then the base keyword may be used to access the parent class member. The following example will be helpful to understand.

public class Shape
{
string name;
public virtual void SetName(string name)
{ this.name = name; }
}


public class Circle : Shape
{
//This method is being overriden
public override void SetName(string name)
{
base.SetName("circle"); //We are calling parent class method
}
}

Wednesday, April 8, 2009

How to Backup MySQL Database automatically in linux

The command for back up a mysql database is:

15 2 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`data '+%m-%d-%Y'`.sql.gz

The first part is "15 2 * * *". The five fields mean "minute, hour, day of month, month, day of week" respectively. The character '*' stands for "any".
The next, "root", means "run following command as root account".

You can use cron job so that it takes backup daily.