Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 同步排序添加跟踪程序3'';使最后一列的值剪辑关闭_Sorting_Syncsort - Fatal编程技术网

Sorting 同步排序添加跟踪程序3'';使最后一列的值剪辑关闭

Sorting 同步排序添加跟踪程序3'';使最后一列的值剪辑关闭,sorting,syncsort,Sorting,Syncsort,输入文件列在fiesr 2列上进行比较,文件的第3列-B第3列B文件shud给出总计为8 tttttttttts的减法计数 OPTION COPY JOINKEYS FILES=F1,FIELDS=(5,4,A,10,20,A) JOINKEYS FILES=F2,FIELDS=(1,4,A,6,20,A) REFORMA

输入文件列在fiesr 2列上进行比较,文件的第3列-B第3列B文件shud给出总计为8 tttttttttts的减法计数

 OPTION COPY                                               
 JOINKEYS FILES=F1,FIELDS=(5,4,A,10,20,A)                  
 JOINKEYS FILES=F2,FIELDS=(1,4,A,6,20,A)                   
 REFORMAT FIELDS=(F1:10,20,9,1,5,4,30,1,31,10,F2:27,10)    
 JOIN UNPAIRED,F1                                          
 INREC BUILD=(1,46,27,10,SFF,SUB,37,10,SFF,EDIT=(TTTTTTTT))
 OUTFIL REMOVECC,NODETAIL,                                 
   SECTIONS=(1,54,                                    
             TRAILER3=(1,36,                          
                       ';',                           
                        37,10,                        
                        ';',                          
                        47,7))   
输出给出最后一列(减去7位数字的计数,其中应为8个字符 为什么它是55列而不是54列,在节中定义=1,54,并且没有给to加上“;”,对于一个“;”,它在54到55之间加了一列,如果你看到cols。。 对于secont,添加了“;”,它只需删除文件的最后一个字符

----+----1----+----2----+----3----+----4----+----5----+
********************************* Top of Data *********
22222222            ;5060;         1;         1;0000000
您只要求从输入中复制七个字节,因此只复制七个字节,而不是八个字节

我看不出有任何理由让你用排水管来处理这个问题

您正在将节的控制字段定义为整个记录。如果连续记录相同,则它们将显示为一条记录,甚至不会合计。请尝试获取测试数据以向自己显示

当F2不存在时,对F2数据使用SFF是有创意的,但会让事情变得不那么清楚。您的数字是否仍然有符号?此外,当您减去时,您不允许出现负结果。您的任何数字是否可以包含超过八位数字?如果是,如果SUB的结果给出的数字超过八位,您将被截断美国

OPTION COPY                                               
JOINKEYS FILES=F1,FIELDS=(5,4,A,10,20,A)                  
JOINKEYS FILES=F2,FIELDS=(1,4,A,6,20,A)                   
REFORMAT FIELDS=(F1:10,20,9,1,5,4,30,1,31,10,F2:27,10)    
JOIN UNPAIRED,F1                                          
INREC BUILD=(1,36,
             C';',
             37,10,
             C';',
             27,10,SFF,
              SUB,
               37,10,SFF,
              EDIT=(TTTTTTTT))
您可以使用的SFF的替代格式有UFF(自由格式)和FS(固定格式),后者有一个可选的浮动符号。我认为FS最适合您的要求

在编辑模式中,T表示“有效数字”,因此前导零将保留。I表示“不重要数字”,因此前导零将显示为空白

EDIT=(IIIIIIIT)

有标准的模式,还有许多可以在手册中编辑模式的例子。

嘿,比尔,我没有使用符号,应该是UFF之类的,问题仍然是这个记录,我得到的是截断的数据,它的8个字符(减去输出中最后一个结果列)但是如果你看到结果是7位,第8位被截断了。你能详细说明为什么用OUTFIL和SECTIONS来做这件事是个坏主意吗?应该用什么正确的方法来避免我被截断?他们不会超过8位,我的答案可能会被再次读一遍。如果你有47,8位,你会得到8个字节。对于SECTIONS,1)我看不出你有什么理由用它来做这件事,2)复制一行测试数据,运行你的程序,看看这是否是你期望的结果3)这会使事情变得更复杂。@agenthone我已经更新了答案,为你的格式提供了建议。嘿,比尔,我得到了想要的结果,多亏了你的想法,C';',我不知道必须与C.一起使用。。所以我用了一个不好的部分choice@AgentMahone一个只能是字符的常量,如HEADERn/TRAILERn,不需要C前缀。在其他地方,如果无法知道常量是字符,则必须指定它。例如,其他常量类型是B和X。你真的应该点击屏幕顶部的About并通读它。你已经问了15个问题,但是如果你不按照建议去做的话,人们很难判断这些答案是否有用。你应该为每一个问题问一个新问题,或者至少先在问题中详细说明你的所有问题。通过主要编辑或评论来扩展进一步的问题会使主题难以理解,因此对未来的搜索者不太有利。如果你只是问并停下来,人们就不会那么热衷于回答你的问题。
EDIT=(IIIIIIIT)