因此我们从Filemaker Pro数据库导出记录并通过EDI将这些文件提交给我们的供应商,但他们的系统无法接受我们的文件,因为一些非常不稳定的“..”(Hex 0B)字符显示在文本文档中每一个新行的开头。
我已经读过Filemaker Pro如何导出文件存在问题,因此无法事先删除这些Hex 0B字符from within Filemaker。我对Java的理解有限,是否有足够的基于Java的运行时解决方案可以创建来解决这个问题?
我尝试在每个可用的导出方法中导出有问题的文本文件,包括.mer,.csv,.tab等,每种输出文件字符集的每种组合都可用于每种导出类型,有些会产生更多问题隐藏的字符。我最终解决了.tab(ASCII [DOS]),因为它具有最少的剩余信息,但我仍然需要摆脱这些0B字符,以便我们的EDI集成合作伙伴能够毫无问题地接受我们的文件。
编辑:为了清晰起见,添加了更多信息。
答案 0 :(得分:0)
ascii中的十六进制值“0B”是一个垂直制表符。
This chart是确定特定ascii值的十六进制值的一个很好的参考点,反之亦然。
从文本字段中取出垂直制表符有点刺激但可行。我必须为我们作为文本导入到filemaker中的一系列文档执行此操作,然后将其移至postgresql数据库。我做的是以下内容:
0B
在FileMaker中,使用脚本步骤创建脚本:
Set Field[myTable::myField ; Substitute ( myTable::myField ; "*pasteVerticalTabCharacterHere*" ; "" )]
将垂直制表符粘贴在替代函数
的第一组引号之间当您在myfield
中包含垂直标签的记录上触发此脚本时,它会将其替换为空白字符串""
。您还可以更改替换功能,以使用回车符切换垂直标签:
Set Field[myTable::myField ; Substitute ( myTable::myField ; "*pasteVerticalTabCharacterHere*" ; ¶ )]
如果您有许多需要此设置字段步骤的记录,您可以创建一个循环遍历所有记录的脚本并触发此步骤。
你也可以快速而肮脏的方式:
Replace Field Contents
这样可以一次性清除所有记录中的垂直标签。
最后,如果您有一个或多个特定字段,您知道其中可能会有垂直标签,我建议对包含上述替代计算的修改版本的字段进行自动输入计算:
Substitute ( Self ; "*pasteVerticalTabCharacterHere*" ; "" )
这样,无论何时将记录导入包含垂直选项卡的表中,都会自动清除垂直制表符。
我还应该注意hexfiend是一个mac应用程序。我想在Windows计算机上你可以按control+K
键输出垂直制表符,但我还没试过。
希望这有帮助!