diff --git a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin index 38035c8c..84cfd75b 100644 Binary files a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin and b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.metadata.v7.bin differ diff --git a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin index efed256c..37575c80 100644 Binary files a/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin and b/源代码/.vs/ProjectEvaluation/stgsharpdevelop.projects.v7.bin differ diff --git a/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 b/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 index 1fc36679..19d67be6 100644 Binary files a/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 and b/源代码/.vs/StgSharpDevelop/DesignTimeBuild/.dtbcache.v2 differ diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/1041002e-0381-4066-8a09-1cf21dea08b1.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/1041002e-0381-4066-8a09-1cf21dea08b1.vsidx deleted file mode 100644 index fb57eafc..00000000 Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/1041002e-0381-4066-8a09-1cf21dea08b1.vsidx and /dev/null differ diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/3adc9943-2e66-4eeb-a066-70cd0ac6f760.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/3adc9943-2e66-4eeb-a066-70cd0ac6f760.vsidx new file mode 100644 index 00000000..d2521c8b Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/3adc9943-2e66-4eeb-a066-70cd0ac6f760.vsidx differ diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/7ba133a8-2632-48fe-b845-80bb1ea3c77a.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/7ba133a8-2632-48fe-b845-80bb1ea3c77a.vsidx deleted file mode 100644 index 5e77cedb..00000000 Binary files a/源代码/.vs/StgSharpDevelop/FileContentIndex/7ba133a8-2632-48fe-b845-80bb1ea3c77a.vsidx and /dev/null differ diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/ca9f8530-2372-4369-a7d1-3cb4fa31feb4.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/ca9f8530-2372-4369-a7d1-3cb4fa31feb4.vsidx new file mode 100644 index 00000000..d4572e33 Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/ca9f8530-2372-4369-a7d1-3cb4fa31feb4.vsidx differ diff --git a/源代码/.vs/StgSharpDevelop/FileContentIndex/cc3984f3-c83a-4399-90dc-1254767f471b.vsidx b/源代码/.vs/StgSharpDevelop/FileContentIndex/cc3984f3-c83a-4399-90dc-1254767f471b.vsidx new file mode 100644 index 00000000..c4ebb117 Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/FileContentIndex/cc3984f3-c83a-4399-90dc-1254767f471b.vsidx differ diff --git a/源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 b/源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 index 8033212d..c63b0d64 100644 Binary files a/源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 and b/源代码/.vs/StgSharpDevelop/v17/.futdcache.v2 differ diff --git a/源代码/.vs/StgSharpDevelop/v17/.suo b/源代码/.vs/StgSharpDevelop/v17/.suo index b6528cf7..0ebd6c9f 100644 Binary files a/源代码/.vs/StgSharpDevelop/v17/.suo and b/源代码/.vs/StgSharpDevelop/v17/.suo differ diff --git a/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json b/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json index e122500a..8c1cebcc 100644 --- a/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json +++ b/源代码/.vs/StgSharpDevelop/v17/DocumentLayout.json @@ -2,6 +2,94 @@ "Version": 1, "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\", "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\gl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\gl\\shaderedit\\shader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\serialize\\issdserializable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\serialize\\issdserializable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\environment\\globalsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\environment\\globalsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\math\\linear\\vec3d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\math\\linear\\vec3d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\data\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\data\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\data\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\data\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\math\\linear\\vector.normalize.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\graphics\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\graphics\\form\\frameasyncthread.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\math\\linear\\vec4d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\logic\\glparamqueue.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharp\\math\\linear\\vec3d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{3EAF2EE6-FA9E-4F57-951F-7E6F8125DFBF}|StgSharp\\StgSharp.csproj|solutionrelative:stgsharp\\math\\linear\\vec3d.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, { "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\form\\showform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\form\\showform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -26,14 +114,6 @@ "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" }, - { - "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { - "AbsoluteMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\stgsharpdebug\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{610B992B-BB34-49C3-9993-676C595FC12E}|StgSharpDebug\\StgSharpDebug.csproj|solutionrelative:stgsharpdebug\\graphics\\image.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, { "AbsoluteMoniker": "D:0:0:{183AA95A-FEBD-42A5-A205-AB7048678251}|OEM\\OEM.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u6E90\u4EE3\u7801\\oem\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{183AA95A-FEBD-42A5-A205-AB7048678251}|OEM\\OEM.csproj|solutionrelative:oem\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -67,19 +147,283 @@ { "$type": "Document", "DocumentIndex": 0, + "Title": "SSDraw.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDraw.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSDraw.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDraw.cs", + "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSDraw.cs", + "ViewState": "AQIAACwAAAAAAAAAAAApwDsAAAAwAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T17:49:43.784Z", + "EditorCaption": "" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{e1b7d1f8-9b3c-49b1-8f4f-bfc63a88835d}" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "GlobalSetting.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\GlobalSetting.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Environment\\GlobalSetting.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\GlobalSetting.cs", + "RelativeToolTip": "StgSharpDebug\\Environment\\GlobalSetting.cs", + "ViewState": "AQIAAAkAAAAAAAAAAAAAADAAAAAwAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T17:36:01.877Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "SSD.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSD.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSD.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSD.cs", + "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSD.cs", + "ViewState": "AQIAABgAAAAAAAAAAAAAACkAAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T17:27:58.8Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "SSDVirtualFolder.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs", + "RelativeToolTip": "StgSharpDebug\\Data\\SSD\\SSDVirtualFolder.cs", + "ViewState": "AQIAACUAAAAAAAAAAAAhwCoAAAAZAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T17:18:48.003Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "Shader.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs", + "RelativeToolTip": "StgSharpDebug\\Graphics\\GL\\ShaderEdit\\Shader.cs", + "ViewState": "AQIAADcAAAAAAAAAAAAvwEUAAAAJAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T16:42:46.136Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "Image.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs", + "RelativeDocumentMoniker": "StgSharp\\Graphics\\Image.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Image.cs", + "RelativeToolTip": "StgSharp\\Graphics\\Image.cs", + "ViewState": "AQIAAEsAAAAAAAAAAAApwGEAAAAVAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T16:24:37.077Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "vec3d.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\vec3d.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Math\\Linear\\vec3d.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\vec3d.cs", + "RelativeToolTip": "StgSharpDebug\\Math\\Linear\\vec3d.cs", + "ViewState": "AQIAACIAAAAAAAAAAIAzwDIAAAAVAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:35:47.517Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "Vec4d.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vec4d.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Math\\Linear\\Vec4d.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vec4d.cs", + "RelativeToolTip": "StgSharpDebug\\Math\\Linear\\Vec4d.cs", + "ViewState": "AQIAADgAAAAAAAAAAIAzwEgAAAASAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:35:41.902Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "Vector.Normalize.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs", + "RelativeToolTip": "StgSharpDebug\\Math\\Linear\\Vector.Normalize.cs", + "ViewState": "AQIAAAIAAAAAAAAAAIAzwBIAAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:35:38.1Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "FrameAsyncThread.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs", + "RelativeToolTip": "StgSharpDebug\\Graphics\\Form\\FrameAsyncThread.cs", + "ViewState": "AQIAAEYAAAAAAAAAAAAWwFQAAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:35:34.378Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "glParamQueue.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\glParamQueue.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Logic\\glParamQueue.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\glParamQueue.cs", + "RelativeToolTip": "StgSharpDebug\\Logic\\glParamQueue.cs", + "ViewState": "AQIAAEMAAAAAAAAAAEBBwFMAAAABAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:35:29.302Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "ISSDSerializable.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs", + "RelativeToolTip": "StgSharpDebug\\Data\\Serialize\\ISSDSerializable.cs", + "ViewState": "AQIAAAQAAAAAAAAAAIA1wAsAAAAiAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:31:36.733Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "Define.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\Define.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Data\\Serialize\\Define.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\Serialize\\Define.cs", + "RelativeToolTip": "StgSharpDebug\\Data\\Serialize\\Define.cs", + "ViewState": "AQIAABsAAAAAAAAAAAAAACMAAAABAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:23:08.581Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "M128.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Data\\M128.cs", + "RelativeDocumentMoniker": "StgSharp\\Data\\M128.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Data\\M128.cs", + "RelativeToolTip": "StgSharp\\Data\\M128.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAACUAAAAGAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:19:31.288Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "M128.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\M128.cs", + "RelativeDocumentMoniker": "StgSharpDebug\\Data\\M128.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Data\\M128.cs", + "RelativeToolTip": "StgSharpDebug\\Data\\M128.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAACwAAAAFAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T14:17:33.781Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "Vector.Normalize.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Normalize.cs", + "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vector.Normalize.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vector.Normalize.cs", + "RelativeToolTip": "StgSharp\\Math\\Linear\\Vector.Normalize.cs", + "ViewState": "AQIAADUAAAAAAAAAAAAqwBMAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T13:55:13.408Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "Vec4d.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vec4d.cs", + "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\Vec4d.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\Vec4d.cs", + "RelativeToolTip": "StgSharp\\Math\\Linear\\Vec4d.cs", + "ViewState": "AQIAADgAAAAAAAAAAIAzwEgAAAAoAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T13:55:02.059Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "glParamQueue.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Logic\\glParamQueue.cs", + "RelativeDocumentMoniker": "StgSharp\\Logic\\glParamQueue.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Logic\\glParamQueue.cs", + "RelativeToolTip": "StgSharp\\Logic\\glParamQueue.cs", + "ViewState": "AQIAABUAAAAAAAAAAAAAALIAAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T13:54:10.105Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "FrameAsyncThread.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Form\\FrameAsyncThread.cs", + "RelativeDocumentMoniker": "StgSharp\\Graphics\\Form\\FrameAsyncThread.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Graphics\\Form\\FrameAsyncThread.cs", + "RelativeToolTip": "StgSharp\\Graphics\\Form\\FrameAsyncThread.cs", + "ViewState": "AQIAAEYAAAAAAAAAAAAWwFQAAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T13:53:27.533Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "vec3d.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\vec3d.cs", + "RelativeDocumentMoniker": "StgSharp\\Math\\Linear\\vec3d.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharp\\Math\\Linear\\vec3d.cs", + "RelativeToolTip": "StgSharp\\Math\\Linear\\vec3d.cs", + "ViewState": "AQIAACMAAAAAAAAAAIAzwDMAAAASAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-19T13:53:17.8Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 22, "Title": "ShowForm.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\ShowForm.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Form\\ShowForm.cs", "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\ShowForm.cs", "RelativeToolTip": "StgSharpDebug\\Graphics\\Form\\ShowForm.cs", - "ViewState": "AQIAAAYAAAAAAAAAAAAAABYAAABAAAAA", + "ViewState": "AQIAAAYAAAAAAAAAAAAAABkAAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2024-04-15T03:54:31.223Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 1, + "DocumentIndex": 23, "Title": "Form.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Form\\Form.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Form\\Form.cs", @@ -91,7 +435,7 @@ }, { "$type": "Document", - "DocumentIndex": 4, + "DocumentIndex": 26, "Title": "TimeSpanProvider.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\TimeSpanProvider.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Logic\\TimeSpanProvider.cs", @@ -103,7 +447,7 @@ }, { "$type": "Document", - "DocumentIndex": 5, + "DocumentIndex": 27, "Title": "launchSettings.json", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Properties\\launchSettings.json", "RelativeDocumentMoniker": "StgSharpDebug\\Properties\\launchSettings.json", @@ -115,7 +459,7 @@ }, { "$type": "Document", - "DocumentIndex": 2, + "DocumentIndex": 24, "Title": "TimeProvider.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Environment\\TimeProvider.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Environment\\TimeProvider.cs", @@ -127,7 +471,7 @@ }, { "$type": "Document", - "DocumentIndex": 3, + "DocumentIndex": 25, "Title": "TimeSourceProvider.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Logic\\TimeSourceProvider.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Logic\\TimeSourceProvider.cs", @@ -139,19 +483,20 @@ }, { "$type": "Document", - "DocumentIndex": 7, + "DocumentIndex": 2, "Title": "Image.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Image.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Image.cs", "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Image.cs", "RelativeToolTip": "StgSharpDebug\\Graphics\\Image.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "ViewState": "AQIAADoAAAAAAAAAAAD4v0MAAAAcAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-04-15T03:52:36.477Z" + "WhenOpened": "2024-04-15T03:52:36.477Z", + "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 9, + "DocumentIndex": 29, "Title": "MainForm.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\OEM\\MainForm.cs", "RelativeDocumentMoniker": "OEM\\MainForm.cs", @@ -163,7 +508,7 @@ }, { "$type": "Document", - "DocumentIndex": 8, + "DocumentIndex": 28, "Title": "Program.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\OEM\\Program.cs", "RelativeDocumentMoniker": "OEM\\Program.cs", @@ -175,7 +520,7 @@ }, { "$type": "Document", - "DocumentIndex": 12, + "DocumentIndex": 32, "Title": "StgSharpC.c", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpC\\StgSharpC.c", "RelativeDocumentMoniker": "StgSharpC\\StgSharpC.c", @@ -187,7 +532,7 @@ }, { "$type": "Document", - "DocumentIndex": 11, + "DocumentIndex": 31, "Title": "glEnum.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\Define\\glEnum.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\Define\\glEnum.cs", @@ -199,7 +544,7 @@ }, { "$type": "Document", - "DocumentIndex": 10, + "DocumentIndex": 30, "Title": "GLpack.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Graphics\\GL\\GLpack.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Graphics\\GL\\GLpack.cs", @@ -211,15 +556,16 @@ }, { "$type": "Document", - "DocumentIndex": 6, + "DocumentIndex": 7, "Title": "Program.cs", "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs", "RelativeDocumentMoniker": "StgSharpDebug\\Program.cs", "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u6E90\u4EE3\u7801\\StgSharpDebug\\Program.cs", "RelativeToolTip": "StgSharpDebug\\Program.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAPAAAA", + "ViewState": "AQIAAC0AAAAAAAAAAAAYwAgAAAAPAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-04-15T03:13:55.379Z" + "WhenOpened": "2024-04-15T03:13:55.379Z", + "EditorCaption": "" } ] } diff --git a/源代码/.vs/StgSharpDevelop/v17/TestStore/0/000.testlog b/源代码/.vs/StgSharpDevelop/v17/TestStore/0/000.testlog new file mode 100644 index 00000000..58d228d6 Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/v17/TestStore/0/000.testlog differ diff --git a/源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest b/源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest new file mode 100644 index 00000000..e92ede29 Binary files /dev/null and b/源代码/.vs/StgSharpDevelop/v17/TestStore/0/testlog.manifest differ diff --git a/源代码/.vs/StgSharpDevelop/v17/fileList.bin b/源代码/.vs/StgSharpDevelop/v17/fileList.bin index 8cfed989..63d46774 100644 Binary files a/源代码/.vs/StgSharpDevelop/v17/fileList.bin and b/源代码/.vs/StgSharpDevelop/v17/fileList.bin differ diff --git a/源代码/StgSharp/Data/Encode/CodeCounter.cs b/源代码/StgSharp/Data/Encode/CodeCounter.cs new file mode 100644 index 00000000..df343fc4 --- /dev/null +++ b/源代码/StgSharp/Data/Encode/CodeCounter.cs @@ -0,0 +1,100 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="CodeCounter.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using StgSharp.Data; + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; + +namespace StgSharp.Data +{ + public static class CodeSeparator + { + + public static List<(T, ulong)> CountCodeFrequency(T[] rawArray) where T : struct + { + Dictionary frequencyCollection = new Dictionary(); + + foreach (var item in rawArray) + { + if (frequencyCollection.ContainsKey(item)) + { + frequencyCollection[item] += 1; + } + else + { + frequencyCollection.Add(item, 1); + } + } + + return frequencyCollection.OrderByDescending(pair => pair.Value) + .Select(pair => (pair.Key, pair.Value)).ToList(); + } + public static unsafe T[] SeparateCode(string filePath) where T : struct + { + byte[] allByte = File.ReadAllBytes(filePath); + List rawList = new List(); + + fixed (byte* allBytePtr = allByte) + { + for (int i = 0; i < allByte.Length; i += Marshal.SizeOf()) + { + T t = new T(); + t = *(T*)(allBytePtr + i); + rawList.Add(t); + } + } + return rawList.ToArray(); + } + + public static unsafe T[] SeparateCode(byte[] stream) where T : struct + { + List rawList = new List(); + + fixed (byte* allBytePtr = stream) + { + for (int i = 0; i < stream.Length; i += Marshal.SizeOf()) + { + T t = new T(); + t = *(T*)(allBytePtr + i); + rawList.Add(t); + } + } + return rawList.ToArray(); + } + + } +} diff --git a/源代码/StgSharp/Data/Encode/EncodStream.cs b/源代码/StgSharp/Data/Encode/EncodStream.cs new file mode 100644 index 00000000..66ff9e1d --- /dev/null +++ b/源代码/StgSharp/Data/Encode/EncodStream.cs @@ -0,0 +1,82 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="EncodStream.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using StgSharp.Data; + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace StgSharpData +{ + public class EncodeStream + { + + byte[] buffer; + BitArray bufferArray; + byte count; + List data; + + public EncodeStream() + { + count = 0; + buffer = new byte[1]; + data = new List(); + bufferArray = new BitArray(8, true); + } + + public List EncodeData +=> data; + + public int Length => data.Count; + + public string Output => Encoding.UTF8.GetString(data.ToArray()); + + public void WriteBits(HuffmanKey key) where T : struct + { + BitArray bit = key.GetBitArray(); + for (int i = 0; i < bit.Count; i++) + { + if (count == 8) + { + bufferArray.CopyTo(buffer, 0); + data.Add(buffer[0]); + count = 0; + } + bufferArray[count] = bit[i]; + count++; + } + } + + } + + +} diff --git a/源代码/StgSharp/Data/Encode/Encoder.cs b/源代码/StgSharp/Data/Encode/Encoder.cs new file mode 100644 index 00000000..29978746 --- /dev/null +++ b/源代码/StgSharp/Data/Encode/Encoder.cs @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="Encoder.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using StgSharpData; + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + public static class Encode + { + + public static void Freeze( + Dictionary> indexDict + ) + where T : struct + { + foreach (var key in indexDict) + { + key.Value.Freeze(); + } + } + + } +} diff --git a/源代码/StgSharp/Data/Encode/HuffmanTree.cs b/源代码/StgSharp/Data/Encode/HuffmanTree.cs new file mode 100644 index 00000000..42e386cd --- /dev/null +++ b/源代码/StgSharp/Data/Encode/HuffmanTree.cs @@ -0,0 +1,237 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="HuffmanTree.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Xml; +using System.Xml.Linq; + +namespace StgSharp.Data +{ + public partial class HuffmanTree where T : struct + { + + HuffmanNodeList leaves; + + internal HuffmanTree(HuffmanNodeList nodeList) + { + leaves = nodeList; + } + + public HuffmanNodeList LeafList +=> leaves; + + public TreeNode Root +=> leaves.Last; + + public static HuffmanTree BuildHuffmanTree(List<(T, ulong)> metaData) + { + if (metaData.Count <= 3) + { + throw new Exception("Data is too little, no need to compress"); + } + HuffmanNodeList leaves = new HuffmanNodeList(); + HuffmanNodeList all = new HuffmanNodeList(); + + foreach (var item in metaData) + { + leaves.Add(new TreeNode(item)); + } + + + while (leaves.Count > 2) + { + TreeNode node, toMove; + if (leaves.Last._frequency < leaves.BeforeLast._frequency) + { + if (leaves.BeforeLast._frequency < leaves.OverLast._frequency) + { + //第三节点最大 + node = new TreeNode(leaves.BeforeLast, leaves.Last); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + leaves.Add(node); + } + else + { + //第二节点最大 + node = (leaves.Last._frequency < leaves.OverLast._frequency) ? + (new TreeNode(leaves.OverLast, leaves.Last)) : + (new TreeNode(leaves.Last, leaves.OverLast)); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove); + leaves.Add(node); + } + } + else + { + + if (leaves.Last._frequency < leaves.OverLast._frequency) + { + //第三节点最大 + node = new TreeNode(leaves.Last, leaves.BeforeLast); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + leaves.Add(node); + } + else + { + //第一节点最大 + node = (leaves.BeforeLast._frequency < leaves.OverLast._frequency) ? + (new TreeNode(leaves.OverLast, leaves.BeforeLast)) : + (new TreeNode(leaves.BeforeLast, leaves.OverLast)); + toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove); + toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove); + leaves.Add(node); + } + } + + leaves = new HuffmanNodeList(leaves.OrderByDescending(pair => pair.frequency) + .Select(pair => pair).ToList()); + } + + TreeNode lastOne = leaves[0]; + TreeNode lastTwo = leaves[1]; + TreeNode root = (lastOne.frequency > lastTwo.frequency) ? + (new TreeNode(lastOne, lastTwo)) : + (new TreeNode(lastTwo, lastOne)); + + all.Add(lastOne); + all.Add(lastTwo); + all.Add(root); + + leaves = all; + return new HuffmanTree(all); + } + + + } + + public class HuffmanNodeList : List> where T : struct + { + + public HuffmanNodeList() : base() + { + + } + + public HuffmanNodeList(IEnumerable> values) : base(values) + { } + + public TreeNode BeforeLast +=> this[Count - 2]; + + public TreeNode Last +=> this[Count - 1]; + + public TreeNode OverLast +=> this[Count - 3]; + + public TreeNode RemoveAndGetBeforeLast + { + get + { + TreeNode ret = this[Count - 2]; + RemoveAt(Count - 2); + return ret; + } + } + + public TreeNode RemoveAndGetLast + { + get + { + TreeNode ret = this[Count - 1]; + RemoveAt(Count - 1); + return ret; + } + } + + public TreeNode RemoveAndGetOverLast + { + get + { + TreeNode ret = this[Count - 3]; + RemoveAt(Count - 3); + return ret; + } + } + + public void Add(T element, ulong f) + { + base.Add(new TreeNode(element, f)); + } + + } + + public class TreeNode where T : struct + { + + internal ulong _frequency; + internal TreeNode _left; + internal TreeNode _right; + internal T? _value; + + internal TreeNode(TreeNode left, TreeNode right) + { + _left = left; + _right = right; + _value = null; + _frequency = left._frequency + right._frequency; + } + + public TreeNode((T, ulong) data) + { + _value = data.Item1; + _frequency = data.Item2; + + } + + public TreeNode(T? value, ulong frequncy) + { + _value = value; + _frequency = frequncy; + + } + + public ulong frequency => _frequency; + + public TreeNode Left => _left; + public TreeNode Right => _right; + + public T? Value => _value; + + } +} diff --git a/源代码/StgSharp/Data/Encode/MappingTable.cs b/源代码/StgSharp/Data/Encode/MappingTable.cs new file mode 100644 index 00000000..f8d3cf67 --- /dev/null +++ b/源代码/StgSharp/Data/Encode/MappingTable.cs @@ -0,0 +1,189 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="MappingTable.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; + +namespace StgSharp.Data +{ + public partial class HuffmanTree where T : struct + { + + public Dictionary> BuildHuffmanDictionary() + { + Dictionary> ret = new Dictionary>(); + TreeNode root = Root; + HuffmanKey key = new HuffmanKey(); + key = key.SetSide(KeySide.Right); + InternalBuildDictionary(ret, root, key); + return ret; + } + + public void InternalBuildDictionary( + Dictionary> dict, + TreeNode node, + HuffmanKey valueTemp + ) + { + HuffmanKey nativeNode = new HuffmanKey(valueTemp.bitList); + nativeNode.AddIndexLevel(); + //检查左节点 + if (node._left.Value == null) + { + //左节点不是叶子节点,继续搜索 + InternalBuildDictionary( + dict, + node._left, + nativeNode.SetSide(KeySide.Left)); + } + else + { + //左节点是叶子节点,添加值 + dict.Add(node._left.Value.Value, nativeNode.SetSide(KeySide.Left)); + } + //检查右节点 + if (node._right.Value == null) + { + //右节点不是叶子节点,继续搜索 + InternalBuildDictionary( + dict, + node._right, + nativeNode.SetSide(KeySide.Right)); + } + else + { + //右节点是叶子节点,添加值 + dict.Add(node._right.Value.Value, nativeNode.SetSide(KeySide.Right)); + } + //这里检查自己是不是叶子节点 + //但是上面已经检查过了,不需要被检查 + } + + } + + + + public class HuffmanKey where T : struct + { + + internal List bitList; + internal BitArray code; + + public HuffmanKey() + { + bitList = new List(); + bitList.Add(false); + } + + public HuffmanKey(List former) + { + bitList = new List(former); + } + + public bool IsSupported + { + get + { + return + (typeof(T) == typeof(byte)) || + (typeof(T) == typeof(uint)) || + (typeof(T) == typeof(ushort)) || + (typeof(T) == typeof(ulong)) || +#if NET7_0_OR_GREATER + typeof(T) == typeof(UInt128) || +#endif + (typeof(T) == typeof(M128)); + } + } + + public unsafe void AddIndexLevel() + { + bitList.Add(true); + } + + public void Freeze() + { + if (code != null) + { + return; + } + bitList.RemoveAt(0); + code = new BitArray(bitList.ToArray()); + } + + public BitArray GetBitArray() + { + if (code == null) + { + List list = new List(bitList); + list.RemoveAt(0); + return new BitArray(list.ToArray()); + } + return code; + } + + public unsafe byte[] GetBytes() + { + byte[] bytes = new byte[(bitList.Count / 8) + 1]; + BitArray array = new BitArray(bitList.ToArray()); + array.CopyTo(bytes, 0); + return bytes; + } + + public unsafe HuffmanKey SetSide(KeySide side) + { + HuffmanKey newKey = new HuffmanKey(bitList); + newKey.bitList[newKey.bitList.Count - 1] = side == KeySide.Left; + return newKey; + } + + public override string ToString() + { + string str = string.Empty; + foreach (var bit in bitList) + { + str += $"{bit} "; + } + return str; + } + + } + + public enum KeySide + { + Left, + Right + } + +} diff --git a/源代码/StgSharp/Data/M128.cs b/源代码/StgSharp/Data/M128.cs new file mode 100644 index 00000000..eb440110 --- /dev/null +++ b/源代码/StgSharp/Data/M128.cs @@ -0,0 +1,160 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="M128.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +#if NET5_0_OR_GREATER +using System.Runtime.Intrinsics; +#endif +using System.Text; + +namespace StgSharp.Data +{ + [StructLayout(LayoutKind.Explicit, Pack = 16)] + public unsafe struct M128 + { + [FieldOffset(0)] internal Vector4 vec; + + internal M128(Vector4 v) + { + vec = v; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ulong GetLongHash() + { + return (Read(0) % 2147483647L) * (Read(1) % 2147483647L); + } + + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public T Read(int index) where T : struct + { + fixed (Vector4* p = &vec) + { + return *(((T*)p) + index); + } + } + + public override string ToString() + { + return string.Empty; + } + + public string ToString(int sample) + { + string str = string.Empty; + for (int i = 15; i >= 0; i--) + { + str += $"{Convert.ToString(this.Read(i), sample)} "; + } + return str; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Write(int index, T value) where T : struct +#if NET8_0_OR_GREATER + , INumber +#endif + { + fixed (Vector4* p = &vec) + { + *(((T*)p) + index) = value; + } + } + +#if NET5_0_OR_GREATER + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + +#endif + } +} diff --git a/源代码/StgSharp/Data/SSD/DataHead.cs b/源代码/StgSharp/Data/SSD/DataHead.cs new file mode 100644 index 00000000..51bb36e6 --- /dev/null +++ b/源代码/StgSharp/Data/SSD/DataHead.cs @@ -0,0 +1,199 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="DataHead.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections; +using System.Collections.Generic; +using System.Numerics; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text; + +namespace StgSharp.Data +{ + + [StructLayout(LayoutKind.Explicit, Size = 16)] + public struct SSDSegmentHead + { + + [FieldOffset(0)] internal M128 data; + [FieldOffset(12)] internal byte size; + + [FieldOffset(0)] public int globalID; + [FieldOffset(4)] public int nextID; + + + [FieldOffset(8)] public int previousHash; + [FieldOffset(13)] public byte selfDefine_1; + [FieldOffset(14)] public byte selfDefine_2; + [FieldOffset(15)] public byte selfDefine_3; + + public int Size + { + get => ((int)size) + 1; + set + { + if ((value > 256) || (value < 0)) + { + throw new ArgumentOutOfRangeException(); + } + size = (byte)(value - 1); + } + } + + public unsafe byte[] GetBytes() + { + byte[] ret = new byte[16]; + fixed (Vector4* vptr = &data.vec) + { + byte* bptr = (byte*)vptr; + for (int i = 0; i < 15; i++) + { + ret[i] = *bptr; + } + } + return ret; + } + + } + + + public unsafe class SSDrawHead : IEnumerable + { + + private List freeSegments; + private string name; + + private List<(int, int)> segmentRange; + internal SSDSegmentHead _head; + + internal SSDrawHead(string name) + { + int hash; + this.name = name; + using (SHA256 sha256Hash = SHA256.Create()) + { + byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(name)); + + hash = BitConverter.ToInt32(bytes, 0); + } + _head.previousHash = hash; + segmentRange = new List<(int, int)>(); + freeSegments = new List(); + } + + public SSDrawHead() + { + segmentRange = new List<(int, int)>(); + freeSegments = new List(); + } + + public void AddSingleSegment(int id) + { + freeSegments.Add(id); + } + + public unsafe byte[] GetBytes(out int size) + { + byte[] namecode = Encoding.UTF8.GetBytes(name); + size = 16 + 4 + + (segmentRange.Count * 8) + + (freeSegments.Count * 4) + + namecode.Length; + byte[] ret = new byte[size]; + fixed (byte* bptr = ret) + { + *(SSDSegmentHead*)bptr = _head; + *(bptr + 16) = (byte)segmentRange.Count; + *(bptr + 17) = (byte)namecode.Length; + *(bptr + 18) = (byte)freeSegments.Count; + int t = 20; + for (int i = 0; i < segmentRange.Count; i++, t += 8) + { + *(int*)(bptr + t) = segmentRange[i].Item1; + *(int*)(bptr + t + 4) = segmentRange[i].Item2; + } + for (int i = 0; i < freeSegments.Count; i++, t += 4) + { + *(int*)(bptr + t) = freeSegments[i]; + } + for (int i = 0; i < namecode.Length; i++, t++) + { + *(bptr + t) = namecode[i]; + } + } + return ret; + } + + public void WriteRange(int begin, int end) + { + segmentRange.Add((begin, end)); + } + + internal void MarkSegment(int id) + { + freeSegments.Add(id); + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var tuple in segmentRange) + { + for (int i = tuple.Item1; i <= tuple.Item2; i++) + { + yield return i; + } + } + + foreach (var item in freeSegments) + { + yield return item; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var tuple in segmentRange) + { + for (int i = tuple.Item1; i <= tuple.Item2; i++) + { + yield return i; + } + } + + foreach (var item in freeSegments) + { + yield return item; + } + } + + } + +} diff --git a/源代码/StgSharp/Data/SSD/SSD.cs b/源代码/StgSharp/Data/SSD/SSD.cs new file mode 100644 index 00000000..915462a4 --- /dev/null +++ b/源代码/StgSharp/Data/SSD/SSD.cs @@ -0,0 +1,49 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="SSD.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using StgSharp.Data.FileIO; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + public partial class SSD + { + + private SSDFolder _root; + + + } + + + +} diff --git a/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs b/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs new file mode 100644 index 00000000..9a392d92 --- /dev/null +++ b/源代码/StgSharp/Data/SSD/SSDVirtualFolder.cs @@ -0,0 +1,84 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="SSDVirtualFolder.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using StgSharp.Data.FileIO; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + public class SSDFolder: SSDSerializable + { + internal string _name; + internal int _folderID; + internal List files; + internal List folders; + + public SSDFolder(string name) + { + if (name == "root") + { + throw new ArgumentNullException("Name cannot be root"); + } + _name = name; + folders = new List(); + + } + + public override byte SSDTypeCode => SerializableTypeCode.VirtualFolder; + + public override byte[] GetBytes() + { + List rawBytes =new List(); + byte[] size = new byte[5]; + List fileid = new List(); + fileid.Add(4); + foreach (var item in files) + { + fileid.Add(item.) + } + + + return rawBytes.ToArray(); + } + + public override byte[] GetBytes(out int length) + { + throw new NotImplementedException(); + } + + internal override void BuildFromByteStream(byte[] stream) + { + throw new NotImplementedException(); + } + } +} diff --git a/源代码/StgSharp/Data/SSD/SSDraw.cs b/源代码/StgSharp/Data/SSD/SSDraw.cs new file mode 100644 index 00000000..cfdeba71 --- /dev/null +++ b/源代码/StgSharp/Data/SSD/SSDraw.cs @@ -0,0 +1,253 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="SSDraw.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text; +using System.Xml.Serialization; + +namespace StgSharp.Data.FileIO +{ + public class SSDraw + { + + public const string FileType = "ssdraw"; + + public const int SegmentCapacity = 16 * 16; + + private SSDrawHead _head; + private string _name; + private SSDSegment currentSegment; + private int previousHash; + private List segments; + + public int ID + { + get { return _head._head.globalID; } + } + + public SSDraw(string name) + { + _name = name; + segments = new List(); + } + + public void CreateRawFile(string outputFolder, bool rewrite) + { + string route = + $"{(((outputFolder == string.Empty) ? " " : ($"{outputFolder}\\")))}{($"{_name}.{FileType}")}"; + if (File.Exists(route) && !rewrite) + { + throw new Exception("This SSDRAW has already existed."); + } + using (File.Create(route)) { } + using (File.Open(route, FileMode.Truncate)) { } + FileStream f = File.Open(route, FileMode.Open); + int size = 0; + f.Write(_head.GetBytes(out size), 0, size); + foreach (var _head in segments) + { + f.Write(_head.GetBytes(), 0, 18 * 16); + } + f.Close(); + } + + public static SSDraw readRaw(string route) + { + string[] routeFolders = route.Split('\\'); + if (!routeFolders.Last().Contains($".{FileType}")) + { + throw new Exception($"File to open is not a {FileType} file."); + } + + FileStream stream = File.Open(route, FileMode.Open); + return new SSDraw(string.Empty); + } + + public void WriteRaw(byte[] dataStream) + { + previousHash = BuildRawHead(0); + currentSegment = new SSDSegment(previousHash); + int t = 0; + for (int i = 0; i < dataStream.Length; i++, t++) + { + if (t == SegmentCapacity) + { + currentSegment.GetDataHash(); + currentSegment.Head.Size = 256; + currentSegment.Head.globalID = i; + segments.Add(currentSegment); + previousHash = currentSegment.GetHashCode(); + currentSegment = new SSDSegment(previousHash); + t = 0; + } + currentSegment[i] = dataStream[i]; + } + currentSegment.FillRandomBytes(t); + currentSegment.GetDataHash(); + currentSegment.Head.Size = t; + segments.Add(currentSegment); + + } + + private int BuildRawHead(int beginID) + { + SSDrawHead rawHead = new SSDrawHead(_name); + _head = rawHead; + return rawHead.GetHashCode(); + } + + } + + [StructLayout(LayoutKind.Explicit)] + public unsafe struct SSDSegment + { + + [FieldOffset(16)] public fixed byte Data[16 * 16]; + [FieldOffset(12)] public int DataHash; + [FieldOffset(0 * 16)] public SSDSegmentHead Head; + [FieldOffset(8)] public int PreviousHash; + + public SSDSegment(int previousHash) + { + this.PreviousHash = previousHash; + } + + public byte this[int index] + { + get + { + if (index > (16 * 14) - 1) + { + throw new IndexOutOfRangeException(); + } + return Data[index]; + } + + set + { + if (index > (16 * 14) - 1) + { + throw new IndexOutOfRangeException(); + } + Data[index] = value; + } + } + + public short Size => Head.size; + + public void FillRandomBytes(int begin) + { + if (begin > 255) + { + return; + } + for (int i = begin; i < 255; i++) + { + Data[i] = 0; //TODO: 使用STGSHARP内部随机数工具处理它 + } + } + + public byte[] GetBytes() + { + byte[] ret = new byte[16 * 18]; + fixed (M128* mptr = &Head.data) + { + fixed (byte* aptr = ret) + { + Vector4* vsptr = (Vector4*)mptr; + Vector4* vtptr = (Vector4*)aptr; + for (int i = 0; i < 18; i++) + { + *(vtptr + i) = *(vsptr + i); + } + } + } + + return ret; + } + + public int GetDataHash() + { + Vector4 v = Vector4.One; + fixed (M128* mptr = &Head.data) + { + Vector4* vptr = (Vector4*)mptr; + for (int i = 0; i < 16; i += 1) + { + v += (*vptr) * 31; + } + } + M128 m = new M128(v); + DataHash = m.vec.GetHashCode(); + return DataHash; + } + + public override int GetHashCode() + { + int ret = 17; + fixed (M128* mptr = &Head.data) + { + Vector4* vptr = (Vector4*)mptr; + for (int i = 0; i < 18; i++) + { + ret = (ret + (*vptr).GetHashCode()) * 31; + } + } + return ret; + } + + public unsafe T ReadData(int index) where T : struct + { + fixed (byte* bptr = Data) + { + T* tptr = (T*)bptr; + return *(tptr + index); + } + } + public unsafe void WriteData(int index, T value) where T : struct + { + fixed (byte* bptr = Data) + { + T* tptr = (T*)bptr; + *(tptr + index) = value; + } + } + + } + +} diff --git a/源代码/StgSharp/Data/Serialize/BitArray.cs b/源代码/StgSharp/Data/Serialize/BitArray.cs new file mode 100644 index 00000000..a6dcf158 --- /dev/null +++ b/源代码/StgSharp/Data/Serialize/BitArray.cs @@ -0,0 +1,153 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="BitArray.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace StgSharp.Data +{ + public static partial class Serializer + { + + public static void Deserialize(byte[] stream, out BitArray target) + { + List boolStream = new List(4 * stream.Length); + int i = 0, count = 0; + foreach (byte b in stream) + { + uint raw = b; + for (i = 0; i < 4; i++) + { + switch (raw & 0b11) + { + case (uint)BoolMap.True_0: + boolStream.Add(true); + break; + case (uint)BoolMap.False_0: + boolStream.Add(false); + break; + case (uint)BoolMap.None_0: + goto end; + default: + throw new Exception(); + } + raw >>= 2; + count++; + continue; + end: + { + break; + } + } + } + while (boolStream.Count > count) + { + boolStream.RemoveAt(count); + } + target = new BitArray(boolStream.ToArray()); + } + public static byte[] Serialize(BitArray bits) + { + int size = (bits.Count / 4) + 1; + List ret = new List(size); + int count = 0, total = 0; byte temp = new byte(); + for (int i = 0; i < bits.Count; i++) + { + if (count == 4) + { + ret.Add(temp); + count = 0; + temp = 0; + total++; + } + switch (count) + { + case 0: + temp |= (byte)(bits[i] ? BoolMap.True_0 : BoolMap.False_0); + break; + case 1: + temp |= (byte)(bits[i] ? BoolMap.True_1 : BoolMap.False_1); + break; + case 2: + temp |= (byte)(bits[i] ? BoolMap.True_2 : BoolMap.False_2); + break; + case 3: + temp |= (byte)(bits[i] ? BoolMap.True_3 : BoolMap.False_3); + break; + default: + throw new Exception(); + } + count++; + } + for (; count < 4; count++) + { + switch (count) + { + case 1: + temp |= (byte)BoolMap.None_1; + break; + case 2: + temp |= (byte)BoolMap.None_2; + break; + case 3: + temp |= (byte)BoolMap.None_3; + break; + default: + throw new Exception(); + } + continue; + } + ret.Add(temp); + return ret.ToArray(); + } + + } + + + internal enum BoolMap : byte + { + False_0 = 0b00000010, + True_0 = 0b00000001, + None_0 = 0b00000011, + False_1 = 0b00001000, + True_1 = 0b00000100, + None_1 = 0b00001100, + False_2 = 0b00100000, + True_2 = 0b00010000, + None_2 = 0b00110000, + False_3 = 0b10000000, + True_3 = 0b01000000, + None_3 = 0b11000000, + } +} diff --git a/源代码/StgSharp/Data/Serialize/Define.cs b/源代码/StgSharp/Data/Serialize/Define.cs new file mode 100644 index 00000000..1e8949c7 --- /dev/null +++ b/源代码/StgSharp/Data/Serialize/Define.cs @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="Define.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + + /// + /// A class contains a sets of methods to serialize several types + /// + public static partial class Serializer + { + + + } +} diff --git a/源代码/StgSharp/Data/Serialize/Dictionary.cs b/源代码/StgSharp/Data/Serialize/Dictionary.cs new file mode 100644 index 00000000..1d1a3e2c --- /dev/null +++ b/源代码/StgSharp/Data/Serialize/Dictionary.cs @@ -0,0 +1,97 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="Dictionary.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace StgSharp.Data +{ + + /// + /// A class contains a sets of methods to serialize several types + /// + public static partial class Serializer + { + /**/ + + public static void Deserialize(byte[] data, out Dictionary dict) + { + dict = new Dictionary(); + int stat = 0; byte key = 0; + byte[] raw = new byte[0]; + foreach (var b in data) + { + switch (stat) + { + case 0: //getting key + if (raw.Length != 0) + { + BitArray bits; + Deserialize(raw, out bits); + dict.Add(key, bits); + } + key = b; + stat -= 1; + break; + case -1: //getting length + raw = new byte[b]; + stat = b; + break; + default: + raw[raw.Length - stat] = b; + stat--; + break; + } + } + } + + /**/ + public static byte[] Serialize(Dictionary table) + { + using (var stream = new MemoryStream()) + { + foreach (var pair in table) + { + stream.WriteByte(pair.Key); + + byte[] keyCode = Serialize(pair.Value); + stream.WriteByte((byte)keyCode.Length); + + stream.Write(keyCode, 0, keyCode.Length); + } + return stream.ToArray(); + } + } + + } +} diff --git a/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs b/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs new file mode 100644 index 00000000..88be5a20 --- /dev/null +++ b/源代码/StgSharp/Data/Serialize/ISSDSerializable.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StgSharp.Data +{ + + public abstract class SSDSerializable + { + public abstract byte SSDTypeCode { get; } + + public abstract byte[] GetBytes(); + + public abstract byte[] GetBytes(out int length); + + internal abstract void BuildFromByteStream(byte[] stream); + } + + public class SerializableTypeCode + { + public const byte IndexTable = 1; + public const byte Image = 2; + public const byte Audio = 3; + public const byte Shader = 4; + public const byte Text = 5; + public const byte RawData = 6; + public const byte VirtualFolder = 7; + } + + public static partial class Serializer + { + public static byte[] Serialize(SSDSerializable serializableObject) + { + return serializableObject.GetBytes(); + } + + public static T Deserialize(byte[] stream)where T : SSDSerializable + { + T serializableObject = (T)Activator.CreateInstance(); + serializableObject.BuildFromByteStream(stream); + return serializableObject; + } + } +} \ No newline at end of file diff --git a/源代码/StgSharp/Environment/GlobalSetting.cs b/源代码/StgSharp/Environment/GlobalSetting.cs index 6bc466e4..3e0cda89 100644 --- a/源代码/StgSharp/Environment/GlobalSetting.cs +++ b/源代码/StgSharp/Environment/GlobalSetting.cs @@ -31,7 +31,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Runtime.CompilerServices; +using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; @@ -40,8 +42,28 @@ namespace StgSharp public static unsafe partial class StgSharp { + static byte[] _currentHash; + private static bool _inited; + public static byte[] CurrentAssemblyHash + { + get + { + if (_currentHash == null) + { + string route = Assembly.GetExecutingAssembly().Location; + string time = DateTime.UtcNow.ToString(); + using (SHA256 sh = SHA256.Create()) + { + byte[] bytes = Encoding.UTF8.GetBytes(route); + _currentHash = sh.ComputeHash(bytes); + } + } + return _currentHash; + } + } + /// /// Init an instance of OpenGL program, /// This method should be called before any other StgSharp api. @@ -76,5 +98,5 @@ namespace StgSharp } - } + }//------------------------end of class------------------------// } \ No newline at end of file diff --git a/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs b/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs index e609648d..94aa0181 100644 --- a/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs +++ b/源代码/StgSharp/Graphics/Form/FrameAsyncThread.cs @@ -28,6 +28,7 @@ // //----------------------------------------------------------------------- //----------------------------------------------------------------------- +using StgSharp.Data; using StgSharp.Math; using System; diff --git a/源代码/StgSharp/Graphics/GL/ShaderEdit/Shader.cs b/源代码/StgSharp/Graphics/GL/ShaderEdit/Shader.cs index 920c8d9f..05d8648c 100644 --- a/源代码/StgSharp/Graphics/GL/ShaderEdit/Shader.cs +++ b/源代码/StgSharp/Graphics/GL/ShaderEdit/Shader.cs @@ -29,6 +29,7 @@ //----------------------------------------------------------------------- //----------------------------------------------------------------------- using StgSharp; +using StgSharp.Data; using System; using System.Collections.Generic; @@ -56,13 +57,15 @@ namespace StgSharp.Graphics } } - public class Shader + public class Shader : SSDSerializable { private readonly IntPtr context; internal readonly glHandleSet handle; public readonly ShaderType type; + public override byte SSDTypeCode => SerializableTypeCode.Shader; + internal unsafe Shader(glHandleSet handle, ShaderType usage) { this.handle = handle; @@ -97,6 +100,21 @@ namespace StgSharp.Graphics return $"This is a {type} shader, its shader handles are {handle.ToString()}."; } + //TODO shader 的序列化究极麻烦,原因是shader的架构问题 + public override byte[] GetBytes() + { + throw new NotImplementedException(); + } + + public override byte[] GetBytes(out int length) + { + throw new NotImplementedException(); + } + + internal override void BuildFromByteStream(byte[] stream) + { + throw new NotImplementedException(); + } } public class ShaderProgram diff --git a/源代码/StgSharp/Graphics/Image.cs b/源代码/StgSharp/Graphics/Image.cs index 18732d05..4101c533 100644 --- a/源代码/StgSharp/Graphics/Image.cs +++ b/源代码/StgSharp/Graphics/Image.cs @@ -28,6 +28,7 @@ // //----------------------------------------------------------------------- //----------------------------------------------------------------------- +using StgSharp.Data; using StgSharp.Math; using System; @@ -40,11 +41,11 @@ using System.Threading.Tasks; namespace StgSharp.Graphics { - public class Image + public class Image : SSDSerializable { internal ImageInfo info; - + internal byte[] data; internal glHandle pixelArrayHandle; internal Image(ImageInfo information) @@ -64,12 +65,85 @@ namespace StgSharp.Graphics public int Width => info.width; + public override byte SSDTypeCode => SerializableTypeCode.Image; + ~Image() { - Marshal.FreeHGlobal(info.pixelPtr); + if (info.pixelPtr!= IntPtr.Zero) + { + Marshal.FreeHGlobal(info.pixelPtr); + } } + public unsafe override byte[] GetBytes() + { + if (data == null) + { + int size = Width * Height * Channel + 1 + 8; + data = new byte[size]; + int i = 0; + fixed (byte* bptr = data) + { + *(int*)bptr = Width; + *(int*)(bptr + 4) = Height; + *(bptr + 8) = (byte)Channel; + byte* pptr = bptr; + for (; i < size; i += 16) + { + *(M128*)(pptr + i) = *(M128*)(info.pixelPtr + i); + } + for (; i < size; i++) + { + *(pptr + i) = *(byte*)(info.pixelPtr + i); + } + } + } + Marshal.FreeHGlobal(info.pixelPtr); + info.pixelPtr = IntPtr.Zero; + return data; + } + public unsafe override byte[] GetBytes(out int length) + { + if (data == null) + { + int size = Width * Height * Channel + 1 + 8; + data = new byte[size]; + int i = 0; + fixed (byte* bptr = data) + { + *(int*)bptr = Width; + *(int*)(bptr + 4) = Height; + *(bptr + 8) = (byte)Channel; + byte* pptr = bptr; + for (; i < size; i += 16) + { + *(M128*)(pptr + i) = *(M128*)(info.pixelPtr + i); + } + for (; i < size; i++) + { + *(pptr + i) = *(byte*)(info.pixelPtr + i); + } + } + } + length = data.Length; + Marshal.FreeHGlobal(info.pixelPtr); + info.pixelPtr = IntPtr.Zero; + return data; + } + + internal unsafe override void BuildFromByteStream(byte[] stream) + { + info = new ImageInfo(); + fixed (byte* bptr = stream) + { + info.width = *(int*)bptr; + info.height = *(int*)(bptr + 4); + info.channel = *(bptr + 8); + info.pixelPtr = IntPtr.Zero; + } + data = stream; + } } [StructLayout(LayoutKind.Sequential)] diff --git a/源代码/StgSharp/Logic/glParamQueue.cs b/源代码/StgSharp/Logic/glParamQueue.cs index e6e18259..f2ecf27f 100644 --- a/源代码/StgSharp/Logic/glParamQueue.cs +++ b/源代码/StgSharp/Logic/glParamQueue.cs @@ -28,6 +28,7 @@ // //----------------------------------------------------------------------- //----------------------------------------------------------------------- +using StgSharp.Data; using StgSharp.Graphics; using StgSharp.Math; diff --git a/源代码/StgSharp/Math/Linear/Vector.Normalize.cs b/源代码/StgSharp/Math/Linear/Vector.Normalize.cs index 03b57233..5acaf89f 100644 --- a/源代码/StgSharp/Math/Linear/Vector.Normalize.cs +++ b/源代码/StgSharp/Math/Linear/Vector.Normalize.cs @@ -1,4 +1,5 @@ -using StgSharp.Math; +using StgSharp.Data; +using StgSharp.Math; using System; using System.Collections.Generic; diff --git a/源代码/StgSharp/Math/Linear/vec3d.cs b/源代码/StgSharp/Math/Linear/vec3d.cs index 9775bae6..f87551c5 100644 --- a/源代码/StgSharp/Math/Linear/vec3d.cs +++ b/源代码/StgSharp/Math/Linear/vec3d.cs @@ -29,6 +29,7 @@ //----------------------------------------------------------------------- //----------------------------------------------------------------------- using StgSharp.Controlling; +using StgSharp.Data; using System; using System.Numerics; diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs index 99c004e1..7e3a5bf9 100644 --- a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs +++ b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+98aa111a299366695c7ec9bbfdce90445050afa2")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharp")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharp")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt index 276f9820..8ae4aa98 100644 --- a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt +++ b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt @@ -34,3 +34,4 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.dll D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.xml D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\ref\StgSharp.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\StgSharp.sourcelink.json diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs index aff208df..77fdab15 100644 --- a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs +++ b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+98aa111a299366695c7ec9bbfdce90445050afa2")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/编码器/.vs/ProjectEvaluation/stgsharpdataencoder.metadata.v7.bin b/编码器/.vs/ProjectEvaluation/stgsharpdataencoder.metadata.v7.bin new file mode 100644 index 00000000..9a08e6d6 Binary files /dev/null and b/编码器/.vs/ProjectEvaluation/stgsharpdataencoder.metadata.v7.bin differ diff --git a/编码器/.vs/ProjectEvaluation/stgsharpdataencoder.projects.v7.bin b/编码器/.vs/ProjectEvaluation/stgsharpdataencoder.projects.v7.bin new file mode 100644 index 00000000..28470958 Binary files /dev/null and b/编码器/.vs/ProjectEvaluation/stgsharpdataencoder.projects.v7.bin differ diff --git a/编码器/.vs/StgSharpDataEncoder/DesignTimeBuild/.dtbcache.v2 b/编码器/.vs/StgSharpDataEncoder/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 00000000..9cc04063 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/DesignTimeBuild/.dtbcache.v2 differ diff --git a/编码器/.vs/StgSharpDataEncoder/FileContentIndex/846fa1e2-ea3e-4d8d-b5f0-fa162034dc84.vsidx b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/846fa1e2-ea3e-4d8d-b5f0-fa162034dc84.vsidx new file mode 100644 index 00000000..87c4f113 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/846fa1e2-ea3e-4d8d-b5f0-fa162034dc84.vsidx differ diff --git a/编码器/.vs/StgSharpDataEncoder/FileContentIndex/a1d987bc-df8b-4a50-8abc-62443272313b.vsidx b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/a1d987bc-df8b-4a50-8abc-62443272313b.vsidx new file mode 100644 index 00000000..cd5c7e62 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/a1d987bc-df8b-4a50-8abc-62443272313b.vsidx differ diff --git a/编码器/.vs/StgSharpDataEncoder/FileContentIndex/b297b6c6-eeb0-488a-87cd-1bb2f79a0dd0.vsidx b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/b297b6c6-eeb0-488a-87cd-1bb2f79a0dd0.vsidx new file mode 100644 index 00000000..d4dd86a8 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/b297b6c6-eeb0-488a-87cd-1bb2f79a0dd0.vsidx differ diff --git a/编码器/.vs/StgSharpDataEncoder/FileContentIndex/dba4bf63-4763-4ede-96d6-6fd44067c061.vsidx b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/dba4bf63-4763-4ede-96d6-6fd44067c061.vsidx new file mode 100644 index 00000000..1ff06601 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/dba4bf63-4763-4ede-96d6-6fd44067c061.vsidx differ diff --git a/编码器/.vs/StgSharpDataEncoder/FileContentIndex/e5040093-5b0a-444b-8d13-7fb0541b8e8c.vsidx b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/e5040093-5b0a-444b-8d13-7fb0541b8e8c.vsidx new file mode 100644 index 00000000..a1dc7fb7 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/FileContentIndex/e5040093-5b0a-444b-8d13-7fb0541b8e8c.vsidx differ diff --git a/编码器/.vs/StgSharpDataEncoder/v17/.futdcache.v2 b/编码器/.vs/StgSharpDataEncoder/v17/.futdcache.v2 new file mode 100644 index 00000000..5e3c34e6 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/v17/.futdcache.v2 differ diff --git a/编码器/.vs/StgSharpDataEncoder/v17/.suo b/编码器/.vs/StgSharpDataEncoder/v17/.suo new file mode 100644 index 00000000..90384cf1 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/v17/.suo differ diff --git a/编码器/.vs/StgSharpDataEncoder/v17/DocumentLayout.json b/编码器/.vs/StgSharpDataEncoder/v17/DocumentLayout.json new file mode 100644 index 00000000..3d1f15b6 --- /dev/null +++ b/编码器/.vs/StgSharpDataEncoder/v17/DocumentLayout.json @@ -0,0 +1,389 @@ +{ + "Version": 1, + "WorkspaceRootPath": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{E8A7C475-2369-4673-B299-9BFDE38B950D}|SSD_Test\\SSD_Test.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\ssd_test\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{E8A7C475-2369-4673-B299-9BFDE38B950D}|SSD_Test\\SSD_Test.csproj|solutionrelative:ssd_test\\unittest1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\serialize\\dictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\serialize\\dictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\serialize\\bitarray.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\serialize\\bitarray.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\serialize\\define.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\datahead.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\ssdvirtualfolder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\ssdraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\ssd\\ssd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdataencoder\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|solutionrelative:stgsharpdataencoder\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\277ebbdb2ac3180de0b395abf26fa119f9237060f3f99abab1db1856af595784\\src\\libraries\\System.Private.CoreLib\\src\\System\\IO\\FileStream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\eed1b5a8902320029f9f1eacc29f389b1a0dd3f3355034cd772e7711e1e87015\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentNullException.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\m128.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\ab28f4528ca6ae3323ecb0ad0c3b7a5133f06150c7cb111d8e93c5c75ccf69c0\\src\\libraries\\System.Private.CoreLib\\src\\Microsoft\\Win32\\SafeHandles\\SafeFileHandle.Windows.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\db4ee48f9d1e20594f8d2cf24d9fc3b958a59247470a3fbbc2217fa5db66557c\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentException.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\codecounter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\codecounter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\stgsharpdata.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\stgsharpdata.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\encoder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\encoder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\encodstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\encodstream.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\huffmantree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\huffmantree.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdata\\encode\\mappingtable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{B33F35F1-0A92-4D72-B334-FE0565F64BF7}|StgSharpData\\StgSharpData.csproj|solutionrelative:stgsharpdata\\encode\\mappingtable.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\dfc28918b9358d37c54c60ad664463ed8a972dcae4463fac44f24f23df85a7d3\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\List.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\2404c67f225fd1494f16ea63187cd66076bb6984cdb51f12c4b867b5c7549ffd\\src\\libraries\\System.Collections\\src\\System\\Collections\\BitArray.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|d:\\nitloadindustry\\\u7814\u7A76\u9879\u76EE\\1-flagship\\th2020\\projectfile\\\u7F16\u7801\u5668\\stgsharpdataencoder\\stgsharpdataencoder.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|", + "RelativeMoniker": "D:0:0:{F89AE661-900E-40C1-9A18-930BE72754A0}|StgSharpDataEncoder\\StgSharpDataEncoder.csproj|solutionrelative:stgsharpdataencoder\\stgsharpdataencoder.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|" + }, + { + "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\4b7167f88c9b9527ae2801a410766909469a3a946bb9b8ec28cc2b0d9bd17ec8\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\Dictionary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 197, + "SelectedChildIndex": 19, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "BitArray.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\BitArray.cs", + "RelativeDocumentMoniker": "StgSharpData\\Serialize\\BitArray.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\BitArray.cs", + "RelativeToolTip": "StgSharpData\\Serialize\\BitArray.cs", + "ViewState": "AQIAADYAAAAAAAAAAAAswGUAAAAUAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T12:46:55.9Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Dictionary.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Dictionary.cs", + "RelativeDocumentMoniker": "StgSharpData\\Serialize\\Dictionary.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Dictionary.cs", + "RelativeToolTip": "StgSharpData\\Serialize\\Dictionary.cs", + "ViewState": "AQIAACIAAAAAAAAAAAAswDoAAAAzAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T10:08:12.032Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "Define.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Define.cs", + "RelativeDocumentMoniker": "StgSharpData\\Serialize\\Define.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Serialize\\Define.cs", + "RelativeToolTip": "StgSharpData\\Serialize\\Define.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T10:06:53.321Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "DataHead.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\DataHead.cs", + "RelativeDocumentMoniker": "StgSharpData\\SSD\\DataHead.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\DataHead.cs", + "RelativeToolTip": "StgSharpData\\SSD\\DataHead.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAABUAAAAiAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T09:42:55.32Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "ArgumentNullException.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\eed1b5a8902320029f9f1eacc29f389b1a0dd3f3355034cd772e7711e1e87015\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentNullException.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\eed1b5a8902320029f9f1eacc29f389b1a0dd3f3355034cd772e7711e1e87015\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentNullException.cs", + "ViewState": "AQIAAEoAAAAAAAAAAAAwwFYAAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T01:34:56.102Z" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "SSDVirtualFolder.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDVirtualFolder.cs", + "RelativeDocumentMoniker": "StgSharpData\\SSD\\SSDVirtualFolder.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDVirtualFolder.cs", + "RelativeToolTip": "StgSharpData\\SSD\\SSDVirtualFolder.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T01:07:23.53Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "SSD.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSD.cs", + "RelativeDocumentMoniker": "StgSharpData\\SSD\\SSD.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSD.cs", + "RelativeToolTip": "StgSharpData\\SSD\\SSD.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-18T01:06:01.434Z" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "FileStream.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\277ebbdb2ac3180de0b395abf26fa119f9237060f3f99abab1db1856af595784\\src\\libraries\\System.Private.CoreLib\\src\\System\\IO\\FileStream.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\277ebbdb2ac3180de0b395abf26fa119f9237060f3f99abab1db1856af595784\\src\\libraries\\System.Private.CoreLib\\src\\System\\IO\\FileStream.cs", + "ViewState": "AQIAAD4BAAAAAAAAAAAywEgBAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-17T17:21:17.813Z" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "Title": "SafeFileHandle.Windows.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\ab28f4528ca6ae3323ecb0ad0c3b7a5133f06150c7cb111d8e93c5c75ccf69c0\\src\\libraries\\System.Private.CoreLib\\src\\Microsoft\\Win32\\SafeHandles\\SafeFileHandle.Windows.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\ab28f4528ca6ae3323ecb0ad0c3b7a5133f06150c7cb111d8e93c5c75ccf69c0\\src\\libraries\\System.Private.CoreLib\\src\\Microsoft\\Win32\\SafeHandles\\SafeFileHandle.Windows.cs", + "ViewState": "AQIAAGgAAAAAAAAAAAAkwHEAAAAQAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-17T17:14:38.477Z" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "Title": "ArgumentException.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\db4ee48f9d1e20594f8d2cf24d9fc3b958a59247470a3fbbc2217fa5db66557c\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentException.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\db4ee48f9d1e20594f8d2cf24d9fc3b958a59247470a3fbbc2217fa5db66557c\\src\\libraries\\System.Private.CoreLib\\src\\System\\ArgumentException.cs", + "ViewState": "AQIAAHcAAAAAAAAAAAAkwIAAAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-17T17:13:42.642Z" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "Title": "StgSharpData.csproj", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\StgSharpData.csproj", + "RelativeDocumentMoniker": "StgSharpData\\StgSharpData.csproj", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\StgSharpData.csproj", + "RelativeToolTip": "StgSharpData\\StgSharpData.csproj", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAEAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", + "WhenOpened": "2024-04-17T14:28:55.587Z" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "SSDraw.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDraw.cs", + "RelativeDocumentMoniker": "StgSharpData\\SSD\\SSDraw.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\SSD\\SSDraw.cs", + "RelativeToolTip": "StgSharpData\\SSD\\SSDraw.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAADQAAAAnAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-16T18:46:55.737Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "List.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\dfc28918b9358d37c54c60ad664463ed8a972dcae4463fac44f24f23df85a7d3\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\List.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\dfc28918b9358d37c54c60ad664463ed8a972dcae4463fac44f24f23df85a7d3\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\List.cs", + "ViewState": "AQIAAJcAAAAAAAAAAAAkwKAAAAAQAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-16T17:37:25.295Z" + }, + { + "$type": "Document", + "DocumentIndex": 21, + "Title": "BitArray.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\2404c67f225fd1494f16ea63187cd66076bb6984cdb51f12c4b867b5c7549ffd\\src\\libraries\\System.Collections\\src\\System\\Collections\\BitArray.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\2404c67f225fd1494f16ea63187cd66076bb6984cdb51f12c4b867b5c7549ffd\\src\\libraries\\System.Collections\\src\\System\\Collections\\BitArray.cs", + "ViewState": "AQIAANwCAAAAAAAAAAAlwOgCAAAUAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-16T16:09:16.853Z" + }, + { + "$type": "Document", + "DocumentIndex": 17, + "Title": "EncodStream.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\EncodStream.cs", + "RelativeDocumentMoniker": "StgSharpData\\Encode\\EncodStream.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\EncodStream.cs", + "RelativeToolTip": "StgSharpData\\Encode\\EncodStream.cs", + "ViewState": "AQIAABQAAAAAAAAAAAAcwCQAAAAbAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-16T15:27:19.626Z" + }, + { + "$type": "Document", + "DocumentIndex": 16, + "Title": "Encoder.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\Encoder.cs", + "RelativeDocumentMoniker": "StgSharpData\\Encode\\Encoder.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\Encoder.cs", + "RelativeToolTip": "StgSharpData\\Encode\\Encoder.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAuwAkAAAAeAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-16T03:56:48.034Z" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "Title": "MappingTable.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\MappingTable.cs", + "RelativeDocumentMoniker": "StgSharpData\\Encode\\MappingTable.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\MappingTable.cs", + "RelativeToolTip": "StgSharpData\\Encode\\MappingTable.cs", + "ViewState": "AQIAAFYAAAAAAAAAAIAywGgAAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-16T03:16:42.994Z" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "Dictionary.cs", + "DocumentMoniker": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\4b7167f88c9b9527ae2801a410766909469a3a946bb9b8ec28cc2b0d9bd17ec8\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\Dictionary.cs", + "ToolTip": "C:\\Users\\Nitlo\\AppData\\Local\\SourceServer\\4b7167f88c9b9527ae2801a410766909469a3a946bb9b8ec28cc2b0d9bd17ec8\\src\\libraries\\System.Private.CoreLib\\src\\System\\Collections\\Generic\\Dictionary.cs", + "ViewState": "AQIAABECAAAAAAAAAAAxwCcCAAAcAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-15T19:40:43.44Z" + }, + { + "$type": "Document", + "DocumentIndex": 22, + "Title": "StgSharpDataEncoder", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\StgSharpDataEncoder.csproj", + "RelativeDocumentMoniker": "StgSharpDataEncoder\\StgSharpDataEncoder.csproj", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\StgSharpDataEncoder.csproj", + "RelativeToolTip": "StgSharpDataEncoder\\StgSharpDataEncoder.csproj", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", + "WhenOpened": "2024-04-15T17:28:44.507Z" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "UnitTest1.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\SSD_Test\\UnitTest1.cs", + "RelativeDocumentMoniker": "SSD_Test\\UnitTest1.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\SSD_Test\\UnitTest1.cs", + "RelativeToolTip": "SSD_Test\\UnitTest1.cs", + "ViewState": "AQIAAAMAAAAAAAAAAAAAACcAAAAqAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-15T08:44:36.91Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, + "Title": "CodeCounter.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\CodeCounter.cs", + "RelativeDocumentMoniker": "StgSharpData\\Encode\\CodeCounter.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\CodeCounter.cs", + "RelativeToolTip": "StgSharpData\\Encode\\CodeCounter.cs", + "ViewState": "AQIAAAEAAAAAAAAAAIAzwBEAAAAdAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-15T07:59:54.642Z" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "Title": "M128.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\M128.cs", + "RelativeDocumentMoniker": "StgSharpData\\M128.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\M128.cs", + "RelativeToolTip": "StgSharpData\\M128.cs", + "ViewState": "AQIAACEAAAAAAAAAAAAgwDUAAAAzAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-15T06:53:39.399Z" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "HuffmanTree.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\HuffmanTree.cs", + "RelativeDocumentMoniker": "StgSharpData\\Encode\\HuffmanTree.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpData\\Encode\\HuffmanTree.cs", + "RelativeToolTip": "StgSharpData\\Encode\\HuffmanTree.cs", + "ViewState": "AQIAABQAAAAAAAAAAAArwHcAAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-15T06:52:09.552Z" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "Program.cs", + "DocumentMoniker": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\Program.cs", + "RelativeDocumentMoniker": "StgSharpDataEncoder\\Program.cs", + "ToolTip": "D:\\NitloadIndustry\\\u7814\u7A76\u9879\u76EE\\1-Flagship\\TH2020\\ProjectFile\\\u7F16\u7801\u5668\\StgSharpDataEncoder\\Program.cs", + "RelativeToolTip": "StgSharpDataEncoder\\Program.cs", + "ViewState": "AQIAADQAAAAAAAAAAIAzwEcAAAAgAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-04-15T06:51:40.74Z" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/编码器/.vs/StgSharpDataEncoder/v17/TestStore/0/004.testlog b/编码器/.vs/StgSharpDataEncoder/v17/TestStore/0/004.testlog new file mode 100644 index 00000000..ce1aea81 Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/v17/TestStore/0/004.testlog differ diff --git a/编码器/.vs/StgSharpDataEncoder/v17/TestStore/0/testlog.manifest b/编码器/.vs/StgSharpDataEncoder/v17/TestStore/0/testlog.manifest new file mode 100644 index 00000000..35dd20eb Binary files /dev/null and b/编码器/.vs/StgSharpDataEncoder/v17/TestStore/0/testlog.manifest differ diff --git a/编码器/SSD_Test/SSD_Test.csproj b/编码器/SSD_Test/SSD_Test.csproj new file mode 100644 index 00000000..90d59ce9 --- /dev/null +++ b/编码器/SSD_Test/SSD_Test.csproj @@ -0,0 +1,27 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + + diff --git a/编码器/SSD_Test/UnitTest1.cs b/编码器/SSD_Test/UnitTest1.cs new file mode 100644 index 00000000..5260e8ce --- /dev/null +++ b/编码器/SSD_Test/UnitTest1.cs @@ -0,0 +1,64 @@ +using StgSharp.Data; + +using System.Collections; +using System.Text; + +namespace SSD_Test +{ + [TestClass] + public class UnitTest1 + { + //[TestMethod] + public void TestCodeSeparate() + { + byte[] array = CodeSeparator.SeparateCode( + Encoding.UTF8.GetBytes( + "aewgyfhvbjaegfvbzgfaehdfkkdgshfskfgdsbvekawhvfbskgfhvzsdhgfhvsbdfhvdszbkgvhsbzvhvfsdvsdgfvhbdhvjeagfvshvghsf")); + List<(byte, ulong)> list = CodeSeparator.CountCodeFrequency(array); + foreach (var i in list) + { + Console.WriteLine($"{i.Item1}\t{i.Item2}"); + } + + Console.WriteLine(); + Console.WriteLine(); + + HuffmanTree tree = HuffmanTree.BuildHuffmanTree(list); + foreach (var i in tree.LeafList) + { + Console.WriteLine($"{i.Value}\t{i.frequency}"); + } + + } + + [TestMethod] + public void TestIDenum() + { + Dictionary test = new Dictionary(); + for (int i = 101; i < 111; i++) + { + byte[] barray = [(byte)i]; + test.Add((byte)i, new BitArray(barray)); + } + Console.WriteLine("-------------------------------"); + byte[] newbytes = Serializer.Serialize(test); + foreach (var item in newbytes) + { + Console.Write(item); + Console.Write("\t"); + } + Console.WriteLine("\n--------------------------------"); + Dictionary testOut; + Serializer.Deserialize(newbytes,out testOut); + foreach (var item in testOut) + { + Console.Write($"{item.Key}\t"); + foreach (var b in item.Value) + { + Console.Write($"{(bool)b}\t"); + } + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git a/编码器/SSD_Test/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/编码器/SSD_Test/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 00000000..2217181c --- /dev/null +++ b/编码器/SSD_Test/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.AssemblyInfo.cs b/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.AssemblyInfo.cs new file mode 100644 index 00000000..c1c39326 --- /dev/null +++ b/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("SSD_Test")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")] +[assembly: System.Reflection.AssemblyProductAttribute("SSD_Test")] +[assembly: System.Reflection.AssemblyTitleAttribute("SSD_Test")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.GlobalUsings.g.cs b/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.GlobalUsings.g.cs new file mode 100644 index 00000000..a1f6d1a8 --- /dev/null +++ b/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.GlobalUsings.g.cs @@ -0,0 +1,9 @@ +// +global using global::Microsoft.VisualStudio.TestTools.UnitTesting; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.csproj.FileListAbsolute.txt b/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.csproj.FileListAbsolute.txt new file mode 100644 index 00000000..84532f84 --- /dev/null +++ b/编码器/SSD_Test/obj/Debug/net8.0/SSD_Test.csproj.FileListAbsolute.txt @@ -0,0 +1,230 @@ +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\CoverletSourceRootsMapping_SSD_Test +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\testhost.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\testhost.exe +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.AdapterUtilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.deps.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.runtimeconfig.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\SSD_Test.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Newtonsoft.Json.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\NuGet.Frameworks.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.AssemblyReference.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.GeneratedMSBuildEditorConfig.editorconfig +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfoInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfo.cs +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.CoreCompileInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.sourcelink.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.Up2Date +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\refint\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\SSD_Test.genruntimeconfig.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\SSD_Test\obj\Debug\net8.0\ref\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\CoverletSourceRootsMapping_SSD_Test +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\testhost.exe +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\testhost.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.AdapterUtilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.deps.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.runtimeconfig.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\SSD_Test.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Newtonsoft.Json.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\NuGet.Frameworks.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.AssemblyReference.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.GeneratedMSBuildEditorConfig.editorconfig +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfoInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.AssemblyInfo.cs +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.CoreCompileInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.sourcelink.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.csproj.Up2Date +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\refint\SSD_Test.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\SSD_Test.genruntimeconfig.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\SSD_Test\obj\Debug\net8.0\ref\SSD_Test.dll diff --git a/编码器/StgSharpData/Encode/CodeCounter.cs b/编码器/StgSharpData/Encode/CodeCounter.cs new file mode 100644 index 00000000..aea6645f --- /dev/null +++ b/编码器/StgSharpData/Encode/CodeCounter.cs @@ -0,0 +1,70 @@ +using StgSharp.Data; + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; + +namespace StgSharp.Data +{ + public static class CodeSeparator + { + public static unsafe T[] SeparateCode(string filePath) where T : struct + { + byte[] allByte = File.ReadAllBytes(filePath); + List rawList = new List(); + + fixed (byte* allBytePtr = allByte) + { + for (int i = 0; i < allByte.Length; i += Marshal.SizeOf()) + { + T t = new T(); + t= *(T*)(allBytePtr + i); + rawList.Add(t); + } + } + return rawList.ToArray(); + } + + public static unsafe T[] SeparateCode(byte[] stream) where T : struct + { + List rawList = new List(); + + fixed (byte* allBytePtr = stream) + { + for (int i = 0; i < stream.Length; i += Marshal.SizeOf()) + { + T t = new T(); + t = *(T*)(allBytePtr + i); + rawList.Add(t); + } + } + return rawList.ToArray(); + } + + public static List<(T, ulong)> CountCodeFrequency(T[] rawArray) where T : struct + { + Dictionary frequencyCollection = new Dictionary(); + + foreach (var item in rawArray) + { + if (frequencyCollection.ContainsKey(item)) + { + frequencyCollection[item] += 1; + } + else + { + frequencyCollection.Add(item, 1); + } + } + + return frequencyCollection.OrderByDescending(pair=>pair.Value) + .Select(pair=>(pair.Key, pair.Value)).ToList(); + } + + } +} diff --git a/编码器/StgSharpData/Encode/EncodStream.cs b/编码器/StgSharpData/Encode/EncodStream.cs new file mode 100644 index 00000000..5cc25624 --- /dev/null +++ b/编码器/StgSharpData/Encode/EncodStream.cs @@ -0,0 +1,62 @@ +using StgSharp.Data; + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace StgSharpData +{ + public class EncodeStream + { + List data; + byte[] buffer; + byte count; + BitArray bufferArray; + + public int Length + { + get { return data.Count; } + } + + public List EncodeData + { + get=> data; + } + + public EncodeStream() + { + count = 0; + buffer = new byte[1]; + data = new List(); + bufferArray = new BitArray(8,true); + } + + public void WriteBits(HuffmanKey key) where T : struct + { + BitArray bit = key.GetBitArray(); + for (int i = 0; i < bit.Count; i++) + { + if (count == 8) + { + bufferArray.CopyTo(buffer, 0); + data.Add(buffer[0]); + count = 0; + } + bufferArray[count] = bit[i]; + count++; + } + } + + public string Output + { + get + { + return Encoding.UTF8.GetString(data.ToArray()); + } + } + + } + + +} diff --git a/编码器/StgSharpData/Encode/Encoder.cs b/编码器/StgSharpData/Encode/Encoder.cs new file mode 100644 index 00000000..7e1641ab --- /dev/null +++ b/编码器/StgSharpData/Encode/Encoder.cs @@ -0,0 +1,25 @@ +using StgSharpData; + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + public static class Encode + { + + public static void Freeze( + Dictionary> indexDict + ) + where T : struct + { + foreach ( var key in indexDict ) + { + key.Value.Freeze(); + } + } + + } +} diff --git a/编码器/StgSharpData/Encode/HuffmanTree.cs b/编码器/StgSharpData/Encode/HuffmanTree.cs new file mode 100644 index 00000000..432a3ea3 --- /dev/null +++ b/编码器/StgSharpData/Encode/HuffmanTree.cs @@ -0,0 +1,214 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Xml; +using System.Xml.Linq; + +namespace StgSharp.Data +{ + public partial class HuffmanTree where T : struct + { + HuffmanNodeList leaves; + + public TreeNode Root + { + get => leaves.Last; + } + + public HuffmanNodeList LeafList + { + get => leaves; + } + + internal HuffmanTree(HuffmanNodeList nodeList) + { + leaves = nodeList; + } + + public static HuffmanTree BuildHuffmanTree(List<(T, ulong)> metaData) + { + if (metaData.Count<=3) + { + throw new Exception("Data is too little, no need to compress"); + } + HuffmanNodeList leaves = new HuffmanNodeList(); + HuffmanNodeList all = new HuffmanNodeList(); + + foreach (var item in metaData) + { + leaves.Add(new TreeNode(item)); + } + + int count = 0; + + while (leaves.Count >2) + { + TreeNode node, toMove; + if (leaves.Last._frequency < leaves.BeforeLast._frequency) + { + if (leaves.BeforeLast._frequency < leaves.OverLast._frequency) + { + //第三节点最大 + node = new TreeNode(leaves.BeforeLast, leaves.Last); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + leaves.Add(node); + } + else + { + //第二节点最大 + node = leaves.Last._frequency < leaves.OverLast._frequency ? + new TreeNode(leaves.OverLast, leaves.Last) : + new TreeNode(leaves.Last, leaves.OverLast); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove); + leaves.Add(node); + } + } + else + { + + if (leaves.Last._frequency < leaves.OverLast._frequency) + { + //第三节点最大 + node = new TreeNode(leaves.Last, leaves.BeforeLast); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + toMove = leaves.RemoveAndGetLast; all.Add(toMove); + leaves.Add(node); + } + else + { + //第一节点最大 + node = leaves.BeforeLast._frequency < leaves.OverLast._frequency? + new TreeNode(leaves.OverLast, leaves.BeforeLast): + new TreeNode(leaves.BeforeLast, leaves.OverLast); + toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove); + toMove = leaves.RemoveAndGetBeforeLast; all.Add(toMove); + leaves.Add(node); + } + } + + leaves = new HuffmanNodeList( leaves.OrderByDescending(pair => pair.frequency) + .Select(pair => pair).ToList()); + } + + TreeNode lastOne = leaves[0]; + TreeNode lastTwo = leaves[1]; + TreeNode root = lastOne.frequency>lastTwo.frequency? + new TreeNode(lastOne,lastTwo): + new TreeNode(lastTwo, lastOne); + + all.Add(lastOne); + all.Add(lastTwo); + all.Add(root); + + leaves = all; + return new HuffmanTree(all); + } + + + } + + public class HuffmanNodeList : List> where T : struct + { + public HuffmanNodeList():base() + { + + } + + public HuffmanNodeList(IEnumerable> values):base(values) + {} + + public void Add(T element, ulong f) + { + base.Add(new TreeNode(element,f)); + } + + public TreeNode Last + { + get => this[Count-1 ]; + } + + public TreeNode RemoveAndGetLast + { + get + { + TreeNode ret = this[Count-1]; + RemoveAt(Count-1); + return ret; + } + } + + public TreeNode BeforeLast + { + get => this[Count - 2]; + } + + public TreeNode RemoveAndGetBeforeLast + { + get + { + TreeNode ret = this[Count - 2]; + RemoveAt(Count - 2); + return ret; + } + } + + public TreeNode OverLast + { + get => this[Count - 3]; + } + + public TreeNode RemoveAndGetOverLast + { + get + { + TreeNode ret = this[Count - 3]; + RemoveAt(Count - 3); + return ret; + } + } + + } + + public class TreeNode where T: struct + { + internal TreeNode _left; + internal TreeNode _right; + internal T? _value; + internal ulong _frequency; + + public ulong frequency => _frequency; + + public T? Value => _value; + + public TreeNode Left => _left; + public TreeNode Right => _right; + + public TreeNode( T? value, ulong frequncy) + { + _value = value; + _frequency = frequncy; + + } + + internal TreeNode(TreeNode left, TreeNode right) + { + _left = left; + _right = right; + _value = null; + _frequency = left._frequency + right._frequency; + } + + public TreeNode((T, ulong) data) + { + _value = data.Item1; + _frequency = data.Item2; + + } + } +} diff --git a/编码器/StgSharpData/Encode/MappingTable.cs b/编码器/StgSharpData/Encode/MappingTable.cs new file mode 100644 index 00000000..03595f6a --- /dev/null +++ b/编码器/StgSharpData/Encode/MappingTable.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; + +namespace StgSharp.Data +{ + public partial class HuffmanTree where T : struct + { + public Dictionary> BuildHuffmanDictionary() + { + Dictionary> ret = new Dictionary>(); + TreeNode root = Root; + HuffmanKey key = new HuffmanKey(); + key = key.SetSide(KeySide.Right); + InternalBuildDictionary(ret, root, key); + return ret; + } + + public void InternalBuildDictionary( + Dictionary> dict, + TreeNode node, + HuffmanKey valueTemp + ) + { + HuffmanKey nativeNode = new HuffmanKey(valueTemp.bitList); + nativeNode.AddIndexLevel(); + //检查左节点 + if (node._left.Value == null) + { + //左节点不是叶子节点,继续搜索 + InternalBuildDictionary( + dict, + node._left, + nativeNode.SetSide(KeySide.Left)); + } + else + { + //左节点是叶子节点,添加值 + dict.Add(node._left.Value.Value, nativeNode.SetSide(KeySide.Left)); + } + //检查右节点 + if (node._right.Value == null) + { + //右节点不是叶子节点,继续搜索 + InternalBuildDictionary( + dict, + node._right, + nativeNode.SetSide(KeySide.Right)); + } + else + { + //右节点是叶子节点,添加值 + dict.Add(node._right.Value.Value, nativeNode.SetSide(KeySide.Right)); + } + //这里检查自己是不是叶子节点 + //但是上面已经检查过了,不需要被检查 + } + + } + + + + public class HuffmanKey where T : struct + { + internal List bitList; + internal BitArray code; + + public HuffmanKey() + { + bitList = new List(); + bitList.Add(false); + } + + public HuffmanKey(List former) + { + bitList = new List(former); + } + + public unsafe byte[] GetBytes() + { + byte[] bytes = new byte[bitList.Count / 8 +1]; + BitArray array = new BitArray(bitList.ToArray()); + array.CopyTo(bytes, 0); + return bytes; + } + + public void Freeze() + { + if (code != null) + { + return; + } + bitList.RemoveAt(0); + code = new BitArray(bitList.ToArray()); + } + + public BitArray GetBitArray() + { + if (code == null) + { + List list = new List(bitList); + list.RemoveAt(0); + return new BitArray(list.ToArray()); + } + return code; + } + + public unsafe HuffmanKey SetSide(KeySide side) + { + HuffmanKey newKey = new HuffmanKey(bitList); + newKey.bitList[newKey.bitList.Count - 1] = (side == KeySide.Left); + return newKey; + } + + public unsafe void AddIndexLevel() + { + bitList.Add(true); + } + + public bool IsSupported + { + get + { + return + typeof(T) == typeof(byte) || + typeof(T) == typeof(uint) || + typeof(T) == typeof(ushort) || + typeof(T) == typeof(ulong) || +#if NET7_0_OR_GREATER + typeof(T) == typeof(UInt128) || +#endif + typeof(T) == typeof(M128); + } + } + + public override string ToString() + { + string str = ""; + foreach (var bit in bitList) + { + str += $"{bit} "; + } + return str; + } + } + + public enum KeySide + { + Left, + Right + } + +} diff --git a/编码器/StgSharpData/M128.cs b/编码器/StgSharpData/M128.cs new file mode 100644 index 00000000..9e087486 --- /dev/null +++ b/编码器/StgSharpData/M128.cs @@ -0,0 +1,158 @@ +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +// file="M128.cs" +// Project: StgSharp +// AuthorGroup: Nitload Space +// Copyright (c) Nitload Space. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the “Software”), to deal in the Software without restriction, +// including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, +// and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and +// this permission notice shall be included in all copies +// or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED “AS IS”, +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH +// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +//----------------------------------------------------------------------- +//----------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; + +namespace StgSharp.Data +{ + [StructLayout(LayoutKind.Explicit, Pack = 16)] + public unsafe struct M128 + { + + [FieldOffset(0)] internal Vector4 vec; + + internal M128(Vector4 v) + { + vec = v; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ulong GetLongHash() + { + return (Read(0)%2147483647L) * (Read(1) % 2147483647L); + } + + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public T Read(int index) where T : struct + { + fixed (Vector4* p = &vec) + { + return *(((T*)p) + index); + } + } + + public override string ToString() + { + return string.Empty; + } + + public string ToString(int sample) + { + string str = string.Empty; + for (int i = 15; i >= 0; i--) + { + str += $"{Convert.ToString(this.Read(i), sample)} "; + } + return str; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Write(int index, T value) where T : struct +#if NET8_0_OR_GREATER + , INumber +#endif + { + fixed (Vector4* p = &vec) + { + *(((T*)p) + index) = value; + } + } + +#if NET5_0_OR_GREATER + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static explicit operator Vector128(M128 m) + { + return Vector128.As(m.vec.AsVector128()); + } + +#endif + } +} diff --git a/编码器/StgSharpData/SSD/DataHead.cs b/编码器/StgSharpData/SSD/DataHead.cs new file mode 100644 index 00000000..5427bd5e --- /dev/null +++ b/编码器/StgSharpData/SSD/DataHead.cs @@ -0,0 +1,165 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Numerics; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text; + +namespace StgSharp.Data +{ + + [StructLayout(LayoutKind.Explicit, Size = 16)] + public struct SSDSegmentHead + { + [FieldOffset(0)] internal M128 data; + + [FieldOffset(0)] public int globalID; + [FieldOffset(4)] public int nextID; + + + [FieldOffset(8)] public int previousHash; + [FieldOffset(12)] internal byte size; + [FieldOffset(13)] public byte selfDefine_1; + [FieldOffset(14)] public byte selfDefine_2; + [FieldOffset(15)] public byte selfDefine_3; + + public int Size + { + get { return ((int)size) + 1; } + set + { + if (value > 256 || value < 0) + { + throw new ArgumentOutOfRangeException(); + } + size = (byte)(value - 1); + } + } + + public unsafe byte[] GetBytes() + { + byte[] ret = new byte[16]; + fixed (Vector4* vptr = &data.vec) + { + byte* bptr = (byte*)vptr; + for (int i = 0; i < 15; i++) + { + ret[i] = *bptr; + } + } + return ret; + } + } + + + public unsafe class SSDrawHead:IEnumerable + { + internal SSDSegmentHead _head; + + private List<(int, int)> segmentRange; + private List freeSegments; + private string name; + + public SSDrawHead() + { + segmentRange = new List<(int, int)>(); + freeSegments = new List(); + } + + internal SSDrawHead(string name) + { + int hash; + this.name = name; + using (SHA256 sha256Hash = SHA256.Create()) + { + byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(name)); + + hash = BitConverter.ToInt32(bytes, 0); + } + _head.previousHash = hash; + segmentRange = new List<(int, int)>(); + freeSegments = new List(); + } + + public void WriteRange(int begin, int end) + { + segmentRange.Add((begin, end)); + } + + public void AddSingleSegment(int id) + { + freeSegments.Add(id); + } + + internal void MarkSegment(int id) + { + freeSegments.Add(id); + } + + public unsafe byte[] GetBytes(out int size) + { + byte[] namecode = Encoding.UTF8.GetBytes(name); + size = 16 + 4 + + segmentRange.Count * 8 + + freeSegments.Count * 4 + + namecode.Length; + byte[] ret = new byte[size]; + fixed (byte* bptr = ret) + { + *(SSDSegmentHead*)bptr = _head; + *(bptr + 16) = (byte)segmentRange.Count; + *(bptr + 17) = (byte)namecode.Length; + *(bptr + 18) = (byte)freeSegments.Count; + int t = 20; + for (int i = 0; i < segmentRange.Count; i++, t += 8) + { + *(int*)(bptr + t) = segmentRange[i].Item1; + *(int*)(bptr + t + 4) = segmentRange[i].Item2; + } + for (int i = 0; i < freeSegments.Count; i++, t += 4) + { + *(int*)(bptr + t) = freeSegments[i]; + } + for (int i = 0; i < namecode.Length; i++, t++) + { + *(bptr + t) = namecode[i]; + } + } + return ret; + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var tuple in segmentRange) + { + for (int i = tuple.Item1; i <= tuple.Item2; i++) + { + yield return i; + } + } + + foreach (var item in freeSegments) + { + yield return item; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var tuple in segmentRange) + { + for (int i = tuple.Item1; i <= tuple.Item2; i++) + { + yield return i; + } + } + + foreach (var item in freeSegments) + { + yield return item; + } + } + } + +} diff --git a/编码器/StgSharpData/SSD/SSD.cs b/编码器/StgSharpData/SSD/SSD.cs new file mode 100644 index 00000000..1157e484 --- /dev/null +++ b/编码器/StgSharpData/SSD/SSD.cs @@ -0,0 +1,19 @@ +using StgSharp.Data.FileIO; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + public partial class SSD + { + + private List rawList; + + + } + + + +} diff --git a/编码器/StgSharpData/SSD/SSDVirtualFolder.cs b/编码器/StgSharpData/SSD/SSDVirtualFolder.cs new file mode 100644 index 00000000..2a6a8bf0 --- /dev/null +++ b/编码器/StgSharpData/SSD/SSDVirtualFolder.cs @@ -0,0 +1,23 @@ +using StgSharp.Data.FileIO; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + public class SSDVirtualFolder + { + internal string _name; + internal List files; + internal List folders; + + public SSDVirtualFolder() + { + + } + + + + } +} diff --git a/编码器/StgSharpData/SSD/SSDraw.cs b/编码器/StgSharpData/SSD/SSDraw.cs new file mode 100644 index 00000000..25bc1e1b --- /dev/null +++ b/编码器/StgSharpData/SSD/SSDraw.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Numerics; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System.Text; +using System.Xml.Serialization; + +namespace StgSharp.Data.FileIO +{ + public class SSDraw + { + public const string FileType = "ssdraw"; + + public const int SegmentCapacity = 16 * 16; + private string _name; + private SSDrawHead _head; + private List segments; + private SSDSegment currentSegment; + private int previousHash; + + public SSDraw(string name) + { + _name = name; + segments = new List(); + } + + public void WriteRaw(byte[] dataStream) + { + previousHash = BuildRawHead(0); + currentSegment = new SSDSegment(previousHash); + int t = 0; + for (int i = 0; i < dataStream.Length; i++, t++) + { + if (t == SegmentCapacity) + { + currentSegment.GetDataHash(); + currentSegment.Head.Size = 256; + currentSegment.Head.globalID = i; + segments.Add(currentSegment); + previousHash = currentSegment.GetHashCode(); + currentSegment = new SSDSegment(previousHash); + t = 0; + } + currentSegment[i] = dataStream[i]; + } + currentSegment.FillRandomBytes(t); + currentSegment.GetDataHash(); + currentSegment.Head.Size = t; + segments.Add(currentSegment); + + } + + public void CreateRawFile(string outputFolder, bool rewrite) + { + string route = + (outputFolder == "" ? " " : $"{outputFolder}\\") + + $"{_name}.{FileType}"; + if (File.Exists(route) && !rewrite) + { + throw new Exception("This SSDRAW has already existed."); + } + using (File.Create(route)) { } + using (FileStream cf = File.Open(route, FileMode.Truncate)) { } + FileStream f = File.Open(route, FileMode.Open); + int size = 0; + f.Write(_head.GetBytes(out size), 0, size); + foreach (var _head in segments) + { + f.Write(_head.GetBytes(), 0, 18 * 16); + } + f.Close(); + } + + private int BuildRawHead(int beginID) + { + SSDrawHead rawHead = new SSDrawHead(_name); + _head = rawHead; + return rawHead.GetHashCode(); + } + + public static SSDraw readRaw(string route) + { + string[] routeFolders = route.Split('\\'); + if (!routeFolders.Last().Contains($".{FileType}")) + { + throw new Exception($"File to open is not a {FileType} file."); + } + + FileStream stream = File.Open(route, FileMode.Open); + return new SSDraw(""); + } + + } + + [StructLayout(LayoutKind.Explicit)] + public unsafe struct SSDSegment + { + [FieldOffset(0 * 16)] public SSDSegmentHead Head; + [FieldOffset(12)] public int DataHash; + [FieldOffset(8)] public int PreviousHash; + [FieldOffset(16)] public fixed byte Data[16 * 16]; + + public SSDSegment(int previousHash) + { + this.PreviousHash = previousHash; + } + + public short Size + { + get { return Head.size; } + } + + public override int GetHashCode() + { + int ret = 17; + fixed (M128* mptr = &Head.data) + { + Vector4* vptr = (Vector4*)mptr; + for (int i = 0; i < 18; i++) + { + ret = (ret + (*vptr).GetHashCode()) * 31; + } + } + return ret; + } + + public void FillRandomBytes(int begin) + { + if (begin > 255) + { + return; + } + for (int i = begin; i < 255; i++) + { + Data[i] = 0; //TODO: 使用STGSHARP内部随机数工具处理它 + } + } + + public unsafe T ReadData(int index) where T : struct + { + fixed (byte* bptr = Data) + { + T* tptr = (T*)bptr; + return *(tptr + index); + } + } + public unsafe void WriteData(int index,T value) where T : struct + { + fixed (byte* bptr = Data) + { + T* tptr = (T*)bptr; + *(tptr + index) = value; + } + } + + public byte[] GetBytes() + { + byte[] ret = new byte[16*18]; + fixed (M128* mptr = &Head.data) + fixed (byte* aptr = ret) + { + Vector4* vsptr = (Vector4*)mptr; + Vector4* vtptr = (Vector4*)aptr; + for (int i = 0; i < 18; i++) + { + *(vtptr + i) = *(vsptr + i); + } + } + return ret; + } + + public byte this[int index] + { + get + { + if (index > 16*14-1 ) + { + throw new IndexOutOfRangeException(); + } + return Data[index]; + } + + set + { + if (index > 16 * 14 - 1) + { + throw new IndexOutOfRangeException(); + } + Data[index] = value; + } + } + + public int GetDataHash() + { + Vector4 v= Vector4.One; + fixed (M128* mptr = &Head.data) + { + Vector4* vptr = (Vector4*)mptr; + for (int i = 0; i < 16; i += 1) + { + v += (*vptr) * 31; + } + } + M128 m = new M128(v); + DataHash = m.vec.GetHashCode(); + return DataHash; + } + } + +} diff --git a/编码器/StgSharpData/Serialize/BitArray.cs b/编码器/StgSharpData/Serialize/BitArray.cs new file mode 100644 index 00000000..e476216e --- /dev/null +++ b/编码器/StgSharpData/Serialize/BitArray.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace StgSharp.Data +{ + public static partial class Serializer + { + public static byte[] Serialize(BitArray bits) + { + int size = bits.Count/4 +1; + List ret = new List(size); + int count = 0, total = 0; byte temp = new byte(); + for (int i = 0; i < bits.Count; i++) + { + if (count == 4) + { + ret.Add(temp); + count = 0; + temp = 0; + total++; + } + switch (count) + { + case 0: + temp |= (byte)(bits[i] ? BoolMap.True_0 : BoolMap.False_0); + break; + case 1: + temp |= (byte)(bits[i] ? BoolMap.True_1 : BoolMap.False_1); + break; + case 2: + temp |= (byte)(bits[i] ? BoolMap.True_2 : BoolMap.False_2); + break; + case 3: + temp |= (byte)(bits[i] ? BoolMap.True_3 : BoolMap.False_3); + break; + default: + throw new Exception(); + } + count++; + } + for (; count < 4; count++) + { + switch (count) + { + case 1: + temp |= (byte)(BoolMap.None_1); + break; + case 2: + temp |= (byte)(BoolMap.None_2); + break; + case 3: + temp |= (byte)(BoolMap.None_3); + break; + default: + throw new Exception(); + } + continue; + } + ret.Add( temp); + return ret.ToArray(); + } + + public static void Deserialize(byte[] stream, out BitArray target) + { + List boolStream = new List( 4 * stream.Length); + int i = 0, count = 0; + foreach (byte b in stream) + { + uint raw = b; + for (i = 0; i < 4; i++) + { + switch (raw & 0b11) + { + case (uint)BoolMap.True_0: + boolStream.Add(true); + break; + case (uint)BoolMap.False_0: + boolStream.Add(false); + break; + case (uint)BoolMap.None_0: + goto end; + default: + throw new Exception(); + } + raw >>= 2; + count++; + continue; + end: + { + break; + } + } + } + while (boolStream.Count > count) + { + boolStream.RemoveAt(count); + } + target = new BitArray(boolStream.ToArray()); + } + } + + + internal enum BoolMap : byte + { + False_0 = 0b00000010, + True_0 = 0b00000001, + None_0 = 0b00000011, + False_1 = 0b00001000, + True_1= 0b00000100, + None_1 = 0b00001100, + False_2 = 0b00100000, + True_2 = 0b00010000, + None_2 = 0b00110000, + False_3 = 0b10000000, + True_3 = 0b01000000, + None_3 = 0b11000000, + } +} diff --git a/编码器/StgSharpData/Serialize/Define.cs b/编码器/StgSharpData/Serialize/Define.cs new file mode 100644 index 00000000..c73e8f6e --- /dev/null +++ b/编码器/StgSharpData/Serialize/Define.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace StgSharp.Data +{ + + /// + /// A class contains a sets of methods to serialize several types + /// + public static partial class Serializer + { + + + } +} diff --git a/编码器/StgSharpData/Serialize/Dictionary.cs b/编码器/StgSharpData/Serialize/Dictionary.cs new file mode 100644 index 00000000..32503aa5 --- /dev/null +++ b/编码器/StgSharpData/Serialize/Dictionary.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace StgSharp.Data +{ + + /// + /// A class contains a sets of methods to serialize several types + /// + public static partial class Serializer + { + + /**/ + public static byte[] Serialize(Dictionary table) + { + using (var stream = new MemoryStream()) + { + foreach (var pair in table) + { + stream.WriteByte(pair.Key); + + byte[] keyCode = Serialize( pair.Value); + stream.WriteByte((byte)keyCode.Length); + + stream.Write(keyCode, 0, keyCode.Length); + } + return stream.ToArray(); + } + } + /**/ + + public static void Deserialize(byte[] data, out Dictionary dict) + { + dict = new Dictionary(); + int stat = 0; byte key = 0; + byte[] raw = new byte[0]; + foreach (var b in data) + { + switch (stat) + { + case 0: //getting key + if (raw.Length != 0) + { + BitArray bits; + Deserialize(raw, out bits); + dict.Add(key, bits); + } + key = b; + stat -= 1; + break; + case -1: //getting length + raw = new byte[b]; + stat = b; + break; + default: + raw[raw.Length - stat] = b; + stat--; + break; + } + } + } + + } +} diff --git a/编码器/StgSharpData/StgSharpData.csproj b/编码器/StgSharpData/StgSharpData.csproj new file mode 100644 index 00000000..b3a608e5 --- /dev/null +++ b/编码器/StgSharpData/StgSharpData.csproj @@ -0,0 +1,10 @@ + + + + netstandard2.1 + enable + True + preview + + + diff --git a/编码器/StgSharpData/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs b/编码器/StgSharpData/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs new file mode 100644 index 00000000..348b87f0 --- /dev/null +++ b/编码器/StgSharpData/obj/Debug/netstandard2.1/.NETStandard,Version=v2.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] diff --git a/编码器/StgSharpData/obj/Debug/netstandard2.1/StgSharpData.AssemblyInfo.cs b/编码器/StgSharpData/obj/Debug/netstandard2.1/StgSharpData.AssemblyInfo.cs new file mode 100644 index 00000000..e66247d0 --- /dev/null +++ b/编码器/StgSharpData/obj/Debug/netstandard2.1/StgSharpData.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpData")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")] +[assembly: System.Reflection.AssemblyProductAttribute("StgSharpData")] +[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpData")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/编码器/StgSharpData/obj/Debug/netstandard2.1/StgSharpData.csproj.FileListAbsolute.txt b/编码器/StgSharpData/obj/Debug/netstandard2.1/StgSharpData.csproj.FileListAbsolute.txt new file mode 100644 index 00000000..583174b1 --- /dev/null +++ b/编码器/StgSharpData/obj/Debug/netstandard2.1/StgSharpData.csproj.FileListAbsolute.txt @@ -0,0 +1,20 @@ +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.deps.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.GeneratedMSBuildEditorConfig.editorconfig +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfoInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfo.cs +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.csproj.CoreCompileInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.sourcelink.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.deps.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\bin\Debug\netstandard2.1\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.GeneratedMSBuildEditorConfig.editorconfig +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfoInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.AssemblyInfo.cs +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.csproj.CoreCompileInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.sourcelink.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpData\obj\Debug\netstandard2.1\StgSharpData.pdb diff --git a/编码器/StgSharpDataEncoder.sln b/编码器/StgSharpDataEncoder.sln new file mode 100644 index 00000000..aed04f25 --- /dev/null +++ b/编码器/StgSharpDataEncoder.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34714.143 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StgSharpDataEncoder", "StgSharpDataEncoder\StgSharpDataEncoder.csproj", "{F89AE661-900E-40C1-9A18-930BE72754A0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StgSharpData", "StgSharpData\StgSharpData.csproj", "{B33F35F1-0A92-4D72-B334-FE0565F64BF7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SSD_Test", "SSD_Test\SSD_Test.csproj", "{E8A7C475-2369-4673-B299-9BFDE38B950D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F89AE661-900E-40C1-9A18-930BE72754A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F89AE661-900E-40C1-9A18-930BE72754A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F89AE661-900E-40C1-9A18-930BE72754A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F89AE661-900E-40C1-9A18-930BE72754A0}.Release|Any CPU.Build.0 = Release|Any CPU + {B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B33F35F1-0A92-4D72-B334-FE0565F64BF7}.Release|Any CPU.Build.0 = Release|Any CPU + {E8A7C475-2369-4673-B299-9BFDE38B950D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8A7C475-2369-4673-B299-9BFDE38B950D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8A7C475-2369-4673-B299-9BFDE38B950D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8A7C475-2369-4673-B299-9BFDE38B950D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {810253B6-B7DF-41BF-B1DB-F2B55AD72F88} + EndGlobalSection +EndGlobal diff --git a/编码器/StgSharpDataEncoder/Program.cs b/编码器/StgSharpDataEncoder/Program.cs new file mode 100644 index 00000000..59ef1732 --- /dev/null +++ b/编码器/StgSharpDataEncoder/Program.cs @@ -0,0 +1,80 @@ +using StgSharp.Data; +using StgSharp.Data.FileIO; + +using StgSharpData; + +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Runtime.InteropServices; +using System.Text; + +namespace StgSharpDataEncoder +{ + internal class Program + { + static unsafe void Main(string[] args) + { + string test = + "aaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbsddfdsfsdfdsfsdfsdfsdfsdfsdfdsfsdfdsfsdfsdfsdfsdfsfsdfsdfccccccccccccccccccccccccc"; + + + + byte[] array = CodeSeparator.SeparateCode( + Encoding.UTF8.GetBytes(test)); + List<(byte, ulong)> list = CodeSeparator.CountCodeFrequency(array); + foreach (var i in list) + { + Console.WriteLine($"{i.Item1}\t{i.Item2}"); + } + + Console.WriteLine(); + Console.WriteLine(); + + HuffmanTree tree = HuffmanTree.BuildHuffmanTree(list); + foreach (var i in tree.LeafList) + { + Console.WriteLine($"{i.Value}\t{i.frequency}\t" + + $"{(i.Left == null ? 0 : i.Left.frequency)}\t" + + $"{(i.Right == null ? 0 : i.Right.frequency)}"); + } + + Console.WriteLine(); + Console.WriteLine(); + + Dictionary> encodeDictionary + = tree.BuildHuffmanDictionary(); + + Console.WriteLine(); + Console.WriteLine(); + foreach (var item in encodeDictionary) + { + Console.WriteLine( + $"{item.Key}\t" + + $"{item.Value}" + ); + } + Encode.Freeze(encodeDictionary); + + EncodeStream encodeStream = new EncodeStream(); + foreach (var item in array) + { + var bits = encodeDictionary[item]; + encodeStream.WriteBits(bits); + } + Console.WriteLine(); + Console.WriteLine(); + foreach (var item in encodeStream.EncodeData) + { + Console.Write($"{item}\t"); + } + Console.WriteLine(); + Console.WriteLine(); + Console.WriteLine($"{array.Length}\t{encodeStream.Length}"); + + SSDraw testRaw = new SSDraw("test"); + testRaw.WriteRaw(encodeStream.EncodeData.ToArray()); + testRaw.CreateRawFile("",true); + } + } +} diff --git a/编码器/StgSharpDataEncoder/StgSharpDataEncoder.csproj b/编码器/StgSharpDataEncoder/StgSharpDataEncoder.csproj new file mode 100644 index 00000000..80403afd --- /dev/null +++ b/编码器/StgSharpDataEncoder/StgSharpDataEncoder.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + enable + enable + True + + + + + + + diff --git a/编码器/StgSharpDataEncoder/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 00000000..2217181c --- /dev/null +++ b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.AssemblyInfo.cs b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.AssemblyInfo.cs new file mode 100644 index 00000000..3bd6db1d --- /dev/null +++ b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDataEncoder")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+efeb4ba05892154579515936d827ba856937ec40")] +[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDataEncoder")] +[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDataEncoder")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.GlobalUsings.g.cs b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.GlobalUsings.g.cs new file mode 100644 index 00000000..8578f3d0 --- /dev/null +++ b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.csproj.FileListAbsolute.txt b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.csproj.FileListAbsolute.txt new file mode 100644 index 00000000..d3a8a905 --- /dev/null +++ b/编码器/StgSharpDataEncoder/obj/Debug/net8.0/StgSharpDataEncoder.csproj.FileListAbsolute.txt @@ -0,0 +1,38 @@ +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.exe +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.deps.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.runtimeconfig.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.AssemblyReference.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.GeneratedMSBuildEditorConfig.editorconfig +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfoInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfo.cs +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.CoreCompileInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.sourcelink.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharp.F2927A3D.Up2Date +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\refint\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.genruntimeconfig.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\StgSharpDataEncoder\obj\Debug\net8.0\ref\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.exe +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.deps.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.runtimeconfig.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpDataEncoder.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\bin\Debug\net8.0\StgSharpData.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.AssemblyReference.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.GeneratedMSBuildEditorConfig.editorconfig +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfoInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.AssemblyInfo.cs +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.csproj.CoreCompileInputs.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.sourcelink.json +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharp.F2927A3D.Up2Date +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\refint\StgSharpDataEncoder.dll +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.pdb +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\StgSharpDataEncoder.genruntimeconfig.cache +D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\编码器\StgSharpDataEncoder\obj\Debug\net8.0\ref\StgSharpDataEncoder.dll