小编Bin*_*ier的帖子

如何在两个日期之间循环

我有一个日历,它将选定日期作为字符串传递给方法.在此方法中,我想生成一个列表,其中包含从所选开始日期开始到所选结束日期的所有日期,显然包括所有日期,无论在所选开始日期和结束日期之间有多少天.

下面我有方法的开头,它接受日期字符串并将它们转换为DateTime变量,以便我可以使用DateTime计算函数.但是,我似乎无法计算出如何计算开始日期和结束日期之间的所有日期?显然,第一阶段是从结束日期中减去开始日期,但我无法计算其余步骤.

非常感谢,

亲切的问候.

public void DTCalculations()
{
List<string> calculatedDates = new List<string>();
string startDate = "2009-07-27";
string endDate = "2009-07-29";

//Convert to DateTime variables
DateTime start = DateTime.Parse(startDate);
DateTime end = DateTime.Parse(endDate);

//Calculate difference between start and end date.
TimeSpan difference =  end.Subtract(start);

//Generate list of dates beginning at start date and ending at end date.
//ToDo:
}
Run Code Online (Sandbox Code Playgroud)

c# datetime

19
推荐指数
2
解决办法
2万
查看次数

使用正则表达式查找不在html标记中的特定字符串

我正在尝试使用的特定正则表达式有些困难.我在文档中搜索字符串的每次出现(为了我的目的,我会说它是" mystring "),除了它在标签中的位置,例如

<a href="_mystring_">
Run Code Online (Sandbox Code Playgroud)

不应该匹配,但是

<a href="someotherstring">_mystring_</a>
Run Code Online (Sandbox Code Playgroud)

应该匹配,因为它不在标签内部(内部意思是"在<和>标记内")我也使用.NET的正则表达式函数.

.net html regex

18
推荐指数
3
解决办法
1万
查看次数

是否可以拦截(或意识到)COM引用计数暴露给COM的CLR对象

我已经改写了这个问题.

当.net对象通过COM iterop公开给COM客户端时,会创建一个CCW(COM Callable Wrapper),它位于COM客户端和Managed .net对象之间.

在COM世界中,对象保留其他对象对其的引用数量的计数.当引用计数变为零时,将删除/释放/收集对象.这意味着COM对象终止是确定性的(我们在.net中使用Using/IDispose用于确定性终止,对象终结器是非确定性的).

每个CCW都是一个COM对象,它的引用计数与任何其他COM对象一样.当CCW死亡(引用计数变为零)时,GC将无法找到CCW包装的CLR对象,并且CLR对象有资格进行收集.快乐的日子,一切都与世隔绝.

我想要做的是在CCW死时(即当它的引用计数变为零时)捕获,并以某种方式将此信号通知给CLR对象(例如,通过在被管理对象上调用Dispose方法).

那么,是否可以知道CLR类的COM可调用包装器的引用计数何时变为零?
和/或
是否可以在.net中为CCW提供AddRef和ReleaseRef的实现?

如果不是替代方法是在ATL中实现这些DLL(我不需要任何ATL帮助,谢谢).它不是火箭科学,但我不愿意这样做,因为我是内部唯一的开发人员,任何现实世界的C++或任何ATL.

背景
我在.net中重写了一些旧的VB6 ActiveX DLL(确切地说是C#,但这更像是.net/COM互操作问题,而不是C#问题).一些旧的VB6对象依赖于引用计数来在对象终止时执行操作(参见上面引用计数的解释).这些DLL不包含重要的业务逻辑,它们是我们为使用VBScript与我们集成的客户提供的实用程序和帮助程序函数.

我不想做什么

  • 引用计数.net对象而不是使用垃圾收集器.我对GC很满意,我的问题不在于GC.
  • 使用对象终结器.终结器是非确定性的,在这种情况下我需要确定性终止(如.net中的Using/IDispose惯用法)
  • 在非托管C++中实现IUnknown
    如果我要使用C++路由,我将使用ATL,谢谢.
  • 使用Vb6解决此问题,或重新使用VB6对象.本练习的重点是消除我们对Vb6的构建依赖.

谢谢
BW

接受的答案
分毫不差一千感谢史蒂夫·施泰纳,谁,唯一的(可能是可行的)想出了基于.NET的答案,埃里克,谁用一个非常简单的解决方案ATL上来.

然而,接受的答案是Bigtoe,他建议将.net对象包装在VbScript对象中(我认为不诚实),有效地为VbScript问题提供了一个简单的VbScript解决方案.

谢谢大家.

.net c# reference-counting com-interop

17
推荐指数
2
解决办法
5130
查看次数

VBA如何获取当前用户应用程序数据文件夹的路径?

一般来说,

使用VBA,如何确定当前用户Application Data文件夹的位置?

FileSystemObjects特殊文件夹只知道3个文件夹

  • WindowsFolder
  • SystemFolder
  • 临时文件夹

具体来说,我需要Word宏将文件复制到Application Data文件夹下的文件夹.

例如,在VB.Net中我可以My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData用来做这件事

windows filesystems word-vba

16
推荐指数
2
解决办法
6万
查看次数

NuGet:如何在多个解决方案中保持包版本一致?

我们正在构建一组服务,每个服务都有自己的解决方案和相关项目.其中许多服务依赖于相同的NuGet包.
所有解决方案都启用了"包恢复".

一些解决方案涉及其他解决方案所拥有的程序集,这是我们需要所有解决方案来引用完全相同版本的不同NuGet包的一个明显原因.

所有服务需要协同工作才能达到最终结果.它们作为单个产品的一部分进行打包和安装,这是我们希望所有内容都运行相同版本的NuGet包的另一个原因

我们无法在解决方案之间保持包版本一致.

目前我们手动检查和更新软件包版本,我们也偶尔会遇到编译错误,因为一个解决方案中的项目最终会引用相同软件包的不同版本.

是否有推荐的方法(希望是一个自动过程)?
如果没有Package Restore,我们会更好吗?
有人对这个问题有任何一般性建议吗?

谢谢

更新:我在NugGet项目http://nuget.codeplex.com/workitem/2623上为此创建了一个问题

nuget visual-studio-2012

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

使用Newtonsoft.json.JsonTextWriter编写Json

我正在使用Newtonsoft.json.JsonTextWriter编写一个json.这是我的代码:

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
JsonWriter jsonWriter = new JsonTextWriter(sw);

jsonWriter.Formatting = Formatting.Indented;

jsonWriter.WritePropertyName("Name");
jsonWriter.WriteValue("Allan");
Run Code Online (Sandbox Code Playgroud)

我假设它sw有json格式{"Name":"Allan"}.如何在一些字符串变量中获取书面文本,以便我可以在我的http请求中使用此json数据?

c# json httpwebrequest

13
推荐指数
1
解决办法
3万
查看次数

如何返回在函数中创建的char数组?

我已经编程了很长一段时间,我才真正意识到.我之前创建了许多函数,它们将字符串作为char数组返回(或至少指向它们的指针).

有一天有人指出,当我的函数返回时,我的函数指向的char数组已超出范围,我现在基本上指向一个随机的内存(一个令人讨厌的悬空指针).

我暂时没有注意到这一点,因为输出到控制台时的char数组似乎没有损坏(可能是因为没有时间覆盖该数据).当我返回一个通过读取经常损坏的串口生成的字符串缓冲区(char数组)时,我注意到了这一点.

那么,我该怎么做才能做到最好?

我的错误代码如下:

#include <cstdlib>
#include <iostream>

using namespace std;

char* myBadFunction(){
    char charArray[] = "Some string\n";
    char* charPointer = charArray;
    return charPointer;
}


int main(int argc, char** argv) {

    cout << myBadFunction();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道我应该在调用函数之前在程序中分配内存或创建一个全局变量来放入返回的字符串,但是如果我的被调用函数被许多不同的程序使用,那么它应该如何知道传递的缓冲区的大小提前进入它,何时删除此内存?

以下代码也没有正确地执行我想要的操作:

#include <cstdlib>
#include <iostream>

using namespace std;

void fillArray(char* charPointer){
    char charArray[] = "Some string\n"; // Create string
    charPointer = charArray; // Not correct, want to fill predefined array with created string
    return;
}


int main(int argc, char** argv) { …
Run Code Online (Sandbox Code Playgroud)

c++ string scope char

12
推荐指数
2
解决办法
3万
查看次数

如何处理循环中的异常并继续迭代?

我需要一个for循环,它将完成所有的迭代,即使在任何一个迭代中都有任何异常.

c# for-loop

11
推荐指数
2
解决办法
3万
查看次数

如何生成"随机"但也是"唯一"数字?

如何生成随机数.诸如java等语言如何生成随机数,尤其是如何为GUID完成.我发现像Pseudorandomnumber生成器这样的算法使用初始值.

但我需要创建一个随机数程序,其中一次发生的数字应该永远不会重复,即使系统重新启动等等.我认为我需要将值存储在任何地方,以便我可以检查数字是否重复,但当列表超出限制时,它会太复杂.

c# random

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

[无法更新项目参考'']和[验证网站]延迟的解决方案

伙计们,我有一个旧的ASP.Net网站,我偶尔会修改.

当我去建立或运行网站时,我明白了

无法更新项目引用''.源项目不可用.验证网站

然后逐步浏览项目中的每个文件夹和页面并"验证"它.该网站非常庞大,在我强大的Windows-7 PC上可能需要5分钟以上.

任何想法如何我可以追踪''项目参考并摆脱这个?验证是打破我的心脏,小改变,运行,等待5分钟,测试,小改变,运行等待5分钟...插科打诨

ASP.Net不是我的包,所以请原谅我,如果这是一个男生错误.

asp.net visual-studio-2008

11
推荐指数
2
解决办法
7284
查看次数