2017-09-13 80 views
1

我们使用BeyondCompare 4来比较两个文件。有没有办法使用BeyondCompare,通过按下按钮只有前6位数字从文件A复制到文件B?BeyondCompare:如果通过宏不同,则替换前6位数

我不想复制整条线,我们需要检查并检查是否真的要替换第一个数字。所以我们不能使用任何通过宏自动替换。

如:

FileA: 
(ABCD) This is a testline 
(----) This is the 2nd line 


FileB: 
(0000) This is not a testline 
(ABCD) This is the second line 

审查后,新的文件应该是FILEB与FILEA的第一行的第一个数字:

Result: 
(ABCD) This is not a testline 
(ABCD) This is the second line 

由于提前,

回答

1

我发现一个棘手的解决方案。

首先您需要一种新的文件格式,定义为表格格式。

  1. 工具 - >文件格式
  2. 按+,选择表格格式
  3. 定义屏蔽(在我的情况* .yyy)
  4. 设置类型界定和定义分开你的第一个字符人物: enter image description here

在此之后,您可以比较两个文件(在我的情况与扩展YYY): 为了得到正确的定位,你必须做出个第一列到标准列(无键列): enter image description here 现在您可以转到“文本详细信息”区域(如果您没有它,请使用视图 - >文本详细信息使其可见)。 在这里,你可以去一列,并将其复制到右侧: enter image description here

现在,您只复制文件的一部分。

备注:

我也尝试过固定类型。第一列的宽度必须与第一位数字所需的一样大。然后,让一个大2列得到所有其他数据: enter image description here 这导致以下比较: enter image description here 但与此相比,我没能复制一列(@踏板车特攻队:也许这是一个错误? )

+0

如果您在表比较的主窗口中选择一行,则使用复制,它应复制整个行。如果您在窗口底部的行详细信息中选择一个单元格,它应该只复制该单元格。 –

1

在Beyond Compare的文本比较中复制一部分行的唯一方法是使用复制和粘贴。复制命令将始终复制整个行。

使用Table Compare的Knut方法是唯一的解决方法。

0

非常感谢您的详细描述。我试了一下Knut提出的建议,它的工作原理,但我需要做一个小调整,因为在我用过的文件中有更大的线条,而BeyondCompare无法正确识别这些线条。 对我有用的是将“)”设置为分隔符。然后我可以找到前6位数字,其余的将作为比较文本进行处理。

与固定类型的比较也没有为我工作。找到每条不同的线条,但是当我在线条细节中选择单元格时,它只用前6位数字代替线条。这种方法将是理想的,只要我能替换第一个数字而不是用第一个数字替换整个行。