- Autocommit - 2021/10/26 20:01:12
This commit is contained in:
1 parent
6d05279201
commit
6ea341fc11
12 files changed
+1643
-27
No files matched your search
@@ -0,0 +1,475 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
|
||||
|
||||
namespace A69WD {
|
||||
|
||||
public class cTools {
|
||||
|
||||
/// <summary>
|
||||
/// Carica l'assemby da un array di byte
|
||||
/// </summary>
|
||||
/// <param name="binaries">Array di byte che definiscono l'assembly</param>
|
||||
/// <returns>Assembly decodificato dal'array di byte</returns>
|
||||
public static Assembly LoadAssemblyFromBinaries(byte[] binaries) {
|
||||
Assembly asm = null;
|
||||
try {
|
||||
asm = Assembly.Load(binaries);
|
||||
} catch { }
|
||||
return asm;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Carica l'assembly dal file indicato
|
||||
/// </summary>
|
||||
/// <param name="filename">Nome completo del file assembly da leggere</param>
|
||||
/// <returns>Assembly decodificato dal file</returns>
|
||||
public static Assembly LoadAssemblyFromFile(string filename) {
|
||||
byte[] binaries = ReadFully(filename);
|
||||
return LoadAssemblyFromBinaries(binaries);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Legge il file e ne ritorna l'array di byte che lo compone
|
||||
/// </summary>
|
||||
/// <param name="filename">Nome completo del file da leggere</param>
|
||||
/// <returns>Array con i byte letti dal file</returns>
|
||||
public static byte[] ReadFully(string filename) {
|
||||
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
|
||||
BinaryReader br = new BinaryReader(fs);
|
||||
byte[] result = br.ReadBytes((int)fs.Length);
|
||||
br.Close();
|
||||
fs.Close();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scrive il testo in un file con append=false e Encoding UTF8
|
||||
/// </summary>
|
||||
/// <param name="FullFileName">Nome completo del file da creare/sovrascrivere</param>
|
||||
/// <param name="Text">StringBuilder con il testo da riportare nel file</param>
|
||||
public static void WriteTextFile(string FullFileName, StringBuilder Text) {
|
||||
System.IO.StreamWriter sw = new System.IO.StreamWriter(FullFileName, false, Encoding.UTF8);
|
||||
sw.Write(Text.ToString());
|
||||
sw.Flush();
|
||||
sw.Close();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Metodo che legge un testo da file (UTF8)
|
||||
/// </summary>
|
||||
/// <param name="sPath">Path del file da leggere</param>
|
||||
/// <returns>Testo del file</returns>
|
||||
public static string ReadTextFile(string sPath) {
|
||||
//string str = "";
|
||||
//try {
|
||||
// if (File.Exists(sPath)) {
|
||||
// StreamReader reader = File.OpenText(sPath);
|
||||
// str = reader.ReadToEnd();
|
||||
// reader.Close();
|
||||
// reader.Dispose();
|
||||
// }
|
||||
//} catch (Exception exception) {
|
||||
// str = "ERRORE: " + exception.Message;
|
||||
//}
|
||||
//return str;
|
||||
string str = "";
|
||||
if (File.Exists(sPath)) {
|
||||
StreamReader reader = File.OpenText(sPath);
|
||||
str = reader.ReadToEnd();
|
||||
reader.Close();
|
||||
reader.Dispose();
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo che legge un testo da file
|
||||
/// </summary>
|
||||
/// <param name="FilePath">Path del file da leggere</param>
|
||||
/// <param name="encoding">Codifica usata nel testo</param>
|
||||
/// <returns>Testo del file</returns>
|
||||
public static string ReadTextFile(string FilePath, Encoding encoding) {
|
||||
System.IO.StreamReader sr = null;
|
||||
//StringBuilder sb = null;
|
||||
string txt = "";
|
||||
try {
|
||||
//Pass the file path and file name to the StreamReader constructor
|
||||
sr = new System.IO.StreamReader(FilePath, encoding);
|
||||
////Read the first line of text
|
||||
//sb = new StringBuilder();
|
||||
//string line = sr.ReadLine();
|
||||
////Continue to read until you reach end of file
|
||||
//while (line != null) {
|
||||
// sb.AppendLine(line);
|
||||
// //Read the next line
|
||||
// line = sr.ReadLine();
|
||||
//}
|
||||
txt = sr.ReadToEnd();
|
||||
} catch (Exception e) {
|
||||
throw new Exception("Errore nell'esecuzione di WebTools.Library.Tools.ReadTextFile(string FilePath, Encoding encoding):\n" + e.Message);
|
||||
//sb = new StringBuilder();
|
||||
} finally {
|
||||
//close the file
|
||||
if (sr != null) {
|
||||
sr.Close();
|
||||
sr.Dispose();
|
||||
sr = null;
|
||||
}
|
||||
}
|
||||
//return sb.ToString();
|
||||
return txt;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue un comando dos dalla shell
|
||||
/// </summary>
|
||||
/// <param name="cmd">Comando da eseguire in shell</param>
|
||||
public static void ExecDosCmd(string cmd) {
|
||||
|
||||
string argu = string.Format("/C \"{0}\"", cmd);
|
||||
|
||||
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
|
||||
info.FileName = "cmd.exe";
|
||||
info.Arguments = argu;
|
||||
info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
||||
System.Diagnostics.Process.Start(info);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue un comando dos dalla shell e cattura il risultato
|
||||
/// </summary>
|
||||
/// <param name="cmd">Comando da eseguire</param>
|
||||
/// <param name="args">Argomenti da passare</param>
|
||||
/// <returns>Testo ritornato dal comando.</returns>
|
||||
public static string ExecDosCmd(string cmd, string args) {
|
||||
System.Diagnostics.ProcessStartInfo ProcInfo = new System.Diagnostics.ProcessStartInfo(cmd, args);
|
||||
ProcInfo.RedirectStandardOutput = true;
|
||||
ProcInfo.UseShellExecute = false;
|
||||
|
||||
System.Diagnostics.Process p = System.Diagnostics.Process.Start(ProcInfo);
|
||||
System.IO.TextReader tr = p.StandardOutput;
|
||||
string result = tr.ReadToEnd();
|
||||
tr.Close();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static bool EditPad(string file) {
|
||||
try {
|
||||
System.Diagnostics.Process proc = new System.Diagnostics.Process();
|
||||
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
// proc.StartInfo.Verb = "print";
|
||||
proc.StartInfo.FileName = @"C:\Programmi\My_Tools\Editors\EditPad\EditPad.exe";
|
||||
proc.StartInfo.Arguments = String.Format(@" {0}", file);
|
||||
Logger.Log(proc.StartInfo.FileName + proc.StartInfo.Arguments);
|
||||
proc.Start();
|
||||
return true;
|
||||
} catch (Exception ex) { Logger.Log(new object[] { "Error Code: EG0284", ex }); return false; }
|
||||
}
|
||||
// public class Pdf {
|
||||
// public static Boolean PrintPDFs(string pdfFileName)
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// Process proc = new Process();
|
||||
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
// proc.StartInfo.Verb = "print";
|
||||
//
|
||||
// //Define location of adobe reader/command line switches to launch adobe in "print" mode
|
||||
// proc.StartInfo.FileName = @"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe";
|
||||
// proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName);
|
||||
// proc.StartInfo.UseShellExecute = false;
|
||||
// proc.StartInfo.CreateNoWindow = true;
|
||||
//
|
||||
// proc.Start();
|
||||
// proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
// if (proc.HasExited == false)
|
||||
// {
|
||||
// proc.WaitForExit(10000);
|
||||
// }
|
||||
//
|
||||
// proc.EnableRaisingEvents = true;
|
||||
//
|
||||
// proc.Close();
|
||||
// KillAdobe("AcroRd32");
|
||||
// return true;
|
||||
// }
|
||||
// catch
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Genera l'elenco dei file nella directory indicata che soddisfano al filtro indicato
|
||||
/// </summary>
|
||||
/// <param name="path">directory da analizzare</param>
|
||||
/// <param name="filtro">Filtro da usare</param>
|
||||
/// <returns>Array dei path completi, dei file trovati</returns>
|
||||
public static string[] ElencoFile(string path) { return ElencoFile(path, "*.*", SearchOption.TopDirectoryOnly); }
|
||||
|
||||
/// <summary>
|
||||
/// Genera l'elenco dei file nella directory indicata che soddisfano al filtro indicato
|
||||
/// </summary>
|
||||
/// <param name="path">directory da analizzare</param>
|
||||
/// <param name="filtro">Filtro da usare</param>
|
||||
/// <returns>Array dei path completi, dei file trovati</returns>
|
||||
public static string[] ElencoFile(string path, string filtro) { return ElencoFile(path, filtro, SearchOption.TopDirectoryOnly); }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Genera l'elenco dei file nella directory indicata che soddisfano al filtro indicato
|
||||
/// </summary>
|
||||
/// <param name="path">directory da analizzare</param>
|
||||
/// <param name="filtro">Filtro da usare</param>
|
||||
/// <param name="option"></param>
|
||||
/// <returns>Array dei path completi, dei file trovati</returns>
|
||||
public static string[] ElencoFile(string path, string filtro, SearchOption option) { return Directory.GetFiles(path, filtro, option); }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Metodo che analizza il file indicato ed inserisce nella lista tutti i link trovati.
|
||||
/// </summary>
|
||||
/// <param name="FileSrcPath">Path del file da analizzare</param>
|
||||
/// <param name="URLs">Lista di tutti i link trovati</param>
|
||||
/// <returns>True se tutto Ok, False altrimenti</returns>
|
||||
public static bool EstraiLink(string FileSrcPath, List<string> links) {
|
||||
try {
|
||||
Regex regex = new Regex("(?<=href=\")\\S+?(?=\")");
|
||||
string input = ReadTextFile(FileSrcPath);
|
||||
Match matchObj = regex.Match(input);
|
||||
while (matchObj.Success) {
|
||||
links.Add(matchObj.Value);
|
||||
if (matchObj.Groups.Count > 1) {
|
||||
for (int i = 1; i < matchObj.Groups.Count; i++) {
|
||||
Group group = matchObj.Groups[i];
|
||||
if (group.Success) {
|
||||
links.Add(group.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
matchObj = matchObj.NextMatch();
|
||||
}
|
||||
return true;
|
||||
} catch { return false; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo che analizza il file indicato e restituisce l'insieme di tutti i link trovati ordinato e privo di doppioni
|
||||
/// </summary>
|
||||
/// <param name="FileSrcPath">Path del file da analizzare</param>
|
||||
/// <returns>Insieme con i vari link trovati</returns>
|
||||
public static List<string> GetOrderLink(string FileSrcPath) {
|
||||
List<string> links = new List<string>();
|
||||
try {
|
||||
// Estraggo tutti i link:
|
||||
if (!EstraiLink(FileSrcPath, links)) return new List<string>();
|
||||
// Verifico di aver trovato dei link:
|
||||
if (links.Count == 0) return links;
|
||||
// Ordino i link estratti:
|
||||
links.Sort();
|
||||
// Elimino i duplicati:
|
||||
string[] tmp = links.ToArray();
|
||||
links.Clear();
|
||||
string oldLink = tmp[0];
|
||||
links.Add(oldLink);
|
||||
for (int i = 1; i < tmp.Length; i++) {
|
||||
if (tmp[i] != oldLink) {
|
||||
oldLink = tmp[1];
|
||||
links.Add(oldLink);
|
||||
}
|
||||
}
|
||||
return links;
|
||||
} catch (Exception ex) {
|
||||
Logger.Log(ex);
|
||||
return links;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo che legge il DB dei link dal file di testo in cui è stato salvato.
|
||||
/// </summary>
|
||||
/// <returns>Elenco ordinato di tutti i link del DB</returns>
|
||||
public static List<string> ReadLinkDB(string PathLinkBD) {
|
||||
StreamReader reader = null;
|
||||
try {
|
||||
List<string> buffer = new List<string>();
|
||||
string row;
|
||||
reader = new StreamReader(PathLinkBD);
|
||||
do {
|
||||
row = reader.ReadLine().Trim();
|
||||
if (row.StartsWith("http://")) {
|
||||
buffer.Add(row);
|
||||
}
|
||||
} while (!reader.EndOfStream);
|
||||
reader.Close();
|
||||
reader = null;
|
||||
// Ordino
|
||||
buffer.Sort();
|
||||
return buffer;
|
||||
} catch {
|
||||
if (reader != null) {
|
||||
reader.Close();
|
||||
reader = null;
|
||||
}
|
||||
return new List<string>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Metodo che esegue una copia di backup del file indicato
|
||||
/// </summary>
|
||||
/// <param name="FilePath">Path completo del file da backuppare</param>
|
||||
/// <returns>True se tutto ok, False altrimenti.</returns>
|
||||
public static bool BackupFile(string FilePath) {
|
||||
try {
|
||||
string LinkDBPathBK = Path.GetFileNameWithoutExtension(FilePath) + "_BK_" + DateTime.Now.ToString("yyyy-MM-dd");
|
||||
LinkDBPathBK = FilePath.Replace(Path.GetFileNameWithoutExtension(FilePath), LinkDBPathBK);
|
||||
if (!File.Exists(LinkDBPathBK)) File.Move(FilePath, LinkDBPathBK);
|
||||
return true;
|
||||
} catch { return false; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Esegue una formattazione del testo ricavato da un file html per scremarlo delle parti html
|
||||
/// </summary>
|
||||
/// <param name="txt">Testo da formattare</param>
|
||||
/// <param name="eliminaTagHtml">Abilitare l'eliminazione di tutti i generici tag </param>
|
||||
/// <returns>Testo formattato</returns>
|
||||
public static string FormattaTesto(string txt, bool eliminaTagHtml) {
|
||||
try {
|
||||
// Analisi dei tag prima di levarli:
|
||||
string testo = Regex.Replace(txt, @"<P>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"</P>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<P />", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<B>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"</B>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<B />", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<BR>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"</BR>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<br />", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"</div>", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<div />", "\n", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<<", "«", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @">>", "»", RegexOptions.IgnoreCase);
|
||||
// Se richiesto, elimino i tag html:
|
||||
if (eliminaTagHtml) {
|
||||
// Preparo la Regex:
|
||||
string htmlPattern = @"\<[^\>]*\>";
|
||||
Regex re = new Regex(htmlPattern, RegexOptions.IgnoreCase);
|
||||
|
||||
// Applico l'espressione regolare per togliere tutti i tag:
|
||||
testo = re.Replace(testo, "");
|
||||
}
|
||||
|
||||
// Correggo risultato togliendo doppie linee e caratteri html:
|
||||
testo = Regex.Replace(testo, @" ", " ", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"•", " * ", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"‹", " < ", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"<", "<", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"›", " > ", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @">", ">", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"™", "(tm)", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"©", "(c)", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"®", "(r)", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"⁄", "/", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"à", "à", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"è", "è", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"ì", "ì", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"ò", "ò", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"ù", "ù", RegexOptions.IgnoreCase);
|
||||
|
||||
testo = Regex.Replace(testo, @"–", "–", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"—", "—", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"‘", "‘", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"’", "’", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"“", "“", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"”", "”", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"…", "…", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"Č", "Č", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"č", "č", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"Ě", "Ě", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"ě", "ě", RegexOptions.IgnoreCase);
|
||||
|
||||
testo = Regex.Replace(testo, @"
", " ", RegexOptions.IgnoreCase);
|
||||
testo = Regex.Replace(testo, @"", " ", RegexOptions.IgnoreCase);
|
||||
|
||||
// // Remove all others. More can be added, see
|
||||
// // http://hotwired.lycos.com/webmonkey/reference/special_characters/
|
||||
// testo = Regex.Replace(testo, @"&(.{2,6});", string.Empty, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
|
||||
|
||||
//// Correggo accenti per formati sbagliati:
|
||||
//while (testo.Contains("Ã ")) { testo = testo.Replace("Ã ", "à"); }
|
||||
//while (testo.Contains("è")) { testo = testo.Replace("è", "è"); }
|
||||
//while (testo.Contains("é")) { testo = testo.Replace("é", "é"); }
|
||||
//while (testo.Contains("ì")) { testo = testo.Replace("ì", "ì"); }
|
||||
//while (testo.Contains("ò")) { testo = testo.Replace("ò", "ò"); }
|
||||
//while (testo.Contains("ù")) { testo = testo.Replace("ù", "ù"); }
|
||||
//while (testo.Contains("’")) { testo = testo.Replace("’", "'"); }
|
||||
|
||||
|
||||
|
||||
// Correggo scritto:
|
||||
testo = testo.Replace("\r", "");
|
||||
while (testo.Contains("\t")) { testo = testo.Replace("\t", " "); }
|
||||
while (testo.Contains("...")) { testo = testo.Replace("...", "…"); }
|
||||
while (testo.Contains("….")) { testo = testo.Replace("….", "…"); }
|
||||
while (testo.Contains("……")) { testo = testo.Replace("……", "…"); }
|
||||
while (testo.Contains(" ")) { testo = testo.Replace(" ", " "); }
|
||||
while (testo.Contains(" \n")) { testo = testo.Replace(" \n", "\n"); }
|
||||
while (testo.Contains("\n ")) { testo = testo.Replace("\n ", "\n"); }
|
||||
while (testo.Contains("\n\n")) { testo = testo.Replace("\n\n", "\n"); }
|
||||
|
||||
return testo;
|
||||
} catch (Exception ex) { return string.Format(" Errore: Errore durante la formattazione del testo:\n{0}\n\n", ex.Message); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Muove i file indicati, nella directory di destinazione indicata
|
||||
/// </summary>
|
||||
/// <param name="IndexFiles">Array con l'elenco dei file da spostare</param>
|
||||
/// <param name="PathDestination">Path della directory in cui spostare i file</param>
|
||||
/// <returns>True se tutto OK, False altrimenti.</returns>
|
||||
public static bool MoveFiles(string[] Files, string PathDestination) {
|
||||
// Sposta tutti i file indicati nella directory indicata:
|
||||
try {
|
||||
foreach (string file in Files) {
|
||||
string dst = Path.Combine(PathDestination, Path.GetFileName(file));
|
||||
if (System.IO.File.Exists(dst)) System.IO.File.Delete(dst);
|
||||
File.Move(file, dst);
|
||||
}
|
||||
return true;
|
||||
} catch { return false; }
|
||||
}
|
||||
|
||||
|
||||
public static bool WriteStyleSheet(string FullFileName) {
|
||||
try {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("BODY{\n\tmargin-left : 5px;\n\tmargin-right : 5px;\n\tcolor : #000099;\n\tfont-family : Verdana,Arial,Helvetica;\n\tbackground-color : #F4F4F4;\n}\n.Title {\n\ttext-align : center; \n\tfont-family : \"Helvetica\";\n\tfont-size : x-large;\n}\n.SubTitle {\n\ttext-align : center; \n\ttext-indent : 16px;\n\tfont-family : \"Helvetica\";\n\tfont-size : large;\n\tfont-style : italic;\n}\n.Property {\n\ttext-align : justify; \n\ttext-indent : 25px;\n\tfont-style : italic;\n}\n.Origine {\n\ttext-align : justify; \n\ttext-indent : 25px;\n\tfont-style : italic;\n}\n.Autore {\n\ttext-align : justify; \n\ttext-indent : 25px;\n\tfont-style : italic;\n}\n.Data {\n\ttext-align : justify; \n\ttext-indent : 25px;\n\tfont-style : italic;\n}\n.Trama {\n\ttext-align : justify; \n\ttext-indent : 12px;\n\tcolor : #000000;\n}\n.Menu {\n\ttext-align : right; \n\ttext-indent : 12px;\n\tcolor : #000000;\n}\n.MsgTitle {\n\ttext-align : justify; \n\ttext-indent : 25px;\n\tfont-style : italic;\n}\n.MsgText {\n\ttext-align : justify; \n\ttext-indent : 12px;\n\tcolor : #000000;\n}\n.ReportTitle {\n\ttext-align : center; \n\tfont-family : \"Helvetica\";\n\tfont-size : x-large;\n}\n.ReportText {\n\ttext-align : justify; \n\ttext-indent : 25px;\n\tfont-style : italic;\n}\n.Menu_Row {\n\tfont-size:70%;\n\twhite-space:nowrap;\n}\n.Menu_sx {\n\ttext-align:left; width:50%; float: left;\n}\n.Menu_dx {\n\ttext-align:right; width:50%; float: right;\n}\n");
|
||||
WriteTextFile(FullFileName, sb);
|
||||
return true;
|
||||
} catch (Exception ex) {
|
||||
Logger.Log(new object[] { "Error Code: eBook000", "Errore in ATlib.Tools.WriteStyleS(FullFileName)", ex });
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
} // class Tools
|
||||
|
||||
} // namespace A69WD
|
||||
Reference in new issue
Block a user