问题列表 - 第10619页

MySQL导出到outfile:CSV转义字符

我有一个包含一些常见字段的时间表数据库表.

id, client_id, project_id, task_id, description, time, date 
Run Code Online (Sandbox Code Playgroud)

还有更多,但这就是它的要点.

我在该表上运行导出过夜的CSV文件,以便为用户提供其数据的备份.它还用作带有一些自定义报告的宏Excel文件的数据导入.

这一切都与我一起使用php循环遍历时间表并将行打印到文件.

问题在于大型数据库可能需要数小时才能运行,这是不可接受的.所以我用MySQL INTO OUTFILE命令重新编写它,它将它减少到几秒钟才能运行,这很棒.

现在的问题是我似乎无法在描述字段中转义所有新行字符等.实际上,用户可以在此输入任何字符组合,包括回车/新行.

这是我的MySQL代码的片段:

SELECT id, 
       client,
       project,
       task,
       REPLACE(REPLACE(ifnull(ts.description,''),'\n',' '),'\r',' ') AS description, 
       time,
       date  
      INTO OUTFILE '/path/to/file.csv'
      FIELDS ESCAPED BY '""'
      TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\n'
      FROM ....
Run Code Online (Sandbox Code Playgroud)

但...

当我尝试查看输出文件的来源时,文件中仍然存在换行符,因此Excel的CSV导入会破坏Excel向导创建的所有奇特的宏和数据透视表.

关于最佳行动方案的任何想法?

mysql sql excel into-outfile

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

确定InputStream的大小

我目前的情况是:我必须读取文件并将内容放入InputStream.之后我需要把它的内容InputStream放到一个字节数组中,这个数组需要(据我所知)的大小InputStream.有任何想法吗?

根据要求,我将显示我从上传文件创建的输入流

InputStream uploadedStream = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
java.util.List items = upload.parseRequest(request);      
java.util.Iterator iter = items.iterator();

while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();
    if (!item.isFormField()) {
        uploadedStream = item.getInputStream();
        //CHANGE uploadedStreambyte = item.get()
    }
}
Run Code Online (Sandbox Code Playgroud)

该请求是一个HttpServletRequest对象,它是象FileItemFactoryServletFileUpload是从Apache通用FileUpload包.

java arrays size inputstream

62
推荐指数
6
解决办法
18万
查看次数

Javascript局部变量声明

基本上这是一个如何访问本地范围处理程序的问题.我试图为全局变量定义实现类似的东西,如:

window['newObject'] = "some string";
alert(newObject);
Run Code Online (Sandbox Code Playgroud)

但对于当地范围.现在我只有解决方案是使用evals:

eval("var newObject='some string'");
Run Code Online (Sandbox Code Playgroud)

但这是一个非常丑陋的解决方案......最好的方法就是在window []解决方案中使用一些本地范围的引用,但我从来没有听说过任何对本地范围的引用......有什么想法吗?

示例如下:

function x(arg)
{
   localScope[arg.name]=arg.value;
   alert(sex);
}

x({name:"sex", value:"Male"});
Run Code Online (Sandbox Code Playgroud)

javascript variables local definition

8
推荐指数
2
解决办法
7165
查看次数

Javascript/jQuery中的"in"语句

Javascript或jQuery有时像Python中的"in"语句吗?

"dea"中的"a" - >真

谷歌搜索的单词无望:(

javascript jquery

4
推荐指数
2
解决办法
9313
查看次数

Velocity中的条件运算符

有没有办法在Velocity中做三元运算符?这就是我想做的事情:

#set ($name = ($args.get(0) == "") ? "default" : $args.get(0))
Run Code Online (Sandbox Code Playgroud)

而不是粗糙的if-else

#if ($args.get(0) == "")
    #set ($name = "default")
#else
    #set ($name = $args.get(0))
#end
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

velocity ternary-operator

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

如何在C#中执行快速Web请求

我有一个基于HTTP的API,我可能需要多次调用.问题是我无法获得少于约20秒的请求,尽管通过浏览器发出的相同请求几乎是即时的.以下代码说明了到目前为止我是如何实现它的.

WebRequest r = HttpWebRequest.Create("https://example.com/http/command?param=blabla");
var response = r.GetResponse();
Run Code Online (Sandbox Code Playgroud)

一种解决方案是进行异步请求,但我想知道为什么需要这么长时间,如果我可以避免它.我也尝试过使用WebClient类,但我怀疑它在内部使用WebRequest.

更新:

在发布模式下运行以下代码大约需要40秒(使用秒表测量):

WebRequest g = HttpWebRequest.Create("http://www.google.com");
var response = g.GetResponse();
Run Code Online (Sandbox Code Playgroud)

我在一所大学工作,网络配置可能会有不同的因素影响性能,但直接使用浏览器表明它应该接近即时.

更新2:

我将代码上传到远程机器并且工作正常,因此结论必须是.NET代码与浏览器相比做了额外的事情,或者它在通过大学网络解决地址时遇到了问题(代理问题或其他什么?!).

c# httpwebrequest

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

平台C预处理器定义

我正在用C++编写一个小型库,我需要能够在很多不同的平台上构建,包括iPhone,Windows,Linux,Mac和Symbian S60.我编写了大部分代码,因此它与平台无关,但有些部分必须基于每个平台编写.

目前我通过根据当前平台包含一个不同的头来实现这一点,但是我很难充实它,因为我不确定为所有平台定义了哪些预处理器定义.对于Windows,我通常可以依靠看到WIN32或_WIN32.对于Linux,我可以依靠看到_UNIX_,但我不太确定其他平台或它们的64位变体.有没有人有平台上找到的不同定义的列表,或者我是否必须求助于配置文件或gcc参数?

c++ portability c-preprocessor

7
推荐指数
1
解决办法
3461
查看次数

创建sql表的副本

我需要一个查询来创建一个表,它是一个精确的副本,但具有不同的表名,并且使用sql查询没有来自源表的任何数据!

sql sql-server

4
推荐指数
1
解决办法
6209
查看次数

我在哪里可以找到size_t的定义?

我看到用这种类型定义的变量,但我不知道它来自何处,也不知道它的目的是什么.为什么不使用int或unsigned int?(其他"类似"类型呢?Void_t等).

c c++ variables

115
推荐指数
4
解决办法
18万
查看次数

System.out.println()的JUnit测试

我需要为一个设计很差的旧应用程序编写JUnit测试,并将大量错误消息写入标准输出.当getResponse(String request)方法行为正确时,它返回XML响应:

@BeforeClass
public static void setUpClass() throws Exception {
    Properties queries = loadPropertiesFile("requests.properties");
    Properties responses = loadPropertiesFile("responses.properties");
    instance = new ResponseGenerator(queries, responses);
}

@Test
public void testGetResponse() {
    String request = "<some>request</some>";
    String expResult = "<some>response</some>";
    String result = instance.getResponse(request);
    assertEquals(expResult, result);
}
Run Code Online (Sandbox Code Playgroud)

但是当它得到格式错误的XML或者不理解它返回的请求并将null一些东西写入标准输出时.

有没有办法在JUnit中断言控制台输出?要抓住像这样的案例:

System.out.println("match found: " + strExpr);
System.out.println("xml not well formed: " + e.getMessage());
Run Code Online (Sandbox Code Playgroud)

java console junit

346
推荐指数
8
解决办法
22万
查看次数