【发布时间】:2011-07-08 21:51:11
【问题描述】:
我有一个文件,我已对其进行了修剪,只保留了其中的一些数据。该文件是我想添加到第二个文件末尾的文件。这是第一个文件的样子:
147221
147486
147514-1
147502
147503
...
我想将它连接到一个看起来像这样的文件的末尾:
some text ... more text
text text: Description
Ln PPN PD Qty Units Comment MNAME MfMCODE
some comment
1 EC5547 PCB: SB5500 LCD DISPLAY CTRL +RHS 1.00 EA REV 07 OR LATER
2 EC0303 FERRITE BEAD: 200MA 1000Z0.8 SM0603 +RHS 2.00 EA FB2 FB4 MURATA BLM18RK102SN1
3 EC0304 FERRITE BEAD: 2000MA 220Z0.05 SM0805 +RHS 2.00 EA FB1 FB5 MURATA BLM21PG221SN1
4 EC7727 IC: LTC2851 RS422 XCVR SO8 +RHS 1.00 EA U10 LINEAR TECHNOLOGIES LTC2851CS8#PBF
LINEAR TECHNOLOGIES LTC2851IS8#PBF
MAXIM MAX3077EASA+
MAXIM MAX3077EESA+
DNP C20 C24 C25 C27 C44 C60 C62 J1 J5 J6 J7 J8 J11 R2 R20
R29 R33 R53 R54 R89 R91 R94 R96 R107 R108 R109 C63 R61
J12 J13 U7 TP1-20 TP22-28 TP34-36 TP38-39 TP41 TP43-54
TP56-96
5 EC5071 CONN: HEADER RA 0.1x10 0.025 SQ +RHS 1.00 EQ J2 SAMTEC TSW-110-08-S-S-RA
...
通过匹配查看第二个文件行是否以 1、2、3、4、5 等开头,然后以相同的顺序添加第一个文件中的行。
我的意思是它看起来像这样:
some text ... more text
text text: Description
Ln PPN PD Qty Units Comment MNAME MfMCODE
some comment
1 EC5547 PCB: SB5500 LCD DISPLAY CTRL +RHS 1.00 EA REV 07 OR LATER 147221
2 EC0303 FERRITE BEAD: 200MA 1000Z0.8 SM0603 +RHS 2.00 EA FB2 FB4 MURATA BLM18RK102SN1 147486
3 EC0304 FERRITE BEAD: 2000MA 220Z0.05 SM0805 +RHS 2.00 EA FB1 FB5 MURATA BLM21PG221SN1 147514-1
4 EC7727 IC: LTC2851 RS422 XCVR SO8 +RHS 1.00 EA U10 LINEAR TECHNOLOGIES LTC2851CS8#PBF 147502
LINEAR TECHNOLOGIES LTC2851IS8#PBF
MAXIM MAX3077EASA+
MAXIM MAX3077EESA+
DNP C20 C24 C25 C27 C44 C60 C62 J1 J5 J6 J7 J8 J11 R2 R20
R29 R33 R53 R54 R89 R91 R94 R96 R107 R108 R109 C63 R61
J12 J13 U7 TP1-20 TP22-28 TP34-36 TP38-39 TP41 TP43-54
TP56-96
5 EC5071 CONN: HEADER RA 0.1x10 0.025 SQ +RHS 1.00 EQ J2 SAMTEC TSW-110-08-S-S-RA 147503
....
想法
- 现在我认为解决此问题的最佳方法是修剪原始文件(我已经这样做了),然后在第二个文件中搜索以数字开头的行。 (我想用正则表达式来做到这一点:...@"^[\d]+\s+"...)。但是,使用该正则表达式,我只会抓住线上的数字而不是整条线?但是,如果我能够抓住整行(我不知道如何),如果找到该行,我会将它放在一个字符串中,然后将前一个文件的第一行添加到该字符串的末尾分隔符“\t”。
差不多吧:
- 将第一个文件修剪为连接到第二个文件末尾所需的必要数字(完成)
- 抓取第二个文件中的每一行(一个接一个?)
- 检查行是否以数字开头(使用正则表达式?)
- 如果是这样,请将第一个文件中的第一行添加到第二个文件中匹配的末尾(对所有匹配都执行此操作。第二行与第二个匹配,第三行与第三个匹配等)并存储它作为一个新的字符串。 (问题是必须有一大堆字符串......而且我不熟悉列表......)
- 检查行是否以数字开头(使用正则表达式?)
- 现在回到第二个文件的每一行,并将新字符串(以第一个文件结尾)与第二个文件中的每一行进行比较。如果匹配,则将该行替换为字符串中的行。
- 将其输出到富文本框/.txt 文件。
问题
- 如何在第二个文件中找到以 1、2、3、4、5 等开头的行,然后逐行抓取第一个文件并将第一行添加到第一行。在这种情况下,将 147221 添加到以 1 开头的整行末尾(147486 到以 2 开头的行末尾,等等)?
- 有人知道更简单的方法吗?
【问题讨论】:
标签: c# replace add text-files concat