我正在从文件中读取数据并尝试将原始数据显示为2位十六进制字符串.
我正在使用Qt框架,特别是QTextEdit.
我尝试了很多不同的方法,几乎完成了我想要它做的事情,但它有一些我不知道的意外错误.
目前这是我的实施:
1)读入数据:
ifstream file (filePath, ios::in|ios::binary|ios::ate);
if (file.is_open())
{
size = file.tellg();
memblock = new char [size+1];
file.seekg(0, ios::beg);
file.read(memblock, size);
file.close();
}
Run Code Online (Sandbox Code Playgroud)
2)创建一个将使用的QString(因为QTextEdit需要一个QString):
QString s;
Run Code Online (Sandbox Code Playgroud)
3)循环遍历数组,将每个连续的字符附加到QString.
int count = 0;
for(i=0;i<size;i++)
{
count++;;
s.append(QString::number(memblock[i], 16).toUpper());
s.append("\t");
if (count == 16)
{
s.append("\n");
count -= 16;
}
}
Run Code Online (Sandbox Code Playgroud)
现在这个工作正常,除非它到达一个角色FF,它显示为FFFFFFFFFFFFFFFF
所以我的主要问题是:
我希望这个实现尽可能快,所以如果像sprintf这样的东西可以工作,请告诉我,因为我猜想QString :: number可能会更快.
似乎无法在任何地方找到任何文章.我基本上想从程序中捕获"无法找到模块"错误,并可选择安装它,但我似乎无法捕获任何错误,即使在我的require语句中使用try/catch也是如此.这甚至可能吗?我没有在任何地方看到它.
例如:
try {
var express = require('express');
} catch (err){
console.log("Express is not installed.");
//proceed to ask if they would like to install, or quit.
//command to run npm install
}
Run Code Online (Sandbox Code Playgroud)
我想这可以通过单独的.js启动文件来完成,而不需要任何第三方需要,并且只是fs用来检查node_modules,然后可选地npm install从子进程运行,然后node app与另一个子进程运行.但感觉从单个app.js文件中执行此操作会更容易
我在节点程序中的子进程中运行了一些代码,如下所示:
try{
var data = fs.readFileSync(urlPath, {"encoding":"utf8"});
} catch (err) {
console.log("Error reading url file...");
throw err;
} finally {
console.log("File read!");
var array = data.split("\n");
console.log("Found " + array.length + " urls");
Run Code Online (Sandbox Code Playgroud)
此代码从另一个节点程序调用,需要等待此文件中的所有操作完成.不幸的是,在finally执行块下的任何代码之前,子进程正在退出代码0 .
这让我相信即使try-catch-finally是异步也是如此.那是对的吗?
这可能是一项非常重要的任务,但我正在寻找可以帮助我用传单创建3D地图的东西.我已经开始运行传单,我只想将它们转换为3D透视图.
我唯一的目的是以3D形式展示建筑物.我已经使用过OSM Buildings,但它们并不是真正的3D.
我还发现了Pelican Mapping的ReadyMap,它已经支持Leaflet,但我不能让这个API成功运行,因为他们有一段时间没有更新它.我已经问过他们的Github了,所以除非我能弄清楚如何解决ReadyMap问题(并且他们的src是成千上万行),所以现在没有太多来自这条路.我也不知道OSM建筑物是否可以与ReadyMap一起使用.
所以现在,我正在寻找其他任何选择.我最大的两个前景是
和
我基本上希望我的最终结果看起来像这样:
转到此处,然后单击右侧的"地球".
任何帮助将不胜感激!
好像我已经做了很多次,但由于某种原因,今天它只是不想工作.
我想将16位向量的MSB分配给单位变量.
Din : in STD_LOGIC_VECTOR (15 downto 0);
...
signal signBit : std_logic;
begin
signBit <= Din(15 downto 15);
Run Code Online (Sandbox Code Playgroud)
给出的错误是:
Type of signBit is incompatible with type of Din.
Run Code Online (Sandbox Code Playgroud)
是的,我得到它,向量与std_logic不一致,但这是1位,清楚地表示为(15 downto 15)
对不起,如果之前有人询问,我甚至不确定要搜索什么来提出这个问题.
当我创建一个时typedef struct,我通常做这样的事情:
typedef struct myStruct {
int a;
int b;
struct myStruct *next;
} MyStruct;
Run Code Online (Sandbox Code Playgroud)
所以我最后宣布它MyStruct.然后,当我创建将其作为参数传递的函数时,我写道
int doSomething(MyStruct *ptr){
}
Run Code Online (Sandbox Code Playgroud)
然而,我对一个项目的朋友合作,我所遇到他的代码风格,这是也声明*MyStructP是这样的:
typedef struct myStruct {
int a;
int b;
struct myStruct *next;
} MyStructR, *MyStructP;
Run Code Online (Sandbox Code Playgroud)
然后他MyStructP在他的函数中使用,所以他的参数看起来像:
int doSomething(MyStructP)
Run Code Online (Sandbox Code Playgroud)
所以他不必*在参数列表中使用.这让我很困惑,因为当我查看参数列表时,我总是寻找*确定arg是否为指针的方法.最重要的是,我正在创建一个函数,它接受我创建的结构和他创建的结构,所以我的arg有*而他的没有.超级混乱!!
有人可以就两者之间的差异提供见解/比较/建议吗?优点?缺点?哪种方式更好或更差,还是更广泛使用?任何信息都可以.谢谢!
这是一个非常简单的问题,但我还没有能够完成这项工作,也没有任何搜索谷歌或这里发现任何真正有用的东西.
我要做的就是添加两个8位向量并将结果存储在9位向量中.
signal operand1, operand2 : STD_LOGIC_VECTOR(7 downto 0);
signal sum : STD_LOGIC_VECTOR(8 downto 0);
sum <= operand1 + operand2;
Run Code Online (Sandbox Code Playgroud)
但是我收到了警告:
Width mismatch. <sum> has a width of 9 bits but assigned expression is 8-bit wide.
Run Code Online (Sandbox Code Playgroud)
难道VHDL不应该有某种内置例程来知道额外的溢出需要额外的位吗?
我有这些包:
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
Run Code Online (Sandbox Code Playgroud)
也许STD_LOGIC_VECTOR总是签名?如果是这样,那么我需要将它们明确定义为无符号?
我知道sed 's/^/"/g'适用于一行的开头,sed 's/$/"/g'适用于结尾,但为什么sed 's/[^$]/"/g'对两者都不起作用?
好的,我正在使用 Qt Designer 来构建 GUI。我已经设法弄清楚如何制作 menuBar 并且我已经向栏添加了一些动作,但现在我需要连接这些动作以使它们做一些事情。
具体来说,在我的文件菜单上,我有简单的打开操作。我希望此操作运行一个调用我的 QFileDialog 等的函数,但我不知道如何执行此操作。
那么,如何将 actionOpen 连接到静态函数?
我正在使用最新的 Qt,5.0.2
我在这里有点沮丧。这显然是某人可能需要做的最基本的事情之一,但我在网络上的任何地方都找不到任何真正的解决方案。从缺乏 Qt wiki 到其他人的问题,似乎没有人真正有明确的答案。旧版本的 Qt 有答案,但在那些旧版本中,信号显然无法连接到静态函数,所以这些都是无关紧要的。似乎没有人知道如何通过 Qt Designer 做到这一点。此外,没有人会澄清该放什么。
我的 main.cpp 文件中有这一行:
QObject::connect(actionOpen, &actionOpen::triggered, fileOpen)
Run Code Online (Sandbox Code Playgroud)
我在 Qt 设计器中创建了一个名为“actionOpen”的对象,有一个名为“触发”的信号,我在 main.cpp 中的 main 下方定义了一个名为“fileOpen”的函数。这似乎遵循正确的语法,但它会引发许多错误。
此外,我可以在 Qt Creator 中反复单击构建,每次它都会出现不同数量的错误,消失和重新出现,我什至没有接触代码。我开始认为这个 IDE 有点像 POS。
编辑:
这是我的文件。也许这会有所帮助。
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void fileOpen();
private:
Ui::MainWindow *ui; …Run Code Online (Sandbox Code Playgroud) 我正在尝试在正则表达式搜索字符串内部的反引号内部扩展我的bash脚本中的变量.
我希望$VAR被替换.
我匹配的线条如下:
start....一些人物...... id:一些人物[variable im searching for]......一些人物......end
var=`grep -E '^.*id:.*$VAR.*$' ./input_file.txt`
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
它似乎不起作用.我知道我可以正常扩展变量"$VAR",但这不会直接搜索正则表达式中的那些字符吗?我不确定这里优先考虑的是什么.