Watsug.JcShellFormat
1.0.8
See the version list below for details.
dotnet add package Watsug.JcShellFormat --version 1.0.8
NuGet\Install-Package Watsug.JcShellFormat -Version 1.0.8
<PackageReference Include="Watsug.JcShellFormat" Version="1.0.8" />
paket add Watsug.JcShellFormat --version 1.0.8
#r "nuget: Watsug.JcShellFormat, 1.0.8"
// Install Watsug.JcShellFormat as a Cake Addin
#addin nuget:?package=Watsug.JcShellFormat&version=1.0.8
// Install Watsug.JcShellFormat as a Cake Tool
#tool nuget:?package=Watsug.JcShellFormat&version=1.0.8
About
This is a JCShell like formatting library.
Documentation
This library supports following features
Variables
Variables are resolved Based on the provided dictionary, eg.:
Dictionary<string, string> dict = new Dictionary<string, string>()
{
{"x1", "Hello"},
{"x2", "World"}
};
var format = new JcShellFormat("${x1} ${x2}!", dict);
string tmp = format.Evaluate(); // "Hello World!"
Length encoding for binary data
var format = new JcShellFormat("#(DEADBEEF)");
string tmp = format.Evaluate(); // "04DEADBEEF"
BER length encoding for binary data
string data = new string('1', 256);
var format = new JcShellFormat($"%({data})");
string tmp = format.Evaluate(); // 81801111..11
ASCII to hex conversion
var format = new JcShellFormat("%(|DEADBEEF)");
string tmp = format.Evaluate(); // "09444541444245454629"
Integer to hex
It uses ';hn' modifier, where n the length of output hex format
Dictionary<string, string> dict = new Dictionary<string, string>()
{
{"xyz", "15"}
};
var format = new JcShellFormat("${xyz;h4}", dict);
string tmp = format.Evaluate(); // "000F"
Upper-case
It uses ';uc' modifier to provide the data as upper-case
var jcs = new JcShellFormat("${x1;uc}", new Dictionary<string, string> { { "x1", "WaTsUg" } });
string tmp = format.Evaluate(); // "WATSUG"
Lower-case
It uses ';lc' modifier to provide the data as lower-case
var jcs = new JcShellFormat("${x1;lc}", new Dictionary<string, string> { { "x1", "WaTsUg" } });
string tmp = format.Evaluate(); // "watsug"
Length of the data
It uses ';l' modifier to provide the length of the data
var format = new JcShellFormat("${xyz;l}", JcShellFormat.Options.KeyAsValueIfNotResolved);
string tmp = format.Evaluate(); // "3"
Substring
It uses ';sx(,y)' modifier, where x and y (optional) are indices within the input string
var jcs = new JcShellFormat("${text;s5,7}", new Dictionary<string, string> { { "text", "this is my test" } });
string tmp = format.Evaluate(); // "is my t"
Releases
2018.12.26 v1.0.8
- 'LegacyVariables' option added - variables with '{name}' instead of '${name}' form
2018.12.21 v1.0.7
- resolver function instead of a dictionary has been added
- option to treat unresolvable data as a value
2018.11.26 v0.0.4
- Initial release
License information
Available in licence.txt
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release