我需要解析一些类似下面的块的日志文件.
25 Nov 2010 01:11:13 DEBUG [MSMQListenerService]
Processing Recipient with Email : email@internet.com -
<Envelope>
<Body>
<AddRecipient>
<LIST_ID>123456</LIST_ID>
<CREATED_FROM>1</CREATED_FROM>
<UPDATE_IF_FOUND>true</UPDATE_IF_FOUND>
<ALLOW_HTML>true</ALLOW_HTML>
<COLUMN><NAME>EMAIL</NAME><VALUE>email@internet.com</VALUE></COLUMN>
<COLUMN><NAME>AUM</NAME><VALUE>100</VALUE></COLUMN>
<COLUMN><NAME>CITY</NAME><VALUE>New York</VALUE></COLUMN>
<COLUMN><NAME>COMPANY_PROFILE</NAME><VALUE>Building</VALUE></COLUMN>
<COLUMN><NAME>COMPANY_NAME</NAME><VALUE>Company Name</VALUE></COLUMN>
<COLUMN><NAME>COUNTRY_CODE</NAME><VALUE>US</VALUE></COLUMN>
<COLUMN><NAME>FIRST_NAME</NAME><VALUE>My First Name</VALUE></COLUMN>
<COLUMN><NAME>JOB_FUNCTION</NAME><VALUE>My Job</VALUE></COLUMN>
<COLUMN><NAME>LAST_NAME</NAME><VALUE>My Last Name</VALUE></COLUMN>
<COLUMN><NAME>Plan to Buy</NAME><VALUE>Yes</VALUE></COLUMN>
<COLUMN><NAME>STATE</NAME><VALUE></VALUE>NY</COLUMN>
<COLUMN><NAME>Code VALUE</NAME><VALUE>ABCDE_000000_00_00</VALUE></COLUMN>
<COLUMN><NAME>Code Title</NAME><VALUE><![CDATA[Word%3a+Word+Word+to+Word+Words]]></VALUE></COLUMN>
<COLUMN><NAME>ZIP_CODE</NAME><VALUE>11101</VALUE></COLUMN>
<COLUMN><NAME>Form Date</NAME><VALUE>12%2f01%2f2011</VALUE></COLUMN>
</AddRecipient>
</Body>
</Envelope>
Run Code Online (Sandbox Code Playgroud)
但由于misc文本,我不能简单地应用xsl,或将其转换为xml文档.我认为正则表达式将是最好的解决方案,但我对我的正则表达式技巧非常不稳定.基本上我只需要信封中的内容.正则表达式是最好的方法吗?如果框架中的任何内容可以帮助我,我也有.NET.
谢谢!
我们有一个installshield产品,我们在项目的生命周期中拥有相同的升级代码.不知何故,一个版本发布了新的升级代码,所以现在我们开始在客户的添加/删除程序中看到多个条目.
是否有一种方法(安装脚本,可能?)通过并检查产品是否有另一个升级代码,如果它与当前升级代码不匹配则将其删除(我们将把它重置为旧版本并且永远不会改变它再次!)?
在此先感谢您的时间!
我需要一种方法来使一个gtk.TextView在pygtk GUI中忽略鼠标点击.
我已将'editable'属性设置为false以提供用户输入,但它仍然会响应鼠标单击.
此textview显示其他命令的一些输出,因此如果用户单击其中的任何位置,它会将光标移动到单击的位置.我需要避免这种情况.
我需要类似于set_property('sensitive',False)结果的东西,但不会使窗口小部件变灰.它只需要坐在那里忽略各种用户输入.
任何人有任何想法如何实现这一目标?
提前致谢.
这个答案说:
......最后,
Run Code Online (Sandbox Code Playgroud)typedef struct { ... } Foo;声明一个匿名结构并为其创建一个typedef.因此,使用此构造,它在标记名称空间中没有名称,只有typedef名称空间中的名称.这意味着它也无法向前宣布.如果要进行前向声明,则必须在标记名称空间中为其指定名称.
什么是前瞻性声明?
我有一个winform,有两个复选框和一个按钮.在两个复选框的CheckedChanged事件中,我给出了以下代码.
//Enable the button if any of the checkbox is checked
var ChkBoxes = from CheckBox ctrl in this.Controls
where ctrl is CheckBox select ctrl;
button1.Enabled = ChkBoxes.Any(c => ((CheckBox)c).Checked);
Run Code Online (Sandbox Code Playgroud)
但是当检查其中任何一个复选框时,我收到错误" 无法将类型'System.Windows.Forms.Button'的对象强制转换为'System.Windows.Forms.CheckBox'. "执行第二行时出现错误代码
后来我将代码更新为以下版本,工作正常.我做的唯一改变是从CheckBox到Control的修改ctrl类型.
var ChkBoxes = from Control ctrl in this.Controls
where ctrl is CheckBox select ctrl;
button1.Enabled = ChkBoxes.Any(c => ((CheckBox)c).Checked);
Run Code Online (Sandbox Code Playgroud)
我的问题是,在这两种情况下我只返回类型复选框的控件,然后如何出现转换错误.有谁能解释我这是如何工作的?
任何人都可以解释这个设置的含义,以及它的作用是什么?
编辑:谢谢你的答案.了解崩溃报告.让我问一下 - 链接映射文件对我的应用程序的执行有影响吗?
我很长时间都在学习Ada的C++程序员.如果以下任何一种形式不好,请随时指出.我正在努力学习Ada做事的方法,但旧习惯很难打破(我想念Boost!)
我正在尝试加载包含整数,空格和字符串的文件.可能有更好的方法来做到这一点,但我认为我应该将该行加载到一个字符串缓冲区,我知道它不会超过80个字符.我在适当的地方声明了如下的缓冲区变量:
Line_Buffer : String(1..80);
Run Code Online (Sandbox Code Playgroud)
打开文件后,我遍历每一行并在空格字符处拆分缓冲区:
while not Ada.Text_IO.End_Of_File(File_Handle) loop
Ada.Text_IO.Get_Line(File_Handle, Item=>Line_Buffer, Last=>Last);
-- Break line at space to get match id and entry
for String_Index in Line_Buffer'Range loop
if Line_Buffer(String_Index) = ' ' then
Add_Entry(Root_Link=>Root_Node,
ID_String=> Line_Buffer(1..String_Index-1),
Entry_String=> Line_Buffer(String_Index+1..Last-1)
);
end if;
end loop;
end loop;
Run Code Online (Sandbox Code Playgroud)
Add_Entry中发生的事情并不重要,但其规范如下所示:
procedure Add_Entry(
Root_Link : in out Link;
ID_String : in String;
Entry_String : in String);
Run Code Online (Sandbox Code Playgroud)
我想使用无界字符串而不是有界字符串,因为我不想担心必须在这里和那里指定大小.这编译并正常工作,但在Add_Entry中,当我尝试遍历Entry_String中的每个字符时,而不是从1开始的索引,它们从原始字符串中的偏移量开始.例如,如果Line_Buffer为"14 silicon",如果我循环如下,则索引从4到10.
for Index in Entry_String'Range loop
Ada.Text_IO.Put("Index: " & Integer'Image(Index));
Ada.Text_IO.New_Line;
end loop;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来进行这种解析,以便传递给Add_Entry的字符串具有以1开头的边界?另外,当我将切片字符串作为"in"参数传递给过程时,是在堆栈上创建的副本,还是对所用原始字符串的引用?
我有一张订单表,其中包含超过 2 亿条记录。对于统计,我需要获得三个不同的计数。首先是特定日期范围内的订单数量,然后是特定状态下的订单数量,最后是特定日期范围内来自指定状态的订单数量。前两个查询平均返回 10-2000 万条记录,通常需要不到 5 秒。但是,我无法在一个小时内让第三个查询返回结果。以下是实际查询:
SELECT COUNT(*)
FROM orders
WHERE order_date BETWEEN date1 AND date2;
Run Code Online (Sandbox Code Playgroud)
上面有 1000 万条记录要汇总,查询需要 4 秒。
SELECT COUNT(*)
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id
WHERE customer.state = 'PA';
Run Code Online (Sandbox Code Playgroud)
上面有 1500 万条记录要汇总,查询需要 5 秒。
(SELECT COUNT(*)
FROM orders
WHERE order_date BETWEEN date1 AND date2)
UNION
(SELECT COUNT(*)
FROM orders
LEFT JOIN customers ON orders.customer_id=customers.customer_id
WHERE customer.state = 'PA');
Run Code Online (Sandbox Code Playgroud)
上面有4500条记录要汇总,查询需要2个小时。
对于第三个查询,我是否可以采用另一种方法来让我在更合理的时间内进行计数?最好不到一分钟?
情况
我正在使用Java中的RSA加密.我正在尝试加密配备Cyanogenmod的Android 2.2的HTC Saphire(32B)开发人员手机上的数据,然后在运行Mandriva Linux 2010的64位服务器上解密所述数据.我在两台机器上使用相同的公钥,私钥对,可以正确加密/解密Android手机上的数据,可以正确加密/解密Linux服务器上的数据,但我无法加密手机上的数据,然后在服务器上解密.我得到了糟糕的填充异常.我已经确认电话正在正确发送数据,并且服务器正在正确解析数据.因此,我无法弄清楚为什么解密失败.谁能帮我这个?也许Java中的RSA算法有一些关于字大小的潜在假设?
更多的信息:
其他问题
唷!我想就是这样.感谢您的帮助!
java android cross-platform encryption-asymmetric public-key-encryption
有没有办法改变glib中的日志级别,例如在应用程序的发行版中,g_debug的调试消息不会记录到stdout?我真的需要为此实现自己的日志处理程序(g_log_set_handler)吗?