Новые сообщения · Правила  
Страница 1 из 11
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Помогите составить програмку по обработке текстового файла (удаление, замена, перенос и добавление групп символов)
Помогите составить програмку по обработке текстового файла
Необходимо из имеющегося текстового файла:
1.Удалить некоторые строки, группы символов (буквенно-численные);
2.Заменить символы и группы символов на другие группы символов (в том числе и отличающихся по количеству символов в группе);
3.Добавить после определенных групп символов другие группы символов (переместив их из другой строки), выполнив определенные условия;
4.Разделить точкой группу символов выполнив условия.

Добавлено (11.04.12, 11:47)
---------------------------------------------
Исходный текст в файле
~P M-001
%
N1 G92 X200000 Z500000
N2 T0100 M06

~20 ђҐ§Ґж 1
:3 G92 X312424 Z142778
N4 G00 G90 X1022852 Z77944 T0001 S180 M04
N5 G00 X529000 Z0500
N6 G01 G96 S40 X484000 F2000
N7 G00 X752922 Z105260
N8 M00
~ (Perestav planki)
N9 G00 X586000 Z-20500
N10 G01 X527000 F2000
N11 G00 X537636 Z3393
N12 X522000 Z1000
N13 G01 Z-20500 F2000
N14 X528000
N15 G00 X532148 Z3476
N16 X521000 Z1000
N17 G01 Z-21000 F0.4 M08
N18 X580000 F0500
N19 X585000 Z-23500
N20 G00 X1026994 Z79185 M09
N21 G00 G53 X624848 Z142778 T0000
N22 M00
N23 T0200 M06

~20 ђҐ§Ґж 2
:24 G92 X349516 Z127693
N25 G00 G90 X1019342 Z58764 T0002 S180 M04
N26 G00 X515222 Z1731
N27 G01 G96 S40 X482000 Z-13232 F0500
~ T0221
N28 G00 X483108 Z6557
N29 X525664 Z6759
N30 X517958 Z-1404
N31 G01 X516584 Z-759 F0200 M08
~ R1
N32 G02 X514606 Z0000 I0989 K0265
N33 G02 X513222 Z-269 K1024
~ R600
N34 G03 X481792 Z-13886 I256611 K280269
N35 G00 X481870 Z8133 M09
N36 X1008848 Z58764
N37 G00 G53 X699032 Z127693 T0000
~ T02
N38 M00
N39 M02

Текст обработанного файла
%
N1 O0001()
N2 T0101 ()

N3 G90 G96 G18 M42
N4 G00 G90 X1022.852 Z77.944 S180 M04
M8
N5 G00 X529.000 Z0.500
N6 G01 X484.000 F0.6
N7 G00 X752.922 Z105.260
M5
M9
N8 M00
(Perestav planki)
M4
M8
N9 G00 X586.000 Z-20.500
N10 G01 X527.000 F0.6
N11 G00 X537.636 Z3.393
N12 X522.000 Z1.000
N13 G01 Z-20.500 F0.6
N14 X528.000
N15 G00 X532.148 Z3.476
N16 X521.000 Z1.000
N17 G01 Z-21.000 F0.4
N18 X580.000 F0.3
N19 X585.000 Z-23.500
N20 G00 X1026.994 Z79.185
N21 G00 X624.848 Z142.778 M9
N22 M5
N23 T0202 ()

N25 G00 G90 X1019.342 Z58.764 S180 M04
M8
N26 G00 X515.222 Z1.731
N27 G01 X482.000 Z-13.232 F0.3
T0221
N28 G00 X483.108 Z6.557
N29 X525.664 Z6.759
N30 X517.958 Z-1.404
N31 G01 X516.584 Z-.759 F0.6
N32 G02 X514.606 Z0.000 R1
N33 G02 X513.222 Z-.269 R1
N34 G03 X481.792 Z-13.886 R600
N35 G00 X481.870 Z8.133
N36 X1008.848 Z58.764
N37 G00 X699.032 Z127.693 M9

N38 M5
N39 M30
%

Добавлено (11.04.12, 11:50)
---------------------------------------------
Обрабатываемый файл будет иметь расширение (тип) .upt, имя файла может быть разное как по названию так и по количеству символов. После обработки файла его имя остается прежнее, а расширение должно стать .tap.

Первые шесть строк обрабатываемого файла всегда будут одинаковые (включая и 5-ю пустую строку). Так что первую строку текста можно удалять целиком.

Во второй строке группу символов G92 необходимо заменить на O0001(), а группу символов X200000 Z500000 (или все что следует после G92 в этой строке) – удалить.

В третей строке группу символов T0100 нужно заменить на Т0101. Для этой группы символов, состоящей из 5-ти символов и начинающихся на Т, встречающихся и далее в тексте, должны выполняться следующие условия:
- последняя пара цифр (00) должна быть заменена на пару цифр следующую после Т. Например: Т0100 → Т0101, Т0200 → Т0202, Т0300 → Т0303 и т.д.до Т1600→Т1616;
- группа символов Т0000 во всем тексте должна быть заменена на М9;
- группы символов Т0001, Т0002, Т0003... и до Т0016 должны быть удалены из текста где бы они не стояли;
- группы символов Т01, Т02, Т03… и до Т16 должны быть удалены из текста где бы они не стояли;
- группы символов Т0111, Т0225, Т0328 и т.п. определением которых может служить то, что последняя пара цифр у них больше 10, должны оставаться без изменения.

Седьмая строка в тексте :3 G92 X312424 Z142778 (как для её определения - место в тексте постоянное, а содержание разное кроме первых 6-ти символов :3 G92…) должна быть заменена на строку N3 G90 G96 G18 M42.
Все другие строки в тексте которые будут начинаться на : должны быть удалены.

Также удалению подлежат строки начинающиеся на ~20….
Удалению подлежат, из всего текста, следующие символы/группы символов: G96, S40, ~, M08, M09, G53, а также все группы символов которые начинаются на I и K (например: I0989, K280269).

Замене во всем тексте подлежат следующие группы символов:
G92 на O0001()
M06 на ()
F2000 на F0.6
F0500 на F0.3
M02 на M30
M00 на M5 – но только при условии что предыдущая строка заканчивалась на Т0000 или начиналась на ~ (в еще необработанном тексте). Во всех других случаях М00 не менять.

Добавлено (11.04.12, 11:50)
---------------------------------------------
Добавление строк:
1. Если в конце строки стоит М04, то следующей строкой должно быть добавлено М8;
2. Если в тексте есть группа символов М00, которая не попадает под условия измены М00 на М5, то перед этой строкой добавить строки М5 и М9 а после следующей за ней строки, которая всегда будет состоять из текста заключенного в скобки, добавить строки М4 и М8.
Например:
M5
M9
N8 M00
(Perestav planki)
M4
M8
3. Последней строкой всегда добавлять строку %.

Перемещение символов.
Группа символов начинающихся на R…, должна быть перемещена в конец следующей строки, а также добавляться и в конец последующих строк до тех пор, пока в строках не будет попадаться группа символов с другим значением R или группа символов G01 или G00.
Например:
Было:
N31 G01 X516584 Z-759 F0200 M08
~ R1
N32 G02 X514606 Z0000 I0989 K0265
N33 G02 X513222 Z-269 K1024
~ R600
N34 G03 X481792 Z-13886 I256611 K280269
N35 G00 X481870 Z8133 M09

Стало:
N31 G01 X516.584 Z-.759 F0.6
N32 G02 X514.606 Z0.000 R1
N33 G02 X513.222 Z-.269 R1
N34 G03 X481.792 Z-13.886 R600
N35 G00 X481.870 Z8.133

Разделение группы символов точкой.
Группы символов начинающихся на X и Z должны быть разделены точкой после третьего символа с конца.
Например:
X514606 → X514.606
Z-759 → Z-.759
X1019342 → X1019.342

1 | Автор: Алекс_77 | 2012-04-11, 11:50   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Помогите составить програмку по обработке текстового файла (удаление, замена, перенос и добавление групп символов)
Страница 1 из 11
Поиск: