小编Luk*_*keP的帖子

Twitter Bootstrap模式形式:如何拖放?

我希望能够走动(在变灰的背景下,通过拖放)由引导2.提供的模态形式谁能告诉我什么实现,这是最好的做法呢?

drag-and-drop twitter-bootstrap

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

验证php中的日期格式

我正在尝试使用PHP验证日期.

我希望以下格式有效:

d/m/yy
d/m/yyyy
dd/m/yy
dd/m/yyyy
d/mm/yy
d/mm/yyyy
dd/mm/yy
dd/mm/yyyy
Run Code Online (Sandbox Code Playgroud)

我尝试过很多正则表达式和checkdate()函数的不同变体.目前我有这样的事情:

function _date_is_valid($str)
{
     if(strlen($str) == 0)
         return TRUE;
     if(substr_count($str,'/') == 2)
     {
         if (preg_match("/^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2}))/", $str))
         {
             $datearray = explode('/',$str);
             if($datearray[2] > 2030)
                 return FALSE;
             return checkdate($datearray[1], $datearray[0], $datearray[2]);
         } 
         else 
         {
             return FALSE;
         }
     }
     return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

然而,这验证了11/11/200和11/11/200的日期#

如何验证日期以匹配所需的格式?

编辑:我可以检查datearray [2]在10到30之间以及2010年和2030年之间.但有没有办法使用正则表达式进行检查?

Edit1:在strlen上返回TRUE($ str)== 0是因为我希望用户能够在不知道事件何时发生的情况下添加事件,以便其他人可以限定日程安排并将事件分配到特定日期以后


仅供记录.我最终做了:

function _date_is_valid($str)
{
    if(strlen($str) == 0) //To accept entries without a date
        return TRUE;
    if(substr_count($str,'/') == 2)
    {
        list($d,$m,$y) = explode('/',$str);
        if(($y >= …
Run Code Online (Sandbox Code Playgroud)

php regex validation date

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

如何从3个值<int,int,DateTime>创建唯一ID?

我正在解析一个在线提要(tcp中继),每秒发送大约30-50条消息(300-500行数据).消息包含两种类型的信息:订单历史.

所以,对于订单,每个订单都有一个唯一的ID,我有:

private static Dictionary<long,MarketOrder> MarketOrders = new Dictionary<long,MarketOrder>();
Run Code Online (Sandbox Code Playgroud)

在我们进入时插入订单.数据来自缓存文件,因此邮件可以包含旧的数据,必须过滤掉.我现在正在这样做:

if (MarketOrders.ContainsKey(order.OrderID))
{
    // If record exists in a dictionary add hits and overwrite the object if newer.
    int hits = MarketOrders[order.OrderID].Hits;

    if (MarketOrders[order.OrderID].LastUpdated < order.LastUpdated)
    {
        MarketOrders[order.OrderID] = order;
    }

    MarketOrders[order.OrderID].Hits = hits + 1;
}
else
{
    // If not, add new one
    order.Hits = 1;
    MarketOrders.Add(order.OrderID, order);
}
Run Code Online (Sandbox Code Playgroud)

这在BackgroundWorker进程中运行,当字典项计数达到2500时,它被深度克隆(使用二进制序列化程序),清除并启动另一个后台进程,将克隆的副本插入数据库.清除字典后,将再次插入订单.所以基本上我试图尽可能多地接收并批量插入数据库.

我正在尝试用历史数据做类似的事情.没有唯一的ID,唯一性来自<int, int, DateTime>价值组合.

我需要一种从这三个值生成唯一键的快速方法,因此我可以将它存储在字典中,就像我对订单一样,或者存储和过滤该数据的另一种方法.

有什么建议?我的目标是.NET 4.0.

.net c# .net-4.0

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

如何在 UWP 应用中包含大量资产(图像)

我正在寻找一种在 UWP 应用中包含 75,000(~750MB)个 png 文件的方法。

将它们添加为项目中的内容会在构建时引发错误:

Processing Resources failed with error : Too many resources defined for package.
Run Code Online (Sandbox Code Playgroud)

并使 Visual Studio 慢得无法忍受。.csproj 文件大小为 4MB。

我还尝试将它们添加到一个单独的项目中,如 Build Action: None 和 Copy to Output : Always。它可以构建,并且在某种程度上做了它应该做的事情,但它并不是真的可用。在 VS 中点击错误,卡住了 15-20 分钟

编辑:

手动打包应用程序可能是一种选择,但我还没有机会尝试。我的另一个想法是在构建过程中压缩所有资产,并在首次安装时将它们解压缩到本地文件夹中。

visual-studio uwp

5
推荐指数
0
解决办法
163
查看次数

如何使用 CallerMemberName 属性更改 ILoggerFacade 实现以跟踪调用方方法?

我正在尝试在我的新 WPF 4.5 CompositeWPF (Prism) 项目中实现日志记录功能。这要求我在我的代码中实现 ILoggerFacade。该接口仅实现 1 个方法:Log(string message, Category category, Priority priority).

ILoggerFacade接口:

public interface ILoggerFacade
{
    void Log(string message, Category category, Priority priority);
}
Run Code Online (Sandbox Code Playgroud)

我的实现:

public class Log4NetLogger : ILoggerFacade
{
    private static readonly ILog m_Logger = LogManager.GetLogger(typeof(ILoggerFacade));

    public void Log(string message, Category category, Priority priority)
    {
        switch (category)
        {
            case Category.Debug:
                m_Logger.Debug(message);
                break;
            case Category.Warn:
                m_Logger.Warn(message);
                break;
            case Category.Exception:
                m_Logger.Error(message);
                break;
            case Category.Info:
                m_Logger.Info(message);
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我相信通过新引入的[CallerMemberName]属性,如果我知道如何做这样的事情,我应该能够将调用者方法名称传递给记录器:

public …
Run Code Online (Sandbox Code Playgroud)

.net c# prism .net-4.5

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