提供文件的格式化管理
说明 Introduction
用于以标准的格式化管理文件,该类可以按照章节 Section、项 Item 的集合方式分级管理文件数据。
成员 Members
- Totemsoft.SDK.Framework4.Files.Formatted 命名空间
- Totemsoft.SDK.Framework4.Files.Formatted.FormattedFile
- Totemsoft.SDK.Framework4.Files.Formatted.FormattedFile.FormattedSectionCollection
- Totemsoft.SDK.Framework4.Files.Formatted.FormattedSection
- Totemsoft.SDK.Framework4.FIles.Formatted.FormattedSection.FormattedItemCollection
- Totemsoft.SDK.Framework4.Files.Formatted.FormattedItem
- Totemsoft.SDK.Framework4.Files.Formatted.Exceptions 命名空间
- Totemsoft.SDK.Framework4.Files.Formatted.Exceptions.InvalidFileFormatException
- Totemsoft.SDK.Framework4.Files.Formatted.Exceptions.NullPasswordException
- Totemsoft.SDK.Framework4.Files.Formatted.Exceptions.IncorrectPasswordException
- Totemsoft.SDK.Framework4.FIles.Formatted.Exceptions.SectionNameAlreadyExistsException
- Totemsoft.SDK.Framework4.Files.Formatted.Exceptions.ItemKeyAlreadyExistsException
Created date: 2017年04月13日
Last modify date: 2017年04月17日
Programmer: Eddie Chan
Version: 1.00.09
Copyright © 2017 Totemsoft Inc. All rights reserved.
Totemsoft is a trademark of Imago organization.
构造函数 Constructors
名称 | 说明 |
---|
FormattedFile | 初始 FormattedFile 类的新实例,并将所有属性设置为初始值。 |
方法 Methods
名称 | 说明 |
---|
Load (String) | 从指定的磁盘或路径位置加载 FormattedFile 数据。 |
Load (String, String) | 从指定的磁盘或路径位置加载包含密码的 FormattedFile 数据。 |
Save (String, Boolean) | 将 FormattedFile 数据保存到指定的磁盘或路径位置。 |
Save (String, Boolean, String) | 将 FormattedFile 数据加密保存到指定的磁盘或路径位置。 |
Load (String, String) 与 Save (String, String) 需要添加对 Totemsoft.SDK.Framework4.Encrypted 的引用。
异常 Exceptions
名称 | 说明 |
---|
IOException | 路径、驱动器错误时触发。 |
FileNotFoundException | 文件名称错误时触发。 |
InvalidFileFormatException | 文件格式异常时触发。 |
NullPasswordException | 采用加密存储函数却未设置密码时触发。 |
IncorrectPasswordException | 加载文件密码不正确时触发。 |
IOException 位于 Totemsoft.SDK.Framework4.Devices.Exceptions 命名空间。
FileNotFoundException 位于 Totemsoft.SDK.Framework4.Files.Exceptions 命名空间。
构造函数 Constructors
名称 | 说明 |
---|
FormattedSectionCollection | 初始 FormattedSectionCollection 类的新实例,并将所有属性设置为初始值。 |
属性 Properties
类型 | 名称 | 说明 |
---|
默认属性 | FormattedSections (String) | 获取或设置 FormattedSections 集合中指定名称处的 FormattedSection 对象。 |
只读属性 | FormattedFile | 获取包含该集合的 FormattedFile 对象。 |
方法 Methods
名称 | 说明 |
---|
Add (String) | 向 FormattedSectionCollection 集合中添加一个指定名称的 FormattedSection。 |
Add (FormattedSection) | 向 FormattedSectionCollection 集合中添加一个 FormattedSection 对象。 |
Count | 获取 FormattedSections 集合中 FormattedSection 的数量。 |
Contains (FormattedSection) | 确定 FormattedSections 集合是否包含指定 FormattedSection 对象。 |
ContainsName (String) | 确定 FormattedSections 集合是否包含指定名称的章节。 |
Remove (FormattedSection) | 从 FormattedSections 集合中移除指定 FormattedSection 对象。 |
RemoveName (String) | 从 FormattedSections 集合中移除包含指定名称的章节。 |
GetNameList | 获取 FormattedSections 集合中所有 FormattedSection 名称的列表。 |
异常 Exceptions
名称 | 说明 |
---|
SectionNameAlreadyExistsException | 当前 FormattedSections 集合中存在多个相同名称时触发。 |
构造函数 Constructors
名称 | 说明 |
---|
FormattedSection | 初始 FormattedSection 类的新实例,并将所有属性设置为初始值。 |
FormattedSection (String) | 以指定名称初始 FormattedSection 类的新实例,并将所有属性设置为初始值。 |
属性 Properties
类型 | 名称 | 说明 |
---|
| Name | 获取或设置该 FormattedSection 的名称。 |
只读属性 | FormattedFile | 获取包含该章节的 FormattedFile 对象。 |
只读属性 | FormattedItems | 获取存储 FormattedItem 对象的集合。 |
构造函数 Constructors
名称 | 说明 |
---|
FormattedItemCollection | 初始 FormattedItemCollection 类的新实例,并将所有属性设置为初始值。 |
属性 Properties
类型 | 名称 | 说明 |
---|
默认属性 | FormattedItems (String) | 获取或设置 FormattedItems 集合中指定索引处的值。 |
方法 Methods
名称 | 说明 |
---|
Add (String, String) | 以键值对形式向 FormattedItems 集合中添加一个 FormattedItem 对象。 |
Add (FormattedItem) | 向 FormattedItems 集合中添加一个 FormattedItem 对象。 |
Count | 获取 FormattedItems 集合中 FormattedItem 的数量。 |
Contains (FormattedItem) | 确定 FormattedItems 集合中是否包含指定的 FormattedItem 对象。 |
ContainsKey (String) | 确定 FormattedItems 集合是否包含指定索引的项。 |
Remove (FormattedItem) | 从 FormattedItems 集合中移除指定的 FormattedItem 对象。 |
RemoveKey (String) | 从 FormattedItems 集合中移除包含指定索引的项。 |
GetKeyList | 获取 FormattedItems 集合中所有索引的列表。 |
GetValueList | 获取 FormattedItems 集合中所有值的列表。 |
异常 Exceptions
名称 | 说明 |
---|
ItemKeyAlreadyExistsException | 当前 FormattedItems 集合中存在多个相同索引值时触发。 |
构造函数 Constructors
名称 | 说明 |
---|
FormattedItem | 初始 FormattedItem 类的新实例,并将所有属性设置为初始值。 |
FormattedItem (String, String) | 以键值对形式初始 FormattedItem 类的新实例,并将所有属性设置为初始值。 |
属性 Properties
类型 | 名称 | 说明 |
---|
| Key | 获取或设置此 FormattedItem 的索引。 |
| Value | 获取或设置此 FormattedItem 的值。 |
只读属性 | FormattedSection | 获取包含该项的 FormattedSection 对象。 |
示例 Examples
以下示例将展示在驱动器 D 下生成名为 MyData.dat 文件。其中包含下列内容:
- Network
- IpAddress: 10.0.1.10
- Port: 1549
- Backlog: 10
- Database
- Type: SQL Server
- Version: 2008 R2
- Host: 10.0.1.8
- Database: Catalog
- Application
- PluginDirectory: \Plugins
- UpdateDirectory: \Update
Visual C Sharp Code
using System.Net;
using Totemsoft.SDK.Framework4.Files.Formatted;
public class TestFormattedClass
{
public void CreateFormattedFile()
{
FormattedFile objFile = new FormattedFile();
objFile.FormattedSections.Add("Network");
objFile.FormattedSections["Network"].FormattedItems.Add("IpAddress", "10.0.1.10");
FormattedItem objPortItem = new FormattedItem("Port", "1549");
objFile.FormattedSections["Network"].FormattedItems.Add(objPortItem);
FormattedItem objBacklogItem = new FormattedItem();
objBacklogItem.Key = "Backlog";
objBacklogItem.Value = "10";
objFile.FormattedSections["Network"].FormattedItems.Add(objBacklogItem);
FormattedSection objDatabaseSection = new FormattedSection("Database");
FormattedItem objTypeItem = new FormattedItem("Type", "SQL Server");
FormattedItem objVersionItem = new FormattedItem("Version", "2008 R2");
FormattedItem objHostItem = new FormattedItem("Host", "10.0.1.8");
FormattedItem objDatabaseItem = new FormattedItem("Database", "Catalog");
objDatabaseSection.FormattedItems.Add(objTypeItem);
objDatabaseSection.FormattedItems.Add(objVersionItem);
objDatabaseSection.FormattedItems.Add(objHostItem);
objDatabaseSection.FormattedItems.Add(objDatabaseItem);
objFile.FormattedSections.Add(objDatabaseSection);
FormattedSection objAppSection = new FormattedSection();
objAppSection.Name = "Application";
FormattedItem objPlugDirItem = new FormattedItem();
objPlugDirItem.Key = "PluginsDirectory";
objPlugDirItem.Value = "\\Plugins";
objAddSection.FormattedItems.Add(objPlugDirItem);
objFile.FormattedSections.Add(objAppSection);
FormattedItem objUpdateDirItem = new FormattedItem();
objUpdateDirItem.Key = "UpdateDirectory";
objUpdateDirItem.Value = "\\Update";
objFile.FormattedSections["Application"].FormattedItems.Add(objUpdateDirItem);
objFile.Save("D:\\MyData.dat", false);
}
public void ReadFormattedFile()
{
FormattedFile objFile = new FormattedFile();
objFile.Load("D:\\MyData.dat");
string cIpAddress = objFile.FormattedSections["Network"].FormattedItems["IpAddress"];
string cPort = objFile.FormattedSections["Network"].FormattedItems["Port"];
DNS.IpAddress Ip = DNS.IpAddress.Parse(cIpAddress);
DNS.IpAddress HostIp = DNS.IpAddress.Parse("10.0.1.8");
int Port = int.Parse(cPort);
FormattedSection objDatabaseSection = objFile.FormattedSections["Database"];
objDatabaseSection.FormattedItems["Database"] = "Staff";
if (objDatabaseSection.FormattedItems.ContainsKey("Host"))
{
HostIp = DNS.IpAddress.Parse(objDatabaseSection.FormattedItems["Host"]);
}
else
{
objDatabaseSection.FormattedItems.Add("Host", HostIp.ToString());
}
objFile.Save("D:\\MyData.dat", true);
}
}
Visual Basic Code
Imports System.Net
Imports Totemsoft.SDK.Framework4.Files.Formatted
Public Class TestFormattedClass
Public Sub CreateFormattedFile()
Dim objFile As New FormattedFile
objFile.FormattedSections.Add("Network")
objFile.FormattedSections("Network").FormattedItems.Add("IpAddress", "10.0.1.10")
Dim objPortItem As FormattedItem = New FormattedItem("Port", "1549");
objFile.FormattedSections("Network").FormattedItems.Add(objPortItem)
Dim objBacklogItem As FormattedItem = New FormattedItem
objBacklogItem.Key = "Backlog"
objBacklogItem.Value = "10"
objFile.FormattedSections("Network").FormattedItems.Add(objBacklogItem)
Dim objDatabaseSection As FormattedSection = New FormattedSection("Database")
Dim objTypeItem As FormattedItem = New FormattedItem("Type", "SQL Server")
Dim objVersionItem As FormattedItem = New FormattedItem("Version", "2008 R2")
Dim objHostItem As FormattedItem = New FormattedItem("Host", "10.0.1.8")
Dim objDatabaseItem As FormattedItem = New FormattedItem("Database", "Catalog")
objDatabaseSection.FormattedItems.Add(objTypeItem)
objDatabaseSection.FormattedItems.Add(objVersionItem)
objDatabaseSection.FormattedItems.Add(objHostItem)
objDatabaseSection.FormattedItems.Add(objDatabaseItem)
objFile.FormattedSections.Add(objDatabaseSection)
Dim objAppSection As FormattedSection = New FormattedSection
objAppSection.Name = "Application"
Dim objPlugDirItem As FormattedItem = New FormattedItem
objPlugDirItem.Key = "PluginsDirectory"
objPlugDirItem.Value = "\Plugins"
objAddSection.FormattedItems.Add(objPlugDirItem)
objFile.FormattedSections.Add(objAppSection)
Dim objUpdateDirItem As FormattedItem = New FormattedItem
objUpdateDirItem.Key = "UpdateDirectory"
objUpdateDirItem.Value = "\Update"
objFile.FormattedSections("Application").FormattedItems.Add(objUpdateDirItem)
objFile.Save("D:\MyData.dat", False)
End Sub
Public Sub ReadFormattedFile()
Dim objFile As FormattedFile = New FormattedFile
objFile.Load("D:\MyData.dat")
Dim cIpAddress As String = objFile.FormattedSections("Network").FormattedItems("IpAddress")
Dim cPort As String = objFile.FormattedSections("Network").FormattedItems("Port");
Dim Ip As DNS.IpAddress = DNS.IpAddress.Parse(cIpAddress)
Dim HostIp As DNS.IpAddress = DNS.IpAddress.Parse("10.0.1.8")
Dim Port As Integer = Integer.Parse(cPort)
Dim objDatabaseSection As FormattedSection = objFile.FormattedSections("Database")
objDatabaseSection.FormattedItems("Database") = "Staff"
if objDatabaseSection.FormattedItems.ContainsKey("Host") Then
HostIp = DNS.IpAddress.Parse(objDatabaseSection.FormattedItems("Host"))
Else
objDatabaseSection.FormattedItems.Add("Host", HostIp.ToString())
End IF
objFile.Save("D:\MyData.dat", True)
End Sub
End Class
Copyright © 2017 Totemsoft Inc. All rights reserved.