Monday, February 15, 2010

Check if a String contains a substring using InstallScript

Check if a String contains a substring.

If you want to check whether a string contains a specific substring or not, it's quite easy in .net or Java or any other OO language. But when it comes to InstallScript it's not that straight forward. In spent little time on InstallShield help but could not manage anything usual. And then finally google help me to reach some example on that. Here is a function I wrote to use in my project:


prototype BOOL IsStringContains(STRING,STRING);

function BOOL IsStringContains(szSource, szArgs)

BOOL bIsContains;

begin

if(szSource % szArgs) then

bIsContains = TRUE;

else

bIsContains = FALSE;

endif;

return bIsContains;

end;


And then I use this call this function like this:


if(IsStringContains("This is Zakirul","Zakirul")) then

MessageBox("String match found.", INFORMATION);

else

MessageBox("String doesn't found",INFORMATION);

endif;


Hope this will help you.

Thanks,

Zakirul

Tuesday, April 7, 2009

Calling Javascript functino from your code behind in ASP.Net

Here is the code by which you can call a javascript function within any where of you C# code.



Page.ClientScript.RegisterStartupScript(Page.GetType(), "YourPrompt",
"<script>alert('Hello');</script>");



Hope it works.

Thanks
/Zaq

Wednesday, March 4, 2009

Zip/Unzip using C#

I have spent few hours over internet to find out a way to create zip file using .net 2.0, C#. My intention was to avoid any third party library or application. I started with System.IO.Compression, but I did not find any resource about creating a zip from a directory with files and subdirectory as well. I got few .net library and I felt few of those are quite familier and using wiedly. But as I have some restriction i can not use those. Finally I got a solutoin to create and extract zip file using Shell32.dll. Here is two functions I wrote.

private static void ZipFile(string sourceFolder, string destinationFile)
{
byte[] emptyzip = new byte[] { 80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

FileStream fs = File.Create(destinationFile);
fs.Write(emptyzip, 0, emptyzip.Length);
fs.Flush();
fs.Close();
fs = null;

//Copy a folder and its contents into the newly created zip file
Shell32.ShellClass sc = new Shell32.ShellClass();
Shell32.Folder SrcFlder = sc.NameSpace(sourceFolder);
Shell32.Folder DestFlder = sc.NameSpace(destinationFile);
Shell32.FolderItems items = SrcFlder.Items();
DestFlder.CopyHere(items, 20);
}


private static string UnzipFile(string inputFileName, string destinationPath)
{
if (!Directory.Exists(destinationPath))
Directory.CreateDirectory(destinationPath);

Shell shell = new ShellClass();
Folder sourceFolder = shell.NameSpace(inputFileName);
Folder destinationFolder = shell.NameSpace(destinationPath);
string outputFileName = sourceFolder.Items().Item(0).Name;
destinationFolder.CopyHere(sourceFolder.Items(), "");
return outputFileName;
}


Here is the code to call those function.

ZipFile(@"D:\SourceFolder", @"D:\MyZip.zip");

UnzipFile(@"D:\MyZip.zip", @"D:\ExtractFolder");

Hope this may help you. Thanks.

How to merge multiple .NET assemblies into a single .NET assembly?

Answer is ILMerge, LMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output. See the accompanying documentation for details.