2017-09-13 42 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位數字代替線條。這種方法將是理想的,只要我能替換第一個數字而不是用第一個數字替換整個行。