У меня есть файл, который я обрезал, чтобы сохранить в нем только некоторые данные. Этот файл - файл, который я хотел бы добавить в конец второго файла. Вот как выглядит первый файл:
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".
В значительной степени:
- Обрезать первый файл до необходимых чисел, необходимых для преобразования в конец 2-го файла (ВЫПОЛНЕНО)
- Схватить каждую строку во втором файле (один за другим?)
- Проверьте, начинается ли строка с цифры (используя регулярное выражение?)
- Если это так, добавьте 1-ю строку в 1-м файле к концу матча во 2-м файле (сделайте это для всех совпадений. 2-я строка со 2-м совпадением, 3-я строка с 3-м совпадением и т. Д.) И сохраните это как новая строка. (проблема в том, что должна быть целая куча строк ... а я не знаком со списками ..)
- Теперь вернитесь к каждой строке 2-го файла и сравните новую строку (с окончанием первого файла) с каждой строкой 2-го файла. Если есть совпадение, замените эту строку строкой в строке.
- Вывести его в форматированное текстовое поле / файл .txt.
ВОПРОС
- Как мне найти строку, которая начинается с 1,2,3,4,5 и т. Д. Во втором файле, а затем захватить первый файл построчно и добавить первую строку в первую строку. В этом случае добавление 147221 к концу всей строки, начинающейся с 1 (147486 к концу строки, начинающейся с 2, и т. Д.)?
- Кто-нибудь знает более простой способ сделать это?