我有以下问题.我必须通过COM interop读取excel文件.我是COM interop编程的新手.
我用这个搜索一个特定的字符串:
this.sheet = (Excel.Worksheet)this.excelApp.Workbook.Sheets.Item[this.sheetname];
this.sheet.Activate();
Excel.Range firstRow = this.sheet.Range["A1", "XFD1"];
Excel.Range foundRange = firstRow.Find(
this.StringISearch,
Type.Missing,
Type.Missing,
Excel.XlLookAt.xlWhole,
Excel.XlSearchOrder.xlByColumns,
Excel.XlSearchDirection.xlNext,
false,
false,
Type.Missing);
Run Code Online (Sandbox Code Playgroud)
不,我想使用foundRange作为获得另一个范围的起点.
像这样的东西
Excel.Range MyRange = this.sheet.Range[foundRange + 2 rows, + 1 column & lastRow];
Run Code Online (Sandbox Code Playgroud)
我没有办法做到这一点.有吗?
我正在尝试通过MediaStreamSource将Shoutcast流式传输到我的MediaElement.这是一些基础知识的代码.使用ReadData方法,我可以下载原始音频数据(MP3样本),我的问题是如何将流设置为MediaStreamSource.这样它就不起作用(它编译并且MediaFailed事件没有错误,但我听不到任何声音).也许我应该在我的自定义ShoutcastMediaStreamSource中实现所有这些?固定流没有问题,只是非固定.有人可以给我一些建议吗?
在WP7上,没有可能设置"useUnsafeHeaderParsing",因此我无法使用shoutcast元数据获取http标头 - 仅使用原始数据.在ShoutcastMediaStreamSource中,我实现了一些ManagedMediaHelpers的代码.
谢谢
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://radiozetmp3-02.eurozet.pl:8400/;");
request.Method = "GET";
request.Headers["Icy-MetaData"] = "1";
request.UserAgent = "WinampMPEG/5.09";
request.AllowReadStreamBuffering = false;
request.BeginGetResponse(new AsyncCallback(RequestComplete), request);
allDone.WaitOne();
ShoutcastMediaStreamSource smss = new ShoutcastMediaStreamSource(stream);
player.SetSource(smss); // MediaElement
player.Play();
}
public void RequestComplete(IAsyncResult r)
{
HttpWebRequest request = (HttpWebRequest)r.AsyncState;
HttpWebResponse response = request.EndGetResponse(r) as HttpWebResponse;
stream = response.GetResponseStream();
IAsyncResult res = stream.BeginRead(buffer, 0, buffer.Length, callback, null);
allDone.Set();
}
public void ReadData(IAsyncResult r)
{
int bytes = stream.EndRead(r);
if …Run Code Online (Sandbox Code Playgroud) TextMate中是否有键盘快捷键在项目中创建新的空白文件?基本上,它与点击Project Drawer底部的新文件+图标一样.
我的C++非常生疏,所以现在我开始将它用于一个业余爱好项目,我必须"升级" - 重复...
#include "stdafx.h"
#include "stdlib.h"
class a
{
public:
void call() { printf("CALL called\n"); }
};
class b
{
public:
b() { this->pointer = new a; }
void call() { this->pointer->call(); }
private:
a* pointer;
};
int _tmain(int argc, _TCHAR* argv[])
{
b t;
t.call();
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这会导致内存泄漏吗?如果程序决定它不再需要它们,我怎么能删除指针呢?
"删除t"是否足够或者是否会产生内存泄漏?
我们使用spring配置jetty并加载所有内容,我正在尝试使用jersey进行Web服务并使用jetty/spring库,以便我可以将一些服务类自动装入我的球衣资源中,但是我遇到了麻烦启动服务器,因为它始终表示ServletContext为null.
这是我的spring config xml:
<property name="handler">
<bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerList">
<property name="handlers">
<list>
<bean class="org.eclipse.jetty.servlet.ServletContextHandler">
<property name="eventListeners">
<list>
<bean class="org.springframework.web.context.ContextLoaderListener" />
<bean
class="org.springframework.web.context.request.RequestContextListener" />
</list>
</property>
<property name="initParams">
<map>
<entry>
<key>
<value>contextConfigLocation</value>
</key>
<value>classpath:applicationContext.xml</value>
</entry>
</map>
</property>
</bean>
<bean class="org.eclipse.jetty.servlet.ServletHandler">
<property name="servlets">
<list>
<bean class="org.eclipse.jetty.servlet.ServletHolder">
<property name="name" value="Jersey" />
<property name="servlet">
<bean
class="com.sun.jersey.spi.spring.container.servlet.SpringServlet" />
</property>
<property name="initParameters">
<map>
<entry>
<key>
<value>com.sun.jersey.config.property.packages</value>
</key>
<value>com.mycompany.ws.resource</value>
</entry>
<entry>
<key>
<value>contextConfigLocation</value>
</key>
<value>classpath:applicationContext.xml</value>
</entry>
</map>
</property>
</bean>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)
我按照这里的说明:http://blogs.oracle.com/enterprisetechtips/entry/jersey_and_spring …
背景: 我正在开发基于WinForm的.NET 4.0桌面应用程序,该应用程序具有很少的线程和计时器,并使用一些GDI处理来进行用户控制.在开发过程中,我经常窥视sysinternal的Process Explorer,以确保我的应用程序没有任何异常,例如GDI句柄数或用户对象等.
问题: 使用Process Explorer时,我发现Process Explorer 中我的应用程序属性的Threads选项卡显示了很多很多条目"clr.dll!LogHelp_TerminateOnAssert + 0x58f68".这是正常的吗?我认为这不是因为非其他.net应用程序(我以前编写的)在Process Explorer的属性中显示相同的条目.
什么是LogHelp_TerminateOnAssert()?(我相信它是clr.dll中的一个函数)
为什么LogHelp_TerminateOnAssert()被调用了这么多次?
任何指针都会非常有用.
提前致谢.
我是否正确地认为如果我符合DLNA 1.5,我实施了UPnP AV?除了指定最低格式要求外,DLNA还能得到什么?DLNA不是建立在UPnP之上吗?我确信DLNA设备发现完全基于SSDP(UPnP的设备发现协议).DLNA是否在内容发现或内容交付规范中添加了一些内容?
例如,Boxee和XBMC都支持UPnP - 它们不适用于所有DLNA设备吗?
这与我之前的问题半关联.正如上一个问题所述,我有一个桌面应用程序,它会调用另一个将启动特定进程的Main方法.桌面应用程序和单独的Main方法都将访问相同的HSQLDB数据库.
在实现这一目标之前,我的桌面应用程序刚刚使用类似这样的连接URL访问HSQLDB数据库:
jdbc:hsqldb:file:/some/path/myDatabase
Run Code Online (Sandbox Code Playgroud)
现在,这在单个用户环境中工作正常.既然我已经拥有一个桌面应用程序的多用户环境以及想要读/写此数据库的单独主进程,我想让这个数据库成为共享资源.
我已经看过HSQLDB文档以及关于创建共享HSQLDB数据库的这篇文章,但无济于事.
在帖子中,它讨论了通过代码启动服务器.我不认为这是我想要做的事情,因为我希望HSQLDB数据库一直在运行,因为桌面应用程序可能有多个用户.
查看官方的HSQLDB文档,它声明您可以像这样启动HSQLDB服务器:
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
Run Code Online (Sandbox Code Playgroud)
如果我用我自己的数据库文件和名称运行上面的命令,它似乎启动好了:
[Server@6ca1c]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@6ca1c]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@6ca1c]: Startup sequence initiated from main() method
[Server@6ca1c]: Loaded properties from [/some/path/myDatabase/server.properties]
[Server@6ca1c]: Initiating startup sequence...
[Server@6ca1c]: Server socket opened successfully in 16 ms.
Run Code Online (Sandbox Code Playgroud)
然后我将连接URL更改为以下内容:
jdbc:hsqldb:hsql://localhost/xdb
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎不起作用.关于我做错了什么或者我可能错过什么的任何想法?
此外,当桌面应用程序调用外部Main方法时,桌面应用程序只会挂起,因为外部Main方法会注意到桌面应用程序似乎锁定了数据库.一旦我关闭桌面应用程序,外部Main方法实际上就会按照我的预期执行.
我的一个表中有一个已分配索引的列.它阻止了我有两个相同的ID号.
我假设它不是让我有两个相同ID的条目是因为它已被设置为Unique.
我想知道如何删除此规则,以便我可以多次插入相同的ID号.
干杯
如果我有一个日期,2011-01-02并且我7从该日期减去天数它应该给我2010-12-26,但它给了我2011-01-26?
请参阅下面的JS以验证链接:
var date = new Date('2011','01','02');
alert('the original date is '+date);
var newdate = new Date(date);
newdate = newdate.setDate(newdate.getDate() - 7);
var nd = new Date(newdate);
alert('the new date is '+nd);
Run Code Online (Sandbox Code Playgroud)