LinePutScript 1.10.2
See the version list below for details.
dotnet add package LinePutScript --version 1.10.2
NuGet\Install-Package LinePutScript -Version 1.10.2
<PackageReference Include="LinePutScript" Version="1.10.2" />
paket add LinePutScript --version 1.10.2
#r "nuget: LinePutScript, 1.10.2"
// Install LinePutScript as a Cake Addin #addin nuget:?package=LinePutScript&version=1.10.2 // Install LinePutScript as a Cake Tool #tool nuget:?package=LinePutScript&version=1.10.2
LinePutScript
<img src="Lineput.png" alt="Lineput" height="150px" />
LinePutScript是一种数据交换格式定义行读取结构和描述其内容的标准语言
可以应用于 保存 设置,资源,模板文件 等各种场景
类似于XML或Json但是比XML和Json更易于使用(理论上)
本类库可以更轻松的创建,修改,保存LinePutScript
提供开源源代码 可以自行修改支持更多功能
项目文件解释
LinePutScript
一个LPS基本操作类,是所有LPS的根引用 如需操作lps文件,请使用这个文件
'LinePutScript.Core' 为.net Core版本
LinePutScript.SQLHelper
一个操作数据库的帮助类 获得LPS结构的数据而非xml
LinePutScript.SQLHelper.Core 为.net Core版本
LinePutScript.Lineput
LinePut是使用LinePutScript描述富文本的一种格式
这个类帮助转换LinePut为XAML FlowDocument
LinePutScript.DataBase*
一个数据库构造类 通过映射LPS类型内容到内存, 从而实现基于LPS的快速数据库
LPSDBHost*
一个简单的内存数据库通过使用LinePutScript.DataBase类实现 *注: 有内存无法正确回收的bug,可能需要重启解决
如何使用:
安装
- 通过Parckage Manager
LinePutScript
Install-Package LinePutScript
LinePutScript.SQLHelper
Install-Package LinePutScript.SQLHelper
LinePutScript.LinePut
Install-Package LinePutScript.LinePut
通过nuget.org
下载nuget包
关于LinePutScript语言
LinePutScript是一个最高4层*的数据储存语言 *最新1.4版本支持第四层,更多层次也可以使用套娃添加,但是较为繁琐
LineputScript由Line组成, Line由sub组成 sub为 subname#subinfo
这是一个基础的LineputScript文件
line1name#line1info:|sub1name#sub1info:|sub2name#sub2info:|text
line2name#line2info:|money#100:|goods#item1,item2,item3:|
通过C# 读取信息如下
LpsDocument tmp = new LpsDocument("line1...item3:|");
tmp.First().ToString(); //line1name#line1info:|sub1name#sub1info:|sub2name#sub2info:|text
tmp.First().First().ToString();//line1name#line1info:|
tmp["line1name"]["sub1name"].Info; //sub1info
tmp[0].Text;//text
tmp[1][(gint)"money"];//100
tmp[1]["good"].GetInfos()[1];//item2
符号定义
分隔名称Name
和信息Info
😐
分隔 Sub
与 Sub
或 Line
与 Sub
:\n|
lps文件支持多行并插入换行 例如
详细文档:| 这是一份文件:
| 文件内容为空
和
详细文档:| 这是一份文件\n 文件内容为空
表达效果相同
:\n:
lps文件支持多行 例如
详细文档:| 这是一份文件:
: 文件内容为空
和
详细文档:| 这是一份文件 文件内容为空
表达效果相同
使用方法
案例:储存游戏设置
读取LPS文件
//读取LPS文件
LpsDocument Save = new LpsDocument(File.ReadAllText("GAMEPATH\\save1.lps"));
//或创建新LPS文件
Save = new LpsDocument();
获取和修改数据
案例要求:
- 储存金钱值为10000
- 添加类型电脑并储存电脑名字为 "我的电脑"
- 读取金钱值并加上500
方法1 (lps1.0) -- 早期版本lps 繁琐操作
Save.AddLine(new Line("money","10000"));//添加行 money 10000
Save.AddLine(new Line("computer",""));//添加行 compuer
Save.FindLine("computer").Add(new Sub("name","我的电脑")); //在computer行下面添加子类name和信息我的电脑
int Money = Convert.ToInt32((Save.FindLine("money").info)); //获得money储存的值
Save.FindLine("money").info = (Money + 500).ToString();//储存 money+500
方法2 (lps1.1) -- 上上版本lps 半繁琐操作
Save.AddLine("money").InfoToInt = 10000; //添加行 money 10000
Save.FindorAddLine("computer").FindorAddLine("name").Info = "我的电脑";//查找行computer, 如果没找到,则创建一个新的. 在该computer行下查找或创建子类name,并修改其信息为 我的电脑
Save.FindorAddLine("money").InfoToInt += 500;//给money+500
方法3 (lps1.2) -- 上版本lps 半繁琐操作
Save.AddLine("money").InfoToInt = 10000;
Save.FindorAddLine("computer").FindorAddLine("name").Info = "我的电脑";
Save["money"].InfoToInt += 500;//给money+500
方法4 (lps1.2+) -- 上版本lps后期 普通操作
Save.SetInt("money",10000);//设置 money 行 值(int)为10000
Save["computer"].SetString("name","我的电脑");
// 或这样 (对于string来说更方便)
Save["computer"]["name"].Info = "我的电脑";
Save.SetInt("money",Save.GetInt("money")+500);//给money+500
方法5 (lps1.3) -- 最新版本lps 高级操作
Save[(gint)"money"] = 10000; //设置 money 行 值(int)为10000
Save["computer"][(gstr)"name"] = "我的电脑";
Save[(gint)"money"] += 500;
储存LPS文件
//写入LPS源文件
File.WriteAllText("GAMEPATH\\save1.lps",Save.ToString());
储存的LPS文件样式如下
money#10500:|
computer:|name#我的电脑:|
其他
更多用法及参数参见对象管理器
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 | netcoreapp3.1 is compatible. |
.NET Framework | net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 4.6.2
- No dependencies.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (5)
Showing the top 5 NuGet packages that depend on LinePutScript:
Package | Downloads |
---|---|
VPet-Simulator.Core
虚拟桌宠模拟器 一个开源的桌宠软件, 可以内置到任何WPF应用程序 |
|
LinePutScript.Localization.WPF
WPF本地化类库, 支持文本和数值(不同语言的控件位置大小) 支持翻译接口(用于网络翻译等) 支持自动生成所需翻译文档 |
|
SoftwareVersion.Client
检查更新版本并提示用户升级或校对激活码确保激活码有效并对用户开放更多功能 *需要SoftwareVerisonManager配合 |
|
LinePutScript.SQLHelper
使用LineputScript的SQL帮助类 |
|
LinePutScript.LinePut
LinePut是使用LinePutScript描述富文本的一种格式 这个类帮助转换LinePut为XAML FlowDocument |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on LinePutScript:
Repository | Stars |
---|---|
LorisYounger/VPet
虚拟桌宠模拟器 一个开源的桌宠软件, 可以内置到任何WPF应用程序
|
Version | Downloads | Last updated | |
---|---|---|---|
1.11.8 | 595 | 8/8/2024 | |
1.11.7 | 260 | 6/26/2024 | |
1.11.6 | 897 | 3/20/2024 | |
1.11.5 | 144 | 3/18/2024 | |
1.11.4 | 122 | 3/17/2024 | |
1.11.3 | 114 | 3/11/2024 | |
1.11.2 | 128 | 3/9/2024 | |
1.11.1 | 140 | 3/1/2024 | |
1.11.0 | 138 | 3/1/2024 | |
1.10.2 | 449 | 2/2/2024 | |
1.10.1 | 129 | 2/1/2024 | |
1.9.2 | 3,000 | 8/8/2023 | |
1.9.1 | 205 | 8/7/2023 | |
1.9.0 | 211 | 8/7/2023 | |
1.8.3 | 330 | 7/3/2023 | |
1.8.2 | 471 | 6/5/2023 | |
1.8.1 | 226 | 6/3/2023 | |
1.8.0 | 361 | 5/8/2023 | |
1.6.1 | 721 | 12/2/2022 | |
1.6.0 | 411 | 11/22/2022 | |
1.5.4 | 506 | 9/22/2022 | |
1.5.3 | 484 | 9/21/2022 | |
1.5.2 | 467 | 9/21/2022 | |
1.5.1 | 473 | 9/21/2022 | |
1.5.0 | 482 | 9/21/2022 | |
1.4.3 | 446 | 9/1/2022 | |
1.4.2 | 503 | 8/25/2022 | |
1.4.1 | 480 | 8/23/2022 | |
1.3.5 | 547 | 5/11/2022 | |
1.3.4 | 638 | 2/1/2022 | |
1.3.3 | 524 | 1/25/2022 | |
1.3.2 | 554 | 1/2/2022 | |
1.3.1 | 628 | 11/30/2021 | |
1.2.3 | 1,528 | 11/28/2021 | |
1.2.2 | 547 | 11/28/2021 | |
1.2.1 | 595 | 10/14/2021 | |
1.2.0 | 592 | 10/8/2021 | |
1.1.7 | 1,532 | 9/1/2021 | |
1.1.6 | 618 | 4/20/2021 | |
1.1.5 | 693 | 3/16/2021 | |
1.1.4 | 824 | 8/30/2020 | |
1.1.3 | 931 | 8/26/2020 | |
1.1.2 | 801 | 8/18/2020 | |
1.1.1 | 927 | 8/18/2020 | |
1.1.0 | 814 | 8/18/2020 |
1.10.0: FINT64 & 性能优化SetObject
1.10.1: HashCode算法从MD5更新到SHA512以免FIPS错误
FINT64(为原先的float): 通过转换long为double获得更好的操作性和性能
SetObject重构: 会有更好的性能和更少的占用
实装Conveter.FourceToString
更安全的SetValue