我有一个列表框,当选择或取消选择项目时,我想将更改保存到xml文件(因此它始终是文件的最新版本,用户不需要"保存"按钮).
在测试时我偶尔会遇到这个IOException:
该进程无法访问文件"C:\ MyPath\MyFile.xml",因为它正由另一个进程使用.
这是我的XML序列化代码:
// Save an object out to the disk
public static void SerializeObject<T>(this T toSerialize, String filename)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
TextWriter textWriter = new StreamWriter(filename);
xmlSerializer.Serialize(textWriter, toSerialize);
}
// Load an object from the disk
private static T DeserialzeObject<T>(String filename) where T : class
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
try
{
TextReader textReader = new StreamReader(filename);
return (T)xmlSerializer.Deserialize(textReader);
}
catch (FileNotFoundException)
{ }
return null;
}
Run Code Online (Sandbox Code Playgroud)
以下是它的调用方式:
// Save off the list …Run Code Online (Sandbox Code Playgroud) 我已经在我的系统中安装了WAMP服务器,这使得生活变得更加容易:-).
那么有人能告诉我什么是JSP的WAMP服务器等价物?
(C#,VS2008)在我正在研究的程序中,我有很多对象都具有ID并实现IComparable,因此各种对象的List <> - s可以通过ID轻松搜索.由于我讨厌复制/粘贴代码,我认为我会将这些功能抽象到基类,如下所示:
using System;
namespace MyProg.Logic
{
abstract class IDObject : IComparable<IDObject>
{
private int miID;
public int ID
{
get { return miID; }
set { miID = value; }
}
public IDObject(int ID)
{
miID = ID;
}
#region IComparable<IDObject> Members
int IComparable<IDObject>.CompareTo(IDObject other)
{
return miID.CompareTo(other.miID);
}
#endregion
}
}
Run Code Online (Sandbox Code Playgroud)
我看到的缺点是每个继承它的两个单独的类可以直接使用.CompareTo()进行比较,我希望强制每个继承自IDObject的类只能与完全相同类的其他类相比较.所以我希望弄清楚如何做到这一点,并想出了这个
using System;
namespace MyProg.Logic
{
abstract class IDObject : IComparable<T> where T : IDObject
{
private int miID;
public int ID
{
get { …Run Code Online (Sandbox Code Playgroud) 我试图用javascript关闭一个子窗口,在Firefox中一切正常,但在chrome中窗口不关闭
这是我正在使用的
$(document).ready(function() {
if (window.opener && !window.opener.closed)
window.opener.location = "http://www.website.com"
window.close();
});
Run Code Online (Sandbox Code Playgroud)
我尝试了谷歌的建议,但无济于事.
任何有类似问题或知道解决方法的人?
我知道序列化用于将数据类型转换为可存储的格式,用于缓存等目的.
我更具体地问的是,你应该在什么情况下实际决定存储数据(serialize()在PHP中使用,pickle在Python中使用模块等)?
假设我们有一个流量很大的网站,在我们的/blog页面中,我们使用静态内容xml文件,gettext mo文件和动态生成的数据库内容.
示例#1:
我们依赖静态内容的文件是en/blog.xml:
'<content><![CDATA[
<h1>Welcome to my blog!</h1>
<p>Lorem ipsum dolor sit amet..</p>
]]></content>'
Run Code Online (Sandbox Code Playgroud)
我们想要自己序列化这个xml文件并将其存储在缓存中吗?
示例#2:
我们还有一个动态生成的表单,通常我会假设我不会序列化任何东西,因为它是服务器端生成的和动态的,但我们的表单字段标签是国际化的,用户请求这个页面用西班牙语,因此我们使用的是翻译类.抓取以mo/csv/xml格式存储的表单字段标签.
内容contact-us.php:
<label for="first_name"><?php echo $L->_("First Name");?></label>
<input id="first_name" name="first_name" type="text">
Run Code Online (Sandbox Code Playgroud)
"First Name"消息id转换从应用程序级转换文件中提取,我们将其解析并存储在驻留在我们的转换类中的数组中.因此,我们的代码mo在每个页面请求上都不解析文件,而不是在解析mo之后序列化整个数组,然后依赖于序列化的转储,这将是理想的选择.
示例#3:
让我们在我们的博客页面上说我们正在阅读最近的5篇博文.
$posts = BlogClass->sql('SELECT blog_message, blog_author FROM blog_posts LIMIT 5 ORDER BY blog_date DESC');
Run Code Online (Sandbox Code Playgroud)
我们是否希望依赖于memcache之类的东西,只需设置一个键到sql语句的结果,它会序列化查询的结果,还是?
奖金:
如果有人能够提供有效/实际使用/错误使用序列化的具体示例,那就太好了 - 就像一个多页面,巨大的形式,可以提取数据库信息并将内容存储在会话中,或者任何示例你不得不依赖序列化..
c#编译器如何工作?
它如何解析我们的整个解决方案和.cs文件...我想知道它从哪里开始以及一切如何运作......我想从asp.net的角度来看...
谢谢
根据(有点官方)本指南,我可以制作单选按钮的标签,也可以选择该单选按钮.他们说,
始终为每个复选框和单选按钮使用标签.它们将文本与特定选项相关联,并提供更大的可点击区域.
不幸的是,我无法为我的表单获得此功能.这是我的代码:
<% form_for(@bet) do |f| %>
<%= f.label :bet_type %>
<%= f.radio_button :bet_type, "moneyline" %>
<%= f.label :bet_type_moneyline, "Moneyline" %>
<%= f.radio_button :bet_type, "spread" %>
<%= f.label :bet_type_spread, "Spread" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我也试过这个(因为这是使用FormTagHelper而不是FormHelper的示例):
<% form_for(@bet) do |f| %>
<%= radio_button_tag :bet_type, "moneyline" %>
<%= label_tag :bet_type_moneyline, "Moneyline" %>
<%= radio_button_tag :bet_type, "spread" %>
<%= label_tag :bet_type_spread, "Spread" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是,我仍然无法让它发挥作用.我正在使用rails 2.3.5和ruby 1.8.7.
感谢阅读,也许还有帮助!
运行以下代码并输入数字时,它可以正常工作.但是当输入一个字母时,程序进入一个无限循环,显示"输入一个数字(0退出):cin失败."
我的意图是处理cin失败案例并再次提示用户.
int number;
do{
cout << "Enter a number (0 to exit): ";
cin >> number;
if(cin.fail()){
cout << "cin failed." << endl;
cin.clear();
}else{
cout << "cin succeeded, " << number << " entered." << endl;
}
}while(number != 0);
Run Code Online (Sandbox Code Playgroud) 这是我认为一个简单的问题,但还没有得到解决方案.我想从这里解释的列中获取有效数字.
假设我们有一个varchar列,其中包含以下值
ABC
Italy
Apple
234.62
2:234:43:22
France
6435.23
2
Lions
Run Code Online (Sandbox Code Playgroud)
这里的问题是只选择数字
select * from tbl where answer like '%[0-9]%' 会做到但它会回来
234.62
2:234:43:22
6435.23
2
Run Code Online (Sandbox Code Playgroud)
在这里,显然,2:234:43:22是不可取的,因为它不是有效数字.
期望的结果是
234.62
6435.23
2
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?