问题列表 - 第7498页

了解C#中的事件和事件处理程序

我理解事件的目的,特别是在创建用户界面的环境中.我认为这是创建活动的原型:

public void EventName(object sender, EventArgs e);
Run Code Online (Sandbox Code Playgroud)

事件处理程序做了什么,为什么需要它们,以及如何创建一个?

.net c# events event-handling

310
推荐指数
6
解决办法
35万
查看次数

sed中正则表达式中的全局和分组问题

我运行以下代码

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应该在"呃"这个词的开头.这表明问题可能出在搜索部分的正则表达式中.但是,它们似乎对我来说是正确的.

你看到代码中有任何错误吗?

regex glob sed

1
推荐指数
1
解决办法
1258
查看次数

如何告诉Rails如何正确地缩写首字母缩略词?

我的一个sui模型中有一个字段.它代表"标准用户标识符".当字段上存在验证错误时,Rails会打印出"Sui is required"或"Sui已被占用".

我怎么能告诉Rails 'sui'.titleize是"SUI"?我看着Inflector.human,但那不太对劲.

ruby ruby-on-rails

5
推荐指数
1
解决办法
482
查看次数

使用子进程获取实时输出

我正在尝试为命令行程序(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*)?

python subprocess

124
推荐指数
8
解决办法
9万
查看次数

如何将大文件从MS Word加载项(VBA)传输到Web服务器?

概观

我有一个用VBA(Visual Basic for Applications)编写的Microsoft Word加载项,它将文档及其所有相关内容(嵌入式媒体)压缩为zip存档.创建zip存档后,它将文件转换为字节数组并将其发布到ASMX Web服务.这主要是有效的.

问题

我的主要问题是将大文件传输到网站.我可以成功上传大约40MB的文件,但不能上传140MB的文件(超时/一般故障).

第二个问题是,如果zip存档太大,在VBScript Word加载项中构建字节数组可能会因客户端计算机上的内存不足而失败.

潜在解决方案

我正在考虑以下选项,我正在寻找有关任一选项或任何其他建议的反馈.

方案一

在客户端(MS Word VBA)上打开文件流并一次读取一个"块"并传输到ASMX Web服务,该服务将"块"组装到服务器上的文件中.

这样做的好处是不向应用程序添加任何其他依赖项或组件,我只会修改现有功能.(较少的依赖性更好,因为此解决方案应该在各种服务器环境中工作,并且相对容易设置.)

题:

  • 是否有这样做或任何推荐技术的例子(在VBA中的客户端或C#/ VB.NET中的Web服务中)?

方案二

据我所知,WCF可以通过"分块"或流数据提供传输大文件的问题的解决方案.但是,我对WCF不是很熟悉,并且不确定它究竟能够用于什么,或者我是否可以从VBA与WCF服务进行通信.这有添加另一个依赖项(.NET 3.0)的缺点.但是,如果使用WCF绝对是一个更好的解决方案,我可能不介意采取这种依赖.

问题:

  • WCF是否可靠地支持这种性质的大型文件传输?如果是这样,这涉及到什么?任何资源或例子?
  • 你能从VBA调用WCF服务吗?任何例子?

wcf vba data-transfer asmx large-files

2
推荐指数
1
解决办法
3465
查看次数

无法定义IList <T>,其中T是通用接口

我试图声明并使用这样的接口:

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值直到运行时才定义,我需要有项目的集合.我认为这是一个相当标准的模式,但我无法看到我跌倒的地方.

c# generics

1
推荐指数
1
解决办法
678
查看次数

关于桌子设计的问题

我正在为我的用户提供搜索选项.他们可以搜索城市名称.问题是我存储的城市名称是"圣路易斯"之类的东西.但即使用户输入"圣路易斯"或"圣路易斯",我也希望找到圣路易斯.有关如何创建查找表的任何建议,以某种方式考虑到这一点?

database-design full-text-search

7
推荐指数
1
解决办法
301
查看次数

我应该如何向用户提供成本字段,并将其存储在数据库中?

现在我有两个成本领域.一个用于美元,一个用于美分.这有效,但有点难看.它也不允许用户输入术语"免费"或"无成本",如果他们想要的话.但是如果我只有一个字段,我可能需要让我的解析器更聪明一些.你怎么看?

在服务器端,我结合美元和美分将它们存储为我的数据库中的小数.主要是为了让我能够快速收集统计数据(成本平均值等).

您认为将成本存储为字符串会更好吗?然后每当我实际使用统计数据或其他目的的成本时,我会在那时将其转换为小数.还是我走在正确的轨道上?

ruby database ruby-on-rails

1
推荐指数
1
解决办法
371
查看次数

WPF中的自定义依赖项属性和TwoWay绑定

我们有一个派生自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).

我在这做错了什么?这应该是一件非常简单的事情,但它让我头疼不已.

data-binding wpf dependency-properties

7
推荐指数
1
解决办法
8635
查看次数

是否会为匿名变量调用dispose?

例如,

int myResult= (new UnmanagedResourceUsingMemorySuckingPig()).GetThingsDone(id);
Run Code Online (Sandbox Code Playgroud)

没有使用块,没有明显的方法来使用using块,没有明显的方法来调用Dispose().当然,UnmanagedResourceUsingMemorySuckingPig确实实现了IDisposable.

c# idisposable anonymous-class

2
推荐指数
1
解决办法
653
查看次数