📄 helper.cs
字号:
using System;
using System.Web;
using System.IO;
using System.Drawing;
using System.Collections;
using System.Text.RegularExpressions;
using Lion.Data.Library.HtmlEditor.Core;
namespace Lion.Data.Library.HtmlEditor
{
/// <summary>
/// Helper 的摘要说明。
/// </summary>
internal class Helper
{
/// <summary>
/// 得到Button样式的 XmlNode 节点
/// </summary>
/// <param name="code"> Name </param>
/// <returns></returns>
public static System.Xml.XmlNode GetButtonNode(string code)
{
/*
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(GetHtml("/Button.xml").ToString());
if(doc.SelectSingleNode("/Root/Button/B_Code[text()='"+ code +"']")==null)
return null;
return doc.SelectSingleNode("/Root/Button/B_Code[text()='"+ code +"']").ParentNode;
*/
//当前请求的HTTP特定信息
HttpContext context = Context;
string Argument = Context.Request.QueryString["configfile"];
System.Collections.Hashtable hs = (Hashtable)context.Application[Argument];
System.Xml.XmlDocument doc = (System.Xml.XmlDocument)hs["Button"];
if(doc.SelectSingleNode("/Root/Button/B_Code[text()='"+ code +"']")==null)
return null;
return doc.SelectSingleNode("/Root/Button/B_Code[text()='"+ code +"']").ParentNode;
}
/// <summary>
/// 得到Style样式的 XmlNode 节点
/// </summary>
/// <param name="name"> Name </param>
/// <param name="context">请求的HTTP特定信息</param>
/// <returns></returns>
public static System.Xml.XmlNode GetStyleNode(string name)
{
/*
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(GetHtml("/Style.xml").ToString());
if(doc.SelectSingleNode("/Root/Style/S_Name[text()='"+ name +"']")==null)
return null;
return doc.SelectSingleNode("/Root/Style/S_Name[text()='"+ name +"']").ParentNode;
*/
HttpContext context = Context;
string Argument = Context.Request.QueryString["configfile"];
System.Collections.Hashtable hs = (Hashtable)context.Application[Argument];
System.Xml.XmlDocument doc = (System.Xml.XmlDocument)hs["Style"];
if(doc.SelectSingleNode("/Root/Style/S_Name[text()='"+ name +"']")==null)
return null;
return doc.SelectSingleNode("/Root/Style/S_Name[text()='"+ name +"']").ParentNode;
}
/// <summary>
/// 得到ToolBar样式的 XmlNode 节点列表
/// </summary>
/// <param name="s_name">s_name</param>
/// <returns></returns>
static public System.Xml.XmlNodeList GetToolBarNodeList(string s_name)
{
/*
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(GetHtml("/ToolBar.xml").ToString());
System.Xml.XmlNodeList nodelist = doc.SelectNodes("/Root/ToolBar/S_ID[text()='"+ s_name.ToString() +"']");
return nodelist;
*/
//当前请求的HTTP特定信息
HttpContext context = Context;
string Argument = Context.Request.QueryString["configfile"];
System.Collections.Hashtable hs = (Hashtable)context.Application[Argument];
System.Xml.XmlDocument doc = (System.Xml.XmlDocument)hs["ToolBar"];
System.Xml.XmlNodeList nodelist = doc.SelectNodes("/Root/ToolBar/S_Name[text()='"+ s_name.ToString() +"']");
return nodelist;
}
/// <summary>
/// 得到html文件内容
/// </summary>
/// <param name="filename">文件名</param>
/// <returns></returns>
static public System.Text.StringBuilder GetHtml(string filename)
{
byte[] res = Resx.LoadFile(filename);
if(res==null)
throw new ArgumentNullException("filename","isn`t find "+filename);
else if(res.Length==0)
throw new ArgumentNullException("filename","isn`t find "+filename);
return new System.Text.StringBuilder(System.Text.Encoding.Default.GetString(res));
}
/// <summary>
/// 得到Script文件内容
/// </summary>
/// <param name="filename">文件名</param>
/// <returns></returns>
static public System.Text.StringBuilder GetScript(string filename)
{
byte[] res = Resx.LoadFile(filename);
if(res==null)
throw new ArgumentNullException("filename","isn`t find "+filename);
else if(res.Length==0)
throw new ArgumentNullException("filename","isn`t find "+filename);
return new System.Text.StringBuilder(System.Text.Encoding.UTF8.GetString(res));
}
/// <summary>
/// 得到Image文件内容
/// </summary>
/// <param name="filename">文件名</param>
/// <returns></returns>
static public Image GetImage(string filename)
{
byte[] res = Resx.LoadFile(filename);
if(res==null)
throw new ArgumentNullException("filename","isn`t find "+filename);
else if(res.Length==0)
throw new ArgumentNullException("filename","isn`t find "+filename);
Image img = Image.FromStream(new System.IO.MemoryStream(res));
return img;
}
/// <summary>
/// 检测含有中文字符串的实际长度
/// </summary>
/// <param name="str">要检测的字符串</param>
/// <returns>返回结果长度</returns>
public static int GetStringLength(string str)
{
int l=0;
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes(str);
for(int i=0;i<b.Length;i++)
{
if(b[i]==63)
{
l++;
}
l++;
}
return l;
}
static string __version;
/// <summary>
/// 版本号
/// </summary>
static public string Version
{
get
{
if(__version==null)
__version=typeof(Helper).Assembly.GetName().Version.Major.ToString();
return __version;
}
}
/// <summary>
/// 获得随机
/// </summary>
/// <param name="Length"></param>
/// <returns></returns>
public static int GetRandomNext(int Length)
{
if(Length>9)
throw new ArgumentNullException("Length","Length的长度不能大于10");
Guid gu = Guid.NewGuid();
string str = "";
for(int i=0;i<gu.ToString().Length;i++)
{
if(isNumber(gu.ToString()[i]))
str +=((gu.ToString()[i]));
}
int guid = int.Parse(str.Replace("-","").Substring(0,Length));
if(guid.ToString().Length!=Length)
guid = GetRandomNext(Length);
return guid;
}
/// <summary>
/// 返回一个 bool 值,指明提供的值是不是整数
/// </summary>
/// <param name="obj">要判断的值</param>
/// <returns>true[是整数]false[不是整数]</returns>
public static bool isNumber(object obj)
{
System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^-?(\d*)$");
System.Text.RegularExpressions.Match mc = rg.Match(obj.ToString());
return(mc.Success);
}
static bool resinited=false;
internal static void InitResources()
{
if(resinited==false)
{
if(resinited==false)
{
string dir=Context.Server.MapPath(ResolvePath("/"));
string flp=Path.Combine(dir,"web.config");
byte[] bs=Resx.LoadFile("/web.config");
if(!IsFileExists(flp,bs))
{
if(!Directory.Exists(dir))Directory.CreateDirectory(dir);
using(FileStream fs=new FileStream(flp,FileMode.Create,FileAccess.Write))
{
fs.Write(bs,0,bs.Length);
}
}
}
resinited=true;
}
}
internal static void InitConfigFile(string filename,string path)
{
string dir=Context.Server.MapPath(path);
string flp=Path.Combine(dir,filename);
byte[] bs=Resx.LoadFile(filename.StartsWith("/")?filename:"/"+filename);
if(!File.Exists(flp))
{
if(!Directory.Exists(dir))Directory.CreateDirectory(dir);
using(FileStream fs=new FileStream(flp,FileMode.Create,FileAccess.Write))
{
fs.Write(bs,0,bs.Length);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -