无法使用String.Format在WPF中显示版本字符串
Failing to use String.Format to display Version String in WPF
i是C 开发人员,最近移至C#。我正在开发一个需要在String.Format
上工作的WPF应用程序。在我的C 应用程序中,我曾使用sprintf
获得结果,但是当涉及C#时,String.format帮助我实现了它。现在,我遇到了一个棘手的情况,我需要实现类似的目标,但具有不同的价值。这是C 代码:
char t_str[4] = {};
for(int i = 0; i < 4; i++)
{
sprintf(t_str, "%02X", buffer[i]);
m_apiResponse[i]->setText(String(t_str));
}
其中buffer[0] = 20;
buffer[1] = 30;
buffer[2] = 40;
buffer[3] = 50;
和m_apiResponse
是文本框。
即使string.format
也很有帮助,我还是选择易于执行的方式。我在我的C#中做到了以下操作:
Response1Box = buffer[0].ToString("X2");
Response2Box = buffer[1].ToString("X2");
Response3Box = buffer[2].ToString("X2");
Response4Box = buffer[3].ToString("X2");
它运行良好,给了我我想要的答案。但是现在我在我的C 应用中遇到了它的扭曲版本.....这是代码:
unsigned char buffer[8] = {};
char verString[64] = {};
m_msp430->WriteInternalCommand(cmd, 1, buffer);
m_msp430->ReadInternalCommand(cmd, 4, buffer);
sprintf(verString, "FPGA 0x42 Version (dd/mm/yyyy ID): %02d/%02d/20%02d %02d", ((buffer[3] & 0xF8) >> 3),
(buffer[2] & 0x0F), ((buffer[2] & 0xF0) >> 4), (buffer[3] & 0x07));
m_versionString->setText(String(verString), false);
这里m_versionstring是一个标签,一旦执行此语句,它将打印,例如。FPGA 0x42 Version (dd/mm/yyyy ID): 00/00/2012 23
。我在C#中尝试了以下内容:
// Description of VersionString label which displays
private string _VersionString;
public string VersionString
{
get
{
return _VersionString;
}
set
{
_VersionString = value;
OnPropertyChanged("VersionString");
}
}
public void GetVersion()
{
int cmd = 0x0A42;
Byte[] buffer = new Byte[8];
Byte[] verString = new Byte[64];
mComm.WriteInternalCommand(cmd, 1, ref buffer);
mComm.ReadInternalCommand(cmd, 4, ref buffer);
// Failing to figure out how to achieve it
VersionString = Convert.ToString(verString);
}
我如何执行这些操作并在我的版本播放上显示?:)请帮助:)
您的C 代码不等于您的C#代码。您正在掩盖并在sprintf之前将每个字节移动。C#无法知道如何掩盖单个字节以制作您的字符串。
现在没有太多时间..但是基本上是这样的。
verString = String.Format("FPGA 0x42 Version (dd/mm/yyyy ID): {0}/{1}/20{2} {3}", ((buffer[3] & 0xF8) >> 3),
(buffer[2] & 0x0F), ((buffer[2] & 0xF0) >> 4), (buffer[3] & 0x07));
,或者您可以通过byte进行字节,而无需字节。Format在调用转换
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- Qt自定义QPush按钮未显示在布局上
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 显示基于用户输入的整数的字符
- 使用QTreeView,如何通过调用函数只突出显示特定的行/列
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 无法使用String.Format在WPF中显示版本字符串
- 在Windows桌面应用程序的OpenGL窗口上显示WPF控件