Files
SteamWare/SteamWareLib/SteamwareStrings.cs
T
Samuele E. Locatelli 31b34a2024 Update filemover
2020-02-20 17:30:00 +01:00

144 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SteamWare
{
/// <summary>
/// Classe di metodi che estendono quelli base applicati alle string
/// </summary>
public class SteamwareStrings
{
/// <summary>
/// Trasforma in MAIUSCOLo il primo carattere della stringa
/// </summary>
/// <param name="_stringaIN">stringa da processare</param>
/// <returns>stringa processata</returns>
public static string firstToUpper(string _stringaIN)
{
string _stringaOUT = _stringaIN;
if (_stringaIN.Length > 1)
{
_stringaOUT = _stringaIN.Substring(0, 1).ToUpper() + _stringaIN.Substring(1, _stringaIN.Length - 1).ToLower();
}
return _stringaOUT;
}
/// <summary>
/// effettua escape di stringhe di ricerca di tipo filtro per apici e altri caratteri non ammessi
/// </summary>
/// <param name="s_"></param>
/// <returns></returns>
public static string EscapeSqlLike(string s_)
{
StringBuilder sb = new StringBuilder(s_.Length);
for (int i = 0; i < s_.Length; i++)
{
char c = s_[i];
switch (c)
{
case ']':
case '[':
case '%':
case '*':
sb.Append("[").Append(c).Append("]");
break;
case '\'':
sb.Append("''");
break;
default:
sb.Append(c);
break;
}
}
return sb.ToString();
}
/// <summary>
/// restituisce una stringa uguale all'originale + terminazione newline
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string addLine(object s)
{
return string.Format("{0}{1}", s, Environment.NewLine);
}
/// <summary>
/// formatta un titolo
/// </summary>
/// <param name="title">Titolo da scrivere</param>
/// <param name="padChar">carattere x padding titolo</param>
/// <param name="repNum">larghezza caratteri (x pad)</param>
/// <returns></returns>
public static string charTitle(object title, char padChar, int repNum)
{
string answ = "";
answ += addLine(new string(padChar, repNum));
answ += addLine(string.Format("{0} {1}", padChar, title));
answ += addLine(new string(padChar, repNum));
return answ;
}
/// <summary>
/// formatta una riga di caratteri
/// </summary>
/// <param name="padChar">carattere da utilizzare</param>
/// <param name="repNum">larghezza caratteri (x pad)</param>
/// <returns></returns>
public static string charLine(char padChar, int repNum)
{
string answ = "";
answ += addLine(new string(padChar, repNum));
return answ;
}
/// <summary>
/// genera stringhe pseudo-casuali
/// </summary>
/// <param name="Lenght"></param>
/// <returns></returns>
public static string pseudoRandomString(int Lenght)
{
string answ = "";
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random();
answ = new string(
Enumerable.Repeat(chars, Lenght)
.Select(s => s[random.Next(s.Length)])
.ToArray());
return answ;
}
/// <summary>
/// limita una stringa al numero max di caratteri imposto
/// </summary>
/// <param name="original"></param>
/// <param name="maxChar"></param>
/// <returns></returns>
public static string limitString(string original, int maxChar)
{
string outString = original;
if (outString.Length > maxChar)
{
outString = string.Format("{0}...", original.Substring(0, maxChar - 3));
}
return outString;
}
/// <summary>
/// limita una stringa al numero max di caratteri imposto prendendo ANCHE ultimi
/// </summary>
/// <param name="original"></param>
/// <param name="maxChar"></param>
/// <param name="lastNumChar"></param>
/// <returns></returns>
public static string limitString(string original, int maxChar, int lastNumChar)
{
string outString = original;
if (outString.Length > maxChar)
{
outString = string.Format("{0}...{1}", original.Substring(0, maxChar - 3 - lastNumChar), original.Substring(outString.Length - lastNumChar));
}
return outString;
}
}
}