在C#中是否有一种简单的方法来读取属性文件,该文件在单独的行上包含每个属性,后跟等号和值,如下所示:
ServerName=prod-srv1
Port=8888
CustomProperty=Any value
Run Code Online (Sandbox Code Playgroud)
在Java中,Properties类可以轻松处理此解析:
Properties myProperties=new Properties();
FileInputStream fis = new FileInputStream (new File("CustomProps.properties"));
myProperties.load(fis);
System.out.println(myProperties.getProperty("ServerName"));
System.out.println(myProperties.getProperty("CustomProperty"));
Run Code Online (Sandbox Code Playgroud)
我可以轻松地在C#中加载文件并解析每一行,但是有没有内置的方法来轻松获取属性而无需解析密钥名称和等号本身?我发现的C#信息似乎总是支持XML,但这是一个我无法控制的现有文件,我宁愿将其保留为现有格式,因为需要更多时间让其他团队将其更改为XML而不是解析现有的文件.
我们有一个StarTeam视图,其中有两个处于"未知"状态的文件 - 是否有人理解为什么他们处于这种状态和/或我们如何让他们离开状态?
是删除它们并使用其他名称重新添加它们唯一的解决方案?
请注意,如果您检查这两个文件(定期或使用"强制结帐"),它们将始终列为"未知"(烦人).
谢谢.
更多信息基于Craig的建议如下:
a)使用MD5校验和计算文件状态:相同的结果("未知"状态)
b)这两个文件在服务器上只有一个版本.我不确定这是不是因为我们的CM小组试图通过删除和重新创建文件来解决问题,或者是否真的只有一个版本.这些文件是文本文件.
c)我尝试删除本地计算机上的文件并刷新状态.当我这样做,而不是看到列出为"未知"的两个文件,我看到总共有四个文件列出状态为"丢失".每个文件都列出了两个条目 - 每个条目具有相同的文件名,文件夹路径,"修改者"和"签入时的文件戳".我不知道为什么每个文件都列出两次.如果我选择一对中的每个条目并选择"比较内容",我的差异工具说它们是相同的.
无论是使用MD5校验和比较还是非MD5,我对这四个文件都有同样的奇怪问题.
如果我尝试检出所有四个丢失的文件,我会收到两个警报,提示我合并文件.我说不,文件现在在我的本地文件系统上,状态又回到我开始的位置 - 两个文件列为"未知".
克雷格的更新:
你肯定是在做点什么.我将每个重复的项目移动到另一个目录.这立即解决了这个问题,因为我现在可以在没有任何"未知"项目的情况下签出四个项目(两个在同一个目录中,两个在新目录中).然后我删除了我移动到新目录的两个项目.
在这样做的过程中,我看到了更多信息.我们不知何故有这样的目录结构:
Parent_Dir
--SubDir1
--SubDir1
--SubDir1
--SubDir1 <- Two items were here
--SubDir1 <- Two items were here
--SubDir2
--SubDir3
--SubDir4
--SubDir5
Run Code Online (Sandbox Code Playgroud)
不知何故,我们有五个具有相同名称的子目录,这两个文件存在于两个具有相同名称的子目录中.
问题似乎已得到解决.你认为我应该手动删除额外的子目录吗?
感谢Craig这个问题似乎已经解决.我不知道这种情况是如何产生的(任何人?)但是......我们现在很好.谢谢克雷格!
我为具有多个显示器的用户编写软件,并根据用户通常会最大化每个显示器的窗口而不是"手动调整"它们的假设来设计设计.
最近我注意到,在使用多个显示器方面似乎有两个"学校".有"最大化"的学校,然后有"手工大小"的学校,几乎从来没有最大化.
只是好奇,多读监听用户阅读这个,有多少人最大化与手动调整大小?我很想知道你在哪个平台上(Mac vs Windows vs*nix).
编辑:我认为这是一个从设计角度来看的合法民意调查.
我知道这些问题之前有各种各样的问题,但这有点不同.
我有一个包含std :: map的类.虽然我希望在类中使用映射用于其他目的,但在外部我想要将迭代器适配器暴露给映射内的值(即std :: pair中的第二项).
例如在python中我可能会这样做:
def __iter__(self):
return self._dict.itervalues()
Run Code Online (Sandbox Code Playgroud)
我如何在c ++中执行此操作,将实现隐藏在类中?
谢谢,
担
我正在为一个小型ASP.NET(3.5,C#)应用程序进行简单的表单身份验证,并在web.config中设置我的用户名和密码.
我想应用默认样式表并包含标题图形(包含在每个其他页面上),但图形和样式表将不适用,可能是因为匿名用户无法访问这两个文件.是否有一些简单的方法可以添加它们或其他一些方法来使图像显示在页面上?
这是web.config的相关部分:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH"
path="/"
loginUrl="login.aspx"
protection="All" timeout="30">
<credentials passwordFormat="SHA1">
<user
name="testuser"
password="hashgoeshere"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
样式表位于:/stylesheet.css,图像位于:/img/logoimage.png
谢谢.这个网站让我高兴,因为希望它会让专家交流和他们的蹩脚付费墙DIE!
我正在用C++编写一个使用网络套接字的程序.我需要知道计算机的IP地址是什么,所以我可以将它显示给用户.该程序必须在Windows和Linux上运行.
我听说过计算机可以有多个IP地址.我希望不同计算机上的其他程序可以用来连接到计算机.
这是我已经拥有的相关代码(变量在其他地方声明):
master = new fd_set;
FD_ZERO(master);
struct sockaddr_in my_addr;
listener = socket(PF_INET, SOCK_STREAM, 0);
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(port);
my_addr.sin_addr.s_addr = INADDR_ANY;
memset(my_addr.sin_zero, '\0', sizeof my_addr.sin_zero);
bind(listener, (struct sockaddr *)&my_addr, sizeof my_addr);
listen(listener, 10);
FD_SET(listener, master);
fdmax = listener;
Run Code Online (Sandbox Code Playgroud) 我需要运行一个附加到按钮(例如SQLBtn)的动作,该动作放在我的应用程序中的Frame1上,来自Form1.
我已经在Form1中使用了框架,但似乎无法以任何方式解决.
我已经尝试过Frame1.SQLbtn TFrame1.SQLbtn TFrameSQLBtn等但无法实现它.
我想得到类似于'SQLbtn.click'的东西来运行它背后的事件.
有没有人有任何想法如何解决它?
我打字以获得销售额(按输入)乘以定义的销售税(0.08),然后打印总金额(销售税时间销售金额).
我遇到了这个错误.谁知道什么可能是错的或有任何建议?
salesAmount = raw_input (["Insert sale amount here \n"])
['Insert sale amount here \n']20.99
>>> salesTax = 0.08
>>> totalAmount = salesAmount * salesTax
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
totalAmount = salesAmount * salesTax
TypeError: can't multiply sequence by non-int of type 'float'
Run Code Online (Sandbox Code Playgroud) 我想将变量从后面的代码传递给SqlDataSource的SelectCommand?
我不想使用内置参数类型(如ControlParemeter,QueryStringParameter等)
我需要通过一个可变的?
以下示例不起作用
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:itematConnectionString %>" SelectCommand = "SELECT items.name, items.id FROM items INNER JOIN users_items ON items.id = users_items.id WHERE (users_items.user_id = @userId) ORDER BY users_items.date DESC" >
<SelectParameters>
<asp:Parameter DefaultValue="<%= userId %>" Name="userId" DbType="Guid" />
</SelectParameters>
</asp:SqlDataSource>
Run Code Online (Sandbox Code Playgroud)