C# 无法识别条码枪扫描二维码后得到的字符串中的换行符

Flandre 2019-06-25 02:28:13
现在有一个二维码如下图所示


需求是用条码枪扫描该二维码,并根据其中的换行符将扫描到的字符串进行分割,但问题是条码枪刷入WPF的TextBox时,就是一整个字符串,监测不到其中的换行符号;
条码枪扫描该条码在Window的记事本上是这样的

扫描到TextBox里面没有换行符 直接就是一整串 7150110006EE03541519A12-19B100002
(如果用微信的扫一扫 就会发现字符串里有空格)

我测试代码写成如下时, TextBox里面是有换行的
string s = "7150110006\nEE035\n415\n19A12-19B1\n00002";
tbox_UPN.Text = s; //界面上的文本框里有换行

请问该怎么做才能将条码扫描的输入进行分割? (能像记事本上那样分割成五部分)

另外请问下如何让字符串里的转义字符直接显示为字符(不是在原有字符串上加@或者\)
例:
string s = "123\n456"; //这一行不允许改成 @"123\n456" 或 "123\\n456"
这个字符串s要怎么处理 才能显示成 123\n456 呢?
这个问题的目的和上面差不多 我就是想获取条码枪输入内容里面的转义字符 ,但是我不想转义字符起效果 我要把转义字符抓出来



...全文
4029 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Flandre 2019-07-01
  • 打赏
  • 举报
回复
问题最终解决了,贴一下解决方法 在TextBox(不要设置AcceptReturn等属性)的KeyDown事件里,参数e.Key.ToString(),当遇到条码枪扫描到的换行时,等于"System",这样就能抓到换行了,然后记录下每次System出现的位置,最后去解析
足球中国 2019-06-29
  • 打赏
  • 举报
回复
不要用text_change,keydown等事件去判断。在消息循环里面试试。
xunbaidu2018 2019-06-28
  • 打赏
  • 举报
回复
学习了,在这里学到不少的都关系,谢谢了。。。。。。。。。。。。。。。。。。。。。。。。。。
tone1128 2019-06-28
  • 打赏
  • 举报
回复
剔除掉扫描文件里面的换行符(最后一个除外)
qemng 2019-06-27
  • 打赏
  • 举报
回复
收到扫码枪的数据之后,把换行符替换成别的符号
zijiang001 2019-06-26
  • 打赏
  • 举报
回复
\n 替换成\r\n吧??
Bridge_go 2019-06-26
  • 打赏
  • 举报
回复
textBox不行,richTextBox可以的
xwh0318 2019-06-25
  • 打赏
  • 举报
回复
换成richTextBox试一下呢
耗子哭死猫 2019-06-25
  • 打赏
  • 举报
回复
如果 textBox1.Text没有加Trim 那你用一个变量接收扫描的字符串做完处理再赋值给textBox1.Text
yunlovejia 2019-06-25
  • 打赏
  • 举报
回复
引用 6 楼 Flandre 的回复:
[quote=引用 3 楼 yunlovejia 的回复:] TextBox设置多行显示试试。
引用 4 楼 yunlovejia 的回复:
另外,一般条码枪会附带一本设置用的册子,你在上面找找看,有设置换行字符什么的。
TextBox设置多行显示也还是一整行 条码枪附带的手册上没找到设置换行字符 只有在扫描末尾添加一个回车之类的基本功能[/quote] 系统的换行符问题,你试试这个。
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((int)e.KeyChar == 13)
            {
                textBox1.Text = textBox1.Text.Replace("\n", System.Environment.NewLine);
            }
        }
Flandre 2019-06-25
  • 打赏
  • 举报
回复
引用 5 楼 tanta 的回复:
扫码枪把回车过滤掉了
并没有过滤,起码在Window的记事本上,条码枪扫描的时候,是得到五行字符串的,你可以看一下我贴的那个图片
yunlovejia 2019-06-25
  • 打赏
  • 举报
回复
这个是换行符的问题了,文本框的换行符是\r\n,而扫描枪只有\n字符,你要进行替换。
Flandre 2019-06-25
  • 打赏
  • 举报
回复
引用 3 楼 yunlovejia 的回复:
TextBox设置多行显示试试。
引用 4 楼 yunlovejia 的回复:
另外,一般条码枪会附带一本设置用的册子,你在上面找找看,有设置换行字符什么的。
TextBox设置多行显示也还是一整行 条码枪附带的手册上没找到设置换行字符 只有在扫描末尾添加一个回车之类的基本功能
tanta 2019-06-25
  • 打赏
  • 举报
回复
扫码枪把回车过滤掉了
yunlovejia 2019-06-25
  • 打赏
  • 举报
回复
另外,一般条码枪会附带一本设置用的册子,你在上面找找看,有设置换行字符什么的。
yunlovejia 2019-06-25
  • 打赏
  • 举报
回复
TextBox设置多行显示试试。
Flandre 2019-06-25
  • 打赏
  • 举报
回复
引用 1 楼 eaqpi 的回复:
别用换行符,用分割符,找一个符号就可以,比如#/什么的。
这个二维码格式是固定死的 无法修改二维码
eaqpi 2019-06-25
  • 打赏
  • 举报
回复
别用换行符,用分割符,找一个符号就可以,比如#/什么的。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧