我正在使用Perl程序从文件中提取文本.我有一个字符串数组,我用它作为文本的分隔符,例如:
$pat = $arr[1] . '(.*?)' . $arr[2];
if ( $src =~ /$pat/ ) {
print $1;
}
Run Code Online (Sandbox Code Playgroud)
但是,数组中的两个字符串是$450和(Buy now).这些问题是字符串中的符号表示Perl正则表达式中的字符串结尾和捕获组,因此文本不会像我想要的那样解析.
有没有解决的办法?
为什么在"配置数据源"的ADVANCE部分中,"GENERATE INSERT UPDATE AND SELECT STATEMENT"是否为灰色?在某些表格上,它不是灰色的,工作正常.
我知道可以通过在属性中将autogenerateeditbutton标记更改为true来实现此方法,并且您可以通过这种方式进行编辑 - 但是当这样做时,您尝试时不会更新数据库.
还有人提到,当我在这个问题上查看论坛时,这可能与设置主键有关.我无法得到一个确凿的答案.
浏览器中的错误如下:
NotSupportedException: Updating is not supported by data source 'AccessDataSource1' unless UpdateCommand is specified.
有关如何使用这些有问题的表更新数据库的任何想法?为什么他们有问题?
主键如何分配给表.这应该在Access中完成吗?可以在VS08中完成吗?
异步获取Web请求的最佳做法是什么?
我想从互联网上下载页面(无关紧要),并尽可能避免阻塞线程.
以前我认为只使用'BeginGetResponse'和'EndGetResponse'对就足够了.但仔细观察后我也发现可以选择使用'BeginGetRequestStream'
[UPDATE] GetRequestStream用于POST操作
然后添加到混乱中,我应该使用stream.BeginRead和EndRead吗?
[更新]这个文章表明,它是更好的处理异步使用Stream.BeginRead的HttpResponse.GetResponseStream
真是一团糟!
有人能指出我正确的方向吗?
什么是最佳实践?
我试图将一个表的所有值插入另一个表.但insert语句接受值,但我希望它接受来自initial_Table的select*.这可能吗?
在这个帖子中,很多人都表示他们使用log4net.我是TraceSources的粉丝,想知道为什么使用log4net.
这就是我喜欢跟踪源的原因:
由于.NET框架在内部使用TraceSources,它也为我提供了一种配置跟踪的一致方法 - 使用log4net,我必须配置log4net以及TraceSources.
什么log4net给我TraceSources没有(或通过编写几个自定义TraceListener无法完成)?
如果构造函数是私有的(.NET),如何设置单元测试?
这是我的班级:
public class Class2
{
// Private constructor.
private Class2()
{
}
public static Class2 getInstance()
{
if (x == null)
{
x= new Class2();
}
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的单元测试:
[TestFixture]
public class Class2Tester
{
private Class2 test;
[SetUp()]
public void SetUp()
{
// I cant do this. How should I setup this up?
test = new Class2();
}
}
Run Code Online (Sandbox Code Playgroud) 对于可怕的过度设计的API而言,似乎存在着相当多的不喜欢,这些API被设计为无限灵活,因此不会使简单的事情变得简单.尽管如此,似乎并不缺少需要您使用8个不同类并编写20行样板文件来完成简单,常见任务的API.我不会提到名字,因为这不应该是关于特定API是否过度设计的火焰.
您认为这些可怕的过度工程API的根本原因是什么?您认为阻止API设计人员制造此类怪物需要做些什么?
编辑:恕我直言,甚至没有创建可重复使用的代码确实是一个很好的答案,因为如果API非常难以使用并且需要大量和大量的样板,重用的好处变得值得怀疑.
我从数据库中获取数据.它有4行6列.我想在HTML表格中显示这个但是遇到了问题.我为6列制作了TH.但是,我在显示4行时遇到了问题.这是我到目前为止:
while (($f1, $t2, $n3, $k4, $d5, $e6) = $sth1->fetchrow_array)
{
push (@first, $f1);
push (@second, $t2);
push (@third, $n3);
push (@fourth, $k4);
push (@fifth, $d5);
push (@sixth, $e6);
}
Run Code Online (Sandbox Code Playgroud)
@ first,@ second ......等等都是数组
如果我这样做,则显示数据:
foreach (@first)
{
print "<td>$_</td>";
}
Run Code Online (Sandbox Code Playgroud)
这是垂直显示数据,但我想让它水平显示.
我通过将位图的Build Action设置为Splashscreen来在WPF中使用SplashScreen功能.在启动屏幕后面,正在检查许可信息,如果失败,我会显示一个MessageBox.
根据这个反馈,这是因为MessageBox.Owner是启动画面,一旦另一个窗口打开,即使它是一个MessageBox,关闭启动画面窗口然后关闭MessageBox,所以用户永远不会看到消息框.
因此,解决方法是将MessageBox.Owner设置为另一个窗口,但这意味着我必须实例化另一个甚至可能不需要的窗口.
是否可以将MessageBox.Owner设置为桌面窗口?以及如何,因为唯一想到的其他函数是GetDesktopWindow() api函数,但它返回一个窗口句柄,MessageBox.Owner是一个WPF窗口.
我在从我的应用程序中下载二进制文件(视频)时遇到问题.在Quicktime中,如果我直接下载它可以正常工作但通过我的应用程序不知何故它搞砸了(即使它们在文本编辑器中看起来完全相同).这是一个例子:
URL u = new URL("http://www.path.to/a.mp4?video");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File(root,"Video.mp4"));
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ( (len1 = in.read(buffer)) > 0 ) {
f.write(buffer);
}
f.close();
Run Code Online (Sandbox Code Playgroud) .net ×2
perl ×2
sql ×2
android ×1
api ×1
asynchronous ×1
c# ×1
constructor ×1
diagnostics ×1
download ×1
html-table ×1
java ×1
log4net ×1
logging ×1
messagebox ×1
ms-access ×1
nunit ×1
private ×1
regex ×1
sql-server ×1
trace ×1
unit-testing ×1
wpf ×1