Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding Biztalk平面文件填充节点具有空值_Encoding_Biztalk_Biztalk Mapper - Fatal编程技术网

Encoding Biztalk平面文件填充节点具有空值

Encoding Biztalk平面文件填充节点具有空值,encoding,biztalk,biztalk-mapper,Encoding,Biztalk,Biztalk Mapper,我不知何故遇到了以下问题: 我有一个模式,我需要计算消息第一部分的长度,因为它有一个动态长度,最后用NULL填充它,直到我达到256字节块 所以我想我可以计算第一部分输入的字符串长度,然后用如下函数填充它: public string GetHexNulls(string val) { var b = new StringBuilder(); for (int i = 0; i < 256 - val.Length; i++) {

我不知何故遇到了以下问题:

我有一个模式,我需要计算消息第一部分的长度,因为它有一个动态长度,最后用NULL填充它,直到我达到256字节块

所以我想我可以计算第一部分输入的字符串长度,然后用如下函数填充它:

 public string GetHexNulls(string val)
    {

        var b = new StringBuilder();
        for (int i = 0; i < 256 - val.Length; i++)
        {
           b.Append(0.ToString("X"));   
        }

        return b.ToString();
    }
公共字符串GetHexNulls(字符串val)
{
var b=新的StringBuilder();
对于(int i=0;i<256-值长度;i++)
{
b、 追加(0.ToString(“X”));
}
返回b.ToString();
}
我无法获取空值(十六进制0x00),但获取普通字符串零(十六进制0x30)。清楚我的问题是什么吗


我不知道如何实现这一点——或者更一般地说,如何将十六进制值打印到被识别为十六进制值的文本文件中。我想这都是关于编码的?

因为其他字段的大小是动态的,所以这些字段必须被分隔

可以做的是将字段与地图中的分隔符连接到一个字段中,在该字段上,您可以将最小长度(填充字符为256,填充字符为0x00,填充字符类型为十六进制)设置为


记住,“十六进制”部分其实并不重要。Null是char 0,无论它是如何表示的。你确定不能只使用Pad Character=0x00吗?是的,通常我会使用Pad char,因为这在位置平面文件中可以正常工作,但在这种情况下,我需要节点的动态大小。如何实现这一点?但是“填充到底”意味着一个固定的宽度?我想,如果我没有位置文件且大小是动态的,我怎么能告诉ff assambler将其填充到256字节?我可能会设置填充字符,但如何确定大小?看起来您可以在字符串中写出正确的字符表示,但ff汇编程序似乎不允许这样做?以下更新的方法:
。。。b、 追加('\u0000')
生成以下错误:
错误13 XSL转换错误:无法将输出实例写入以下对象。调用的目标已引发异常。“”,十六进制值0x00是无效字符。
这确实是解决问题的一种方法。我不是那样想的。我唯一不喜欢的是,你把所有的东西都放在一个文件夹里。这打乱了模式,将所有内容存储在一个字段中看起来有些丑陋。我会检查我的管道方法,让你知道它是如何工作的!在我的第一篇文章中,我没有提到在第一条消息部分还需要设置一些十六进制字符。这些填充字符定义了具有起始块和结束块的区域。所以这行不通。我不能将所有内容都存储在一个字段中,因为我需要为pad字符定义字段。@Megalomaniac那么你最好使用提供所有详细信息的链接更新你的问题,如果你只提供部分问题,我们真的帮不了你。给我们一个示例输入&输入模式和预期输出。