我拼凑了一个简单的本地服务器来托管一个纯 HTML 的网络应用程序。我需要它是因为某些功能(如 AJAX 请求)无法通过直接从文件系统打开的 HTML 工作。
它看起来像这样并且确实有效。
# source: https://gist.github.com/19WAS85/5424431
$http = [System.Net.HttpListener]::new()
# Hostname and port to listen on
$http.Prefixes.Add("http://localhost:8080/")
# Start the Http Server
$http.Start()
Add-Type -AssemblyName System.Web
# Log ready message to terminal
if ($http.IsListening) {
write-host "HTTP Server Ready! " -f 'black' -b 'gre'
write-host "$($http.Prefixes)" -f 'y'
#write-host "then try going to $($http.Prefixes)other/path" -f 'y'
}
#New-PSDrive -Name MyPowerShellSite -PSProvider FileSystem -Root $PWD.Path
# INFINTE LOOP
# Used to listen for requests
while ($http.IsListening) …Run Code Online (Sandbox Code Playgroud) 我需要缩短这个查询,虽然我擅长SQL,但我还在学习.
SELECT
'doejoh',
DATETIME,
[Recipient-Address], [Message-Subject], [Sender-Address]
FROM
dbo.Logs
WHERE
LEFT([Recipient-Address], 6) IN ('doejoh')
UNION ALL
SELECT
'doejoh',
DATETIME,
[Recipient-Address], [Message-Subject], [Sender-Address]
FROM
dbo.Logs
WHERE
LEFT([Recipient-Address], 10) IN ('john.doe@g')
UNION ALL
SELECT
'doejoh',
DATETIME,
[Recipient-Address], [Message-Subject], [Sender-Address]
FROM
dbo.Logs
WHERE
LEFT([Sender-Address], 6) IN ('doejoh')
UNION ALL
SELECT
'doejoh',
DATETIME,
[Recipient-Address], [Message-Subject], [Sender-Address]
FROM
dbo.Logs
WHERE
LEFT([Sender-Address], 10) IN ('john.doe@g')
ORDER BY
DateTime
Run Code Online (Sandbox Code Playgroud)
我必须使用这个联合,因为在同一个表中,每个用户及其电子邮件地址有4种不同的可能性.话虽这么说,我有30个用户,所以在整个查询中30x4将是120个组.第一列必须是用户名的原因是因为我在Crystal Report中使用该列.
我只是想为我的查询创建一些逻辑来缩短它,同时将每个用户"分配"到适当的第一列.
编辑添加
虽然这会缩短我的查询,但我仍然需要有30个工会:
SELECT
'doejoh',
DATETIME,
[Recipient-Address], [Message-Subject], [Sender-Address]
FROM
dbo.Logs
WHERE
LEFT([Recipient-Address], 6) IN ('doejoh') …Run Code Online (Sandbox Code Playgroud) 我遇到了存储过程的问题(SQL 2005).
我有一个叫tbrm_Tags两列的表,TagID和TagName.我想将TagName值传递给存储过程,然后我想:
Tagname存在以及是否确实返回TagIDTagname不存在,我希望它插入表中并返回TagID.这是我正在使用的存储过程:
@TagID int = null,
@TagName varchar(50)
AS
DECLARE @returnValue int
BEGIN
IF EXISTS (SELECT * FROM tbrm_Tags WHERE TagName = @TagName)
BEGIN
SELECT
TagID
FROM tbrm_Tags
WHERE TagName = @TagName
END
ELSE
BEGIN
IF NOT EXISTS (SELECT * FROM tbrm_Tags WHERE TagName = @TagName)
INSERT INTO tbrm_Tags
(
TagName
)
VALUES
(
@TagName
)
SELECT @returnValue = @@IDENTITY
END …Run Code Online (Sandbox Code Playgroud) 代码是
char** p = (char **) malloc(sizeof(char **) * size); //Where size is some valid value.
p[1] = (char*) malloc(sizeof(char) * 30);
Run Code Online (Sandbox Code Playgroud)
以上代码是否正常?
我的理解是
p -> +---------+
0 char* + -> {c,o,d,e,\0}
+---------+
+---------+
1 char* + -> {t,o,a,d,\0} //The assignment of these values is not shown in the code.
+---------+
Run Code Online (Sandbox Code Playgroud)
所以我们应该写
char** p = (char **) malloc(sizeof(char *) * size);
Run Code Online (Sandbox Code Playgroud)
我对么?
并且p [0]表示*(p + 1)其中p + 1将指向"toad",因此将返回"toad"?
我可能只是谷歌搜索错误,但我找不到一种方法(读取功能)来改变新的Open CV中的相机属性.我需要禁用相机的自动曝光和自动增益.
这甚至可能吗?
我只是创建一个非常简单的C++类,它为我提供了几个方法,如connect()和read(),而不是公开所有Boost.Asio的套接字调用.
现在,我正在尝试找出如何创建一个只读取所需字节数的方法:
SocketClient::read(int bytes, char* data); //reads desired amount of bytes and puts them in data, size of data>bytes!
Run Code Online (Sandbox Code Playgroud)
不幸的是,我read_byte在Boost.Asio中找不到任何功能.我不想丢弃已收到但尚未读取的字节.
我有点希望使用命名空间允许我定义具有已存在类名称的类 - 因此命名空间将是区分它们的方式.我寻求这个,因为我有服务器协议有一些数据类型,所以我需要实现它们的类,以及它们转换为字节.
这就是我做的,它产生了错误:
#ifndef _PACKET_DATA_TYPES
#define _PACKET_DATA_TYPES
namespace mcp_t {
class mcp_t::int { //ERROR: expected an identifier
}
}
#endif
Run Code Online (Sandbox Code Playgroud)
如果这是不可能的,名称空间在这里似乎有点无用 - mcp_int无论如何我将被迫使用.
所以我有标准的C字符串:
char* name = "Jakub";
Run Code Online (Sandbox Code Playgroud)
我想将其转换为UTF-16.我想出,UTF-16将是两倍长 - 一个角色需要两个字符.
所以我创建另一个字符串:
char name_utf_16[10]; //"Jakub" is 5 characters
Run Code Online (Sandbox Code Playgroud)
现在,我相信与ASCII字符我只会用低字节,所以对于所有的人就会像74 00对J等.有了这个信念,我可以制作这样的代码:
void charToUtf16(char* input, char* output, int length) {
/*Todo: how to check if output is long enough?*/
for(int i=0; i<length; i+=2) //Step over 2 bytes
{
//Lets use little-endian - smallest bytes first
output[i] = input[i];
output[i+1] = 0; //We will never have any data for this field
}
}
Run Code Online (Sandbox Code Playgroud)
但是,通过这个过程,我结束了"Jkb".我知道无法正确测试 - 我刚刚将字符串发送到Minecraft Bukkit …
所以我有一个向量,初始是空的,但肯定会被填满.它包含结构实例:
struct some {
int number;
MyClass classInstance;
}
/*Meanwhile later in the code:*/
vector<some> my_list;
Run Code Online (Sandbox Code Playgroud)
当它发生时,我想为向量添加值,我需要将其放大一个.但是,当然,我不想创建任何变量来做到这一点.没有这个请求,我会这样做:
//Adding new value:
some new_item; //Declaring new variable - stupid, ain't it?
my_list.push_back(new_item); //Copying the variable to vector, now I have it twice!
Run Code Online (Sandbox Code Playgroud)
所以,相反,我想new_item通过增加它的大小来创建矢量 - 看看:
int index = my_list.size();
my_list.reserve(index+1); //increase the size to current size+1 - that means increase by 1
my_list[index].number = 3; //If the size was increased, index now contains offset of last item
Run Code Online (Sandbox Code Playgroud)
但这不起作用!似乎空间没有分配 - 我得到 …
不知何故,我没有找到,如何只将第一次出现或正则表达式放入字符串.我可以创建一个正则表达式对象:
static const boost::regex e("<(From )?([A-Za-z0-9_]+)>(.*?)");
Run Code Online (Sandbox Code Playgroud)
现在,我需要匹配([A-Za-z0-9_]+)到std::string,说playername.
std::string chat_input("<Darker> Hello");
std::string playername = e.some_match_method(chat_input, 1); //Get contents of the second (...)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
什么应该代替some_match_method和应该采取什么参数?
c++ ×6
boost ×1
boost-asio ×1
boost-regex ×1
c ×1
char ×1
localserver ×1
logic ×1
namespaces ×1
oop ×1
opencv ×1
pointers ×1
powershell ×1
sockets ×1
sql ×1
stdstring ×1
stdvector ×1
t-sql ×1
utf-16 ×1
webcam ×1