对gif

源代码在线查看: program.cs

软件大小: 4152 K
上传用户: cnnotes
关键词: gif
下载地址: 免注册下载 普通下载 VIP

相关代码

				using System;
				using System.Collections.Generic;
				using System.Text;
				using System.IO;
				using System.Text.RegularExpressions;
				
				namespace FreeImageNET_SFM
				{
					class Program
					{
						static private Regex searchPattern = new Regex("#include[ \\t]*\"(.*)\"", RegexOptions.Compiled);
						static private FileStream fStream = null;
						static private TextWriter textOut = null;
						private const string baseFolder = @"..\..\..\Library\";
						private const string templateName = @"FreeImage.cs.template";
				
						static int Main(string[] args)
						{
							try
							{
								if (!File.Exists(templateName))
								{
									Console.WriteLine(templateName + " not found."); return 1;
								}
				
								try
								{
									fStream = new FileStream(@"FreeImage.cs", FileMode.Create);
								}
								catch
								{
									Console.WriteLine("Unable to create output file."); return 2;
								}
				
								textOut = new StreamWriter(fStream);
				
								string[] content = File.ReadAllLines(templateName);
				
								for (int lineNumber = 0; lineNumber < content.Length; lineNumber++)
								{
									string line = content[lineNumber].Trim();
									Match match = searchPattern.Match(line);
				
									if (match.Success && match.Groups.Count == 2 && match.Groups[1].Value != null)
									{
										if (!File.Exists(baseFolder + match.Groups[1].Value))
										{
											throw new FileNotFoundException(baseFolder + match.Groups[1].Value + " does not exist.");
										}
				
										ParseFile(baseFolder + match.Groups[1].Value);
									}
									else
									{
										textOut.WriteLine(content[lineNumber]);
									}
								}
				
								return 0;
							}
							catch (Exception ex)
							{
								Console.WriteLine(ex.ToString());
								//Console.WriteLine("Error while parsing.");
								return 3;
							}
							finally
							{
								if (textOut != null)
								{
									textOut.Flush();
									textOut.Close();
								}
							}
						}
				
						private static void ParseFile(string fileName)
						{
							int lineNumber = 0;
							string line;
							Match match;
							string[] content = File.ReadAllLines(fileName);
				
				            if (fileName.Contains("AssemblyInfo.cs"))
				            {
								while (content[lineNumber].Trim().StartsWith("using") && lineNumber < content.Length)
								{
									lineNumber++;
								}
				                lineNumber++;
				            }
				            else
				            {
								while (!(content[lineNumber].Trim().StartsWith("namespace")) && lineNumber < content.Length)
								{
									lineNumber++;
								}
				                //lineNumber += 2;
				            }
				
							for (; lineNumber < content.Length; lineNumber++)
							{
								line = content[lineNumber].Trim();
								match = searchPattern.Match(line);
				
								if (match.Success && match.Groups.Count == 2 && match.Groups[1].Value != null)
								{
									if (!File.Exists(baseFolder + match.Groups[1].Value))
									{
										throw new FileNotFoundException(baseFolder + match.Groups[1].Value + " does not exist.");
									}
				
									ParseFile(baseFolder + match.Groups[1].Value);
								}
								else
								{
									textOut.WriteLine(content[lineNumber]);
								}
							}
						}
					}
				}			

相关资源