我想使用 Java NIO API 中的数据报通道通过网络传输一个 int 数组。但是,读/写函数只能将 aByteBuffer作为输入。所以我需要将 int 数据存储到 aByteBuffer然后在接收器处读回。我面对java.nio.BufferUnderflowException. 这是我在发送方所做的:
for(i = 0; i < send_data.length; i++)
{
//Write the data onto Buffer
ByteBuffer buffer1 = ByteBuffer.allocate(send_data[i].length*4);
for(j = 0; j < send_data[i].length; j++)
buffer1.putInt(send_data[i][j]);
buffer1.flip();
//Transmit the data
while(buffer1.hasRemaining())
channel.write(buffer1);
}
Run Code Online (Sandbox Code Playgroud)
这里send_data是一个二维数组,其中每一行都被视为一个单独的数据包。
在接收端
for(i = 0; i < k; i++)
{
ByteBuffer buffer = ByteBuffer.allocate((recvpkt[0].length)*4);
channel.receive(buffer);
j = 0;
while(buffer.hasRemaining())
{
recvpkt[i][j] = buffer.getInt();
j = j+1;
}
} …Run Code Online (Sandbox Code Playgroud) 当我编译以下程序时(我从C++ 中的 64 位 ntohl()获得的所有定义的代码?这似乎很合理):
\n\n#include <stdint.h>\n#if defined(__linux__)\n#include <endian.h> //htobe64,be64toh\n#include <arpa/inet.h> //ntohs, ntohl, htonl, htons\n#elif defined(__FreeBSD__) || defined(__NetBSD__)\n#include <sys/endian.h>\n#elif defined(__OpenBSD__)\n#include <sys/types.h>\n#define be16toh(x) betoh16(x)\n#define be32toh(x) betoh32(x)\n#define be64toh(x) betoh64(x)\n#endif\n\nint main()\n{\n int64_t i = 0x1212121234343434;\n int64_t j = be64toh(i);\n return 0;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n使用以下命令编译它时出现链接错误(我正在运行 linux):
\n\ngcc -std=c99 endian_test.c -o endian\nRun Code Online (Sandbox Code Playgroud)\n\n我收到的错误是:
\n\nuser@host ~/src/c $ gcc -std=c99 derp.c \nendian_test.c: In function \xe2\x80\x98main\xe2\x80\x99:\nendian_test.c:17:2: warning: implicit declaration of function \xe2\x80\x98be64toh\xe2\x80\x99 [-Wimplicit-function-declaration]\n int64_t j = be64toh(i);\n ^\n/tmp/ccYonfH4.o: In function `main\':\nendian_test.c:(.text+0x23): undefined reference to …Run Code Online (Sandbox Code Playgroud) 我有一个这样的字符串
“2,099,585.43 美元”
“$”可能是任何符号,如@、#.. 等。
我想把它转换成 2099585.43
有没有简单的方法可以做到这一点?
我想将 ADC 值转换为浮点数。这是我的代码:
uint32_t ADCValue;
char str[15];
ADCValue = HAL_ADC_GetValue(&hadc1);
ADCValue=ADCValue*3.3/4095;
sprintf(str, "%d", Voltage);
HAL_UART_Transmit(&huart2, (uint8_t*)(&str), 6, 100);
HAL_UART_Transmit(&huart2, (uint8_t*) "\n\r", 2, 100);
HAL_Delay(500);
Run Code Online (Sandbox Code Playgroud)
我在 3.3V 下读取 4095 的值,但我正在将 3 传输到缓冲区。我想传输电压的确切值。
我从网络上的多个来源生成了一个数据框,这些数据框事先经过清理,然后使用
cleans <- ls()
cleans <- cleans[grepl("Clean_News", cleans)]
Run Code Online (Sandbox Code Playgroud)
我第一次尝试将它们绑定在一起的灵感来自 Stack Overflow 上的一个解决方案:
All_News <- mapply(get, grep("Clean_News", ls(), value=T))
All_News <- data.frame(t(All_News))
All_News <- as.data.frame(All_News)
Run Code Online (Sandbox Code Playgroud)
然而,这对我来说是一个问题,因为结果是一个数据框,其中每列都是整数或字符的列表。所以,我的主要问题是如何将数据框中的每个列表转换为 df 中的普通列。我在 Stack Overflow 上尝试了很多手工制作的函数,但没有一个对我有用(我猜是因为我缺乏经验......)。df 的形式为
All_News <- data.frame(a=I(list(1,1:2,1:3)), b=I(list(4:6,7:9,10:11)))
Run Code Online (Sandbox Code Playgroud)
或者,我尝试了以下方法,该方法有效:
All_News <- do.call(rbind, lapply(cleans, get))
Run Code Online (Sandbox Code Playgroud)
但有一个巨大的缺点,那就是我没有成功地将数据框的名称作为行名/或第一列放入数据框中......所以,我的第二个问题是如何将单个数据框的名称附加到每个数据框巨大 df 的行,而不是像下面的代码行那样的 id。
t2 <- rbindlist(lapply(cleans, get), idcol = "id")
Run Code Online (Sandbox Code Playgroud)
这并没有多大好处,因为我需要重复使用所有数据帧的名称 x 次作为标识符,例如,并且由于这是一个包含数千个网页的自动化过程,所以我事先不知道每个数据帧中的行数。数据如下:
news1 data1 data2
news1 data5 data6
news2 data3 data4
and so on.
Run Code Online (Sandbox Code Playgroud)
我尝试了一些类似的事情
nr <- length(cleans)
names <- rep(cleans, nr)
names <- sort(names)
Run Code Online (Sandbox Code Playgroud)
但没有取得多大成功。
我的数据中有一个两级因素,我想将其转换为逻辑
a <- str(df$y)
a
Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
Run Code Online (Sandbox Code Playgroud)
我as.logical(df$y)用来将它们转换为逻辑的。然而,数据变成NA
summary(a)
Mode NA's
logical 500000
Run Code Online (Sandbox Code Playgroud)
在哪一点我无法转换数据?
我有一个数据库,其中有几列,以以下格式存储高度数据......
8 英尺 4 英寸
5 英尺 1 英寸
8 英尺 6 英寸
12 英尺 0 英寸
依此类推...3 列超过 20k 条记录。我需要使用 Excel 公式或 VBA 模块将其转换为十进制英尺。我改编了另一个 VBA 脚本,用于将以度分秒列出的坐标转换为十进制度,但我不确定哪里出错了......
Function ConvertFtInches(pInput As String) As Double
'Updateby20140227
Dim xFt As Double
Dim xIn As Double
xFt = Val(Left(pInput, InStr(1, pInput, " ft") - 1))
xIn = Val(Mid(pInput, InStr(1, pInput, " ft") + 2, _
InStr(1, pInput, " in") - InStr(1, pInput, _
" ft") - 2)) / 12
ConvertFtInches = xFt + xIn …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的 JSON 文件:
{
"id": 10011,
"title": "Test procedure",
"slug": "slug",
"url": "http://test.test",
"email": "test@test.com",
"link": "http://test.er",
"subject": "testing",
"level": 1,
"disciplines": [
"discipline_a",
"discipline_b",
"discipline_c"
],
"areas": [
"area_a",
"area_b"
]
},
Run Code Online (Sandbox Code Playgroud)
我试图使用以下命令将其转换为 CSV 文件:
(Get-Content "PATH_TO\test.json" -Raw | ConvertFrom-Json)| Convertto-CSV -NoTypeInformation | Set-Content "PATH_TO\test.csv"
Run Code Online (Sandbox Code Playgroud)
但是,对于学科和领域,我在生成的 CSV 文件中获取 System.Object[]。
有没有办法将所有这些嵌套值作为单独的列放在 CSV 文件中,如 area_1、area_2 等。对于学科也是如此。
我有一个AnsiString,我需要以最有效的方式将它转换为TBytes. 我怎样才能做到这一点 ?
我正在尝试将数据转换为适合特定单元测试的格式.任务是挖掘一组单词,单元测试将确保结果是正确的.我无法访问单元测试,只需要获取const char*const*Result的声明.
所以我需要得到我的
std::vector<string> Words;
Run Code Online (Sandbox Code Playgroud)
至
const char* const* Result;
Run Code Online (Sandbox Code Playgroud)
除以非alpha字符(例如空格).
我知道这是一个常量字符的常量指针,所以我不知道该怎么做,因为它们都是常数?
任何指针(单词双关语并非真正意图)表示赞赏!
data-conversion ×10
c ×2
r ×2
adc ×1
ansistring ×1
bytebuffer ×1
c++ ×1
compilation ×1
csv ×1
dataframe ×1
delphi ×1
endianness ×1
excel ×1
flatten ×1
java ×1
javascript ×1
jquery ×1
json ×1
linker ×1
networking ×1
nio ×1
powershell ×1
stm32 ×1
vba ×1