我正在进行一个项目,我有许多由连接(数字等)形成的常量字符串.
例如,我有一个LOCATION格式化的宏,__FILE__并且__LINE__在打印消息或错误时,我可以用它来知道我在代码中的位置:
#define _STR(x) # x
#define STR(x) _STR(x)
#define LOCATION __FILE__ "(" STR(__LINE__) ")"
Run Code Online (Sandbox Code Playgroud)
因此,这将格式化像"file.cpp(42)"的位置.问题是当我尝试将结果转换为宽字符串时:
#define _WIDEN(x) L ## x
#define WIDEN(x) _WIDEN(x)
#define WLOCATION WIDEN(LOCATION)
Run Code Online (Sandbox Code Playgroud)
这适用于GCC,并导致L"file.cpp(42)"插入到我的代码中.但是,当使用MSVC++(使用Visual C++ 2008 Express)尝试此操作时,我收到一个错误:
error: Concatenating wide "file.cpp" with narrow "("
Run Code Online (Sandbox Code Playgroud)
我知道L前缀只会添加到我的表达式的第一个术语中.我也试过这个:
#define _WIDEN(x) L ## #x
Run Code Online (Sandbox Code Playgroud)
哪个"有用",但是给出了L"\"file.cpp\" \"(\" \"42\" \")\""显然不太方便的字符串(而不是我想要的),特别是考虑到这个宏与其他宏相比很简单.
所以,我的问题是:如何才能将它应用于MSVC++中的整个表达式,这样我可以得到与GCC相同的结果?我宁愿不用全宽标记创建第二个字符串,因为我必须为每个标记维护两个宏,这不是很方便并且可能导致错误.另外,我也需要每个字符串的窄版本,所以不幸的是,使用全宽字符串也不是一种选择.
我有一个DATE列,我希望在查询中舍入到下一个较低的10分钟间隔(参见下面的示例).
我设法通过截断秒数然后减去分钟的最后一位数来实现.
WITH test_data AS (
SELECT TO_DATE('2010-01-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS') d FROM dual
UNION SELECT TO_DATE('2010-01-01 10:05:00', 'YYYY-MM-DD HH24:MI:SS') d FROM dual
UNION SELECT TO_DATE('2010-01-01 10:09:59', 'YYYY-MM-DD HH24:MI:SS') d FROM dual
UNION SELECT TO_DATE('2010-01-01 10:10:00', 'YYYY-MM-DD HH24:MI:SS') d FROM dual
UNION SELECT TO_DATE('2099-01-01 10:00:33', 'YYYY-MM-DD HH24:MI:SS') d FROM dual
)
-- #end of test-data
SELECT
d, TRUNC(d, 'MI') - MOD(TO_CHAR(d, 'MI'), 10) / (24 * 60)
FROM test_data
Run Code Online (Sandbox Code Playgroud)
这是结果:
01.01.2010 10:00:00 01.01.2010 10:00:00
01.01.2010 …
我试图使用pexpect测试SSH上是否存在文件.我有大部分代码工作,但我需要捕获值,所以我可以断言文件是否存在.我所做的代码如下:
def VersionID():
ssh_newkey = 'Are you sure you want to continue connecting'
# my ssh command line
p=pexpect.spawn('ssh service@10.10.0.0')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==0:
p.sendline('yes')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==1:
p.sendline("word")
i=p.expect('service@main-:')
p.sendline("cd /opt/ad/bin")
i=p.expect('service@main-:')
p.sendline('[ -f email_tidyup.sh ] && echo "File exists" || echo "File does not exists"')
i=p.expect('File Exists')
i=p.expect('service@main-:')
assert True
elif i==2:
print "I either got key or connection timeout"
assert False
results = p.before # print out the result
VersionID()
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我准备将我的一些实体从身份转换为hilo id-generator.
我不知道如何设计保持下一个高值的表.
有没有最佳做法?需要考虑什么?任何方法都有任何优缺点吗?
我在埃塞俄比亚,我们有13个月.其中12个,每个30天,第13个月,5天或6天.我想使用BindingSourcesort方法按日期对数据进行排序.但要做到这一点,我需要将我的日期字段设置为日期数据类型.当我设置DataType到日期时,我不能输入一些值,如月份值为13,第二个月的日值为30.
我想要的只是让我的应用程序接受13作为一个月,30作为所有月份的一天,以便我可以按日期对数据进行排序.是否可以通过为我的应用程序设置文化或通过其他方式这样做?
我需要从内容中定义html类,所以几乎每个char都可以使用.根据我可能使用的html参考cdata,所以我不应该遇到问题.我想虽然,css和/或javascript/jquery不能很好地发挥作用.
任何人都有没有问题可以使用的字符的经验,或者是否有一个函数/插件/ ..整理类名,以便它们可用?
我这些天正在处理一些商业情报报告.数据由普通的SQL SELECT语句提取.这些陈述变得越来越复杂.
我想报告的数据部分是关键业务.如果我能做一些事情来证明SQL语句的正确性和质量,那么我会感觉更好.
我知道有一些方法可以为应用程序代码执行此操作.但是,如何在SQL级别实现这些目标呢?
提前致谢.
我的客户要求我从我的网络应用程序打印Epson TM U220(http://pos.epson.com/products/TM-U220.htm)上的收据.我不知道该怎么做.是否有任何java applet或其他我可以用于打印的东西?我应该使用JasperReports吗?(JasperReports是否有助于解决这个问题?)如果有可以使用的Flash应用程序,我不反对使用它.
我正在使用Grails作为我的网络应用程序.
当我完成它们时,这些日期指针中的任何一个或两个都需要[发布].我怎么知道这个?我不确定,因为我没有明确地做init.
NSDate *date = [NSDate date];
NSDate *date = [dateWithTimeIntervalSince1970:100000000];
Run Code Online (Sandbox Code Playgroud) 我试图找出用Python压缩流的最佳方法zlib.
我有一个类似文件的输入流(input,下面)和一个输出函数,它接受类似文件(output_function,下面):
with open("file") as input:
output_function(input)
Run Code Online (Sandbox Code Playgroud)
我想input在发送之前对gzip压缩块进行压缩output_function:
with open("file") as input:
output_function(gzip_stream(input))
Run Code Online (Sandbox Code Playgroud)
看起来gzip模块假定输入或输出都是gzip的磁盘文件...所以我假设zlib模块是我想要的.
但是,它本身并没有提供一种简单的方法来创建类似于文件的流......而它支持的流压缩是通过手动将数据添加到压缩缓冲区,然后刷新缓冲区来实现的.
当然,我可以写一个包装器zlib.Compress.compress和zlib.Compress.flush(Compress由它返回zlib.compressobj()),但我担心缓冲区大小错误或类似的东西.
那么,使用Python创建流式,gzip压缩文件的最简单方法是什么?
编辑:为了澄清,输入流和压缩输出流都太大output_function(StringIO(zlib.compress(input.read())))而不适合内存,所以类似的东西并没有真正解决问题.