我理解事件的目的,特别是在创建用户界面的环境中.我认为这是创建活动的原型:
public void EventName(object sender, EventArgs e);
Run Code Online (Sandbox Code Playgroud)
事件处理程序做了什么,为什么需要它们,以及如何创建一个?
我运行以下代码
sed 's/\([^ ]+\) your \([^ ]+\)/ \2\1er/' < fail
Run Code Online (Sandbox Code Playgroud)
文件失败了
fail your test
Run Code Online (Sandbox Code Playgroud)
上面的命令给了我
fail your test
Run Code Online (Sandbox Code Playgroud)
虽然它应该给"testfailer".
第二个和第一个全球\2\1应该在"呃"这个词的开头.这表明问题可能出在搜索部分的正则表达式中.但是,它们似乎对我来说是正确的.
你看到代码中有任何错误吗?
我的一个sui模型中有一个字段.它代表"标准用户标识符".当字段上存在验证错误时,Rails会打印出"Sui is required"或"Sui已被占用".
我怎么能告诉Rails 'sui'.titleize是"SUI"?我看着Inflector.human,但那不太对劲.
我正在尝试为命令行程序(svnadmin verify)编写一个包装器脚本,它将为操作显示一个很好的进度指示器.这要求我能够在输出后立即查看包装程序的每一行输出.
我想我只是执行程序使用subprocess.Popen,使用stdout=PIPE,然后读取每一行,并相应地对其进行操作.但是,当我运行以下代码时,输出似乎在某处缓冲,导致它出现在两个块中,第1行到第332行,然后是333到439(输出的最后一行)
from subprocess import Popen, PIPE, STDOUT
p = Popen('svnadmin verify /var/svn/repos/config', stdout = PIPE,
stderr = STDOUT, shell = True)
for line in p.stdout:
print line.replace('\n', '')
Run Code Online (Sandbox Code Playgroud)
稍微查看子进程的文档后,我发现bufsize参数为Popen,所以我尝试将bufsize设置为1(缓冲每行)和0(无缓冲区),但这两个值似乎都没有改变行的传递方式.
此时我开始掌握吸管,所以我编写了以下输出循环:
while True:
try:
print p.stdout.next().replace('\n', '')
except StopIteration:
break
Run Code Online (Sandbox Code Playgroud)
但得到了相同的结果.
是否有可能获得使用子进程执行的程序的"实时"程序输出?Python中是否有其他选项可以向前兼容(不是exec*)?
我有一个用VBA(Visual Basic for Applications)编写的Microsoft Word加载项,它将文档及其所有相关内容(嵌入式媒体)压缩为zip存档.创建zip存档后,它将文件转换为字节数组并将其发布到ASMX Web服务.这主要是有效的.
我的主要问题是将大文件传输到网站.我可以成功上传大约40MB的文件,但不能上传140MB的文件(超时/一般故障).
第二个问题是,如果zip存档太大,在VBScript Word加载项中构建字节数组可能会因客户端计算机上的内存不足而失败.
我正在考虑以下选项,我正在寻找有关任一选项或任何其他建议的反馈.
在客户端(MS Word VBA)上打开文件流并一次读取一个"块"并传输到ASMX Web服务,该服务将"块"组装到服务器上的文件中.
这样做的好处是不向应用程序添加任何其他依赖项或组件,我只会修改现有功能.(较少的依赖性更好,因为此解决方案应该在各种服务器环境中工作,并且相对容易设置.)
据我所知,WCF可以通过"分块"或流数据提供传输大文件的问题的解决方案.但是,我对WCF不是很熟悉,并且不确定它究竟能够用于什么,或者我是否可以从VBA与WCF服务进行通信.这有添加另一个依赖项(.NET 3.0)的缺点.但是,如果使用WCF绝对是一个更好的解决方案,我可能不介意采取这种依赖.
我试图声明并使用这样的接口:
public interface IItem<T>
{
string Name { get; set; }
T Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我尝试创建这些项目的列表.这无法编译:
public interface IThing
{
string Name { get; }
IList<IItem<T>> ThingItems { get; }
}
Run Code Online (Sandbox Code Playgroud)
所以我不确定问题出在哪里.items值直到运行时才定义,我需要有项目的集合.我认为这是一个相当标准的模式,但我无法看到我跌倒的地方.
我正在为我的用户提供搜索选项.他们可以搜索城市名称.问题是我存储的城市名称是"圣路易斯"之类的东西.但即使用户输入"圣路易斯"或"圣路易斯",我也希望找到圣路易斯.有关如何创建查找表的任何建议,以某种方式考虑到这一点?
现在我有两个成本领域.一个用于美元,一个用于美分.这有效,但有点难看.它也不允许用户输入术语"免费"或"无成本",如果他们想要的话.但是如果我只有一个字段,我可能需要让我的解析器更聪明一些.你怎么看?
在服务器端,我结合美元和美分将它们存储为我的数据库中的小数.主要是为了让我能够快速收集统计数据(成本平均值等).
您认为将成本存储为字符串会更好吗?然后每当我实际使用统计数据或其他目的的成本时,我会在那时将其转换为小数.还是我走在正确的轨道上?
我们有一个派生自DependencyObject的对象,并实现了一些DependencyProperties.
基本上是这样的:
class Context : DependencyObject {
public static readonly DependencyProperty NameProperty =
DependencyProperty.Register ("Name", typeof (string), typeof (Context), new PropertyMetadata (""));
public string Name {
get {
return (string)this.GetValue (NameProperty);
}
set {
this.SetValue (NameProperty, value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,属性设置,可以绑定等.当我使用TwoWay绑定从WPF绑定到属性时问题出现了.TwoWay部分从未实际发生过,WPF从不调用此属性的集合.我已经设置了这样的绑定:
<TextBox Text="{Binding Path=Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)
在这种情况下,键入文本框应立即更新Name属性,但不会.如果我将Name属性更改为常规POCO属性,它就可以工作(尽管TwoWay的另一面显然不会,除非我实现了INotifyPropertyChanged).
我在这做错了什么?这应该是一件非常简单的事情,但它让我头疼不已.
例如,
int myResult= (new UnmanagedResourceUsingMemorySuckingPig()).GetThingsDone(id);
Run Code Online (Sandbox Code Playgroud)
没有使用块,没有明显的方法来使用using块,没有明显的方法来调用Dispose().当然,UnmanagedResourceUsingMemorySuckingPig确实实现了IDisposable.
c# ×3
ruby ×2
.net ×1
asmx ×1
data-binding ×1
database ×1
events ×1
generics ×1
glob ×1
idisposable ×1
large-files ×1
python ×1
regex ×1
sed ×1
subprocess ×1
vba ×1
wcf ×1
wpf ×1