Конвертация в KOI-7
denchik:
Здравствуйте!
Вопрос: Нужно программно конвертировать обычный текстовый файл в двоичный файл с КОИ-7 кодировкой.
Алгоритм:
Перевести символы в 16-чный код согласно КОИ-716-ый код конвертировать в бинарный,(пример :7F(HEX)=1111111(BIN) )
Вопрос: правильно ли я рассуждаю?
Нужно или нет обрабатывать символы табуляции:пробел,перенос строки..?
Как лучше это сделать на С++ ?
Zor:
рассуждаешь ты странно...
1. (грубо говоря) любые национальные кодировки не относящиеся к unicode/utf - 8 битные. причем тут 16 разрядный код?
2. служебные символы (табы, пробелы, переводы строк) - одинаковы для всех (это разметка, а без нее текст - не совсем текст)
3. все что тебе надо - выделить из исходника русские буквы и перекодировать их согласно таблице КОИ-7 (которую ты не указал, H0/H1/H2 ?)
4. "конвертировать в двоичный файл" - вообще туман. это как? по идее все файлы двоичные. подробности в студию.
denchik:
Есть файл(вложен),этот файл(такого формата) мне и нужно получить на выходе,из текстового файла .
Файл обрабатывается станком ЧпУ с семи битной архитектурой(КОИ-7 H0)
Цитировать
все что тебе надо - выделить из исходника русские буквы и перекодировать их согласно таблице КОИ-7
Объясните,зачем выделять символы,ведь по сути перекодировать нужно весь файл.
Причём кодировка у станка семи битная,но восьмой бит всё же обрабатывается идёт под так называемый "забой",
если в курсе поясните пожалуйста.
Zor:
нифига не прояснил, только запутал еще больше :) исходный текстовый файл как выглядит?
файл, который ты приложил, записан в каком-то формате, явно далеком от текстового, и я сомневаюсь что можно перевести один в другой простой заменой символов.
описание его формата у тебя есть вообще?
denchik:
В данный момент схема получения выходного файла 107.SM6(который я вкладывал) на производстве такая.
1. Разрабатывается математическая модель печатной платы в программе типа P-CAD .
(На изображении разработка ПП в программе layout-младший брат P-CAD,
layout или P-CAD -не принципиально)
2. Программа layout на основе мат.модели генерирует так называемый файл "сверловки" в
формате Exellon,с расширением .drl,это по сути текстовый файл,обычной кодировки,который без проблем
обрабатывается современными станками ЧПУ забугорного производства.
Вот он:
Код:
/DBGRID 1
/DBUNIT 9
M71
T1C0.600
X003500Y006975
X004375Y004350
X004375Y004075
X005125Y003425
X005225Y004775
T2C0.800
X007000Y007250
X007000Y006000
X002125Y004500
X002125Y005262
X003649Y004500
X003649Y005262
T3C1.000
X008875Y006625
X008875Y007125
X008375Y007375
X008375Y006875
X005125Y006500
T6C1.800
X002000Y001500
X002000Y007500
X005850Y007470
X005850Y006970
X004650Y007470
M30
3. Этот формат и синтаксис не подходит для моего станка.
Поэтому дальше начинаются танцы с бубном.Отдельной программой подгоняют синтаксис к виду:
Код:
%2
G00 G81 G90 W-4 R6 M03
G27 S F T1
X003500Y006975
X004375Y004350
X004375Y004075
X005125Y003425
X005225Y004775
G27 T2 S F
X007000Y007250
X007000Y006000
X002125Y004500
X002125Y005262
X003649Y004500
X003649Y005262
G27 T3 S F
X008875Y006625
X008875Y007125
X008375Y007375
X008375Y006875
X005125Y006500
G27 T6 S F
X002000Y001500
X002000Y007500
X005850Y007470
X005850Y006970
X004650Y007470
G26 G80 X1Y571 T0 M05 M02
E0 XYZ
4. Потом из под DOS подгружается программа,которая и конвертирует этот файл в формат .SM6
согласно КОИ-7 H0, и записывает на внешний носитель.
Всё это очень геморойно),поэтому пишется программа которая в перспективе всё это будет делать в одном месте.
Опишу всё по порядку:
1.0 С помощью сервера автоматизации OLE,открываем файл .lay (программы layout)
2.0 Подхватываем метод экспорта в Exellon( программы layout) выводим на свой RichEdit
3.0 Модифицируем синтаксис в RichEdit,выдёргиваем значения координат ХУ,кладём в StringGrid
4.0 Проводим визуализацию сверления по координатам ХУ,с помощью диаграммы Bubble компонента Chart
Всё это в принципе уже в некотором виде есть,осталось подготовить файл .SM6,который читает наш станок.
Спецификации файла в документации нет,раньше программа в станок загружалась с перфоленты в 16-ых кодах.
Программа которая сейчас подготавливает файл .SM6,(для записи с внешнего устройства->катриджа), писалась лет 15 назад,человека который писал эту программу уже не найти.
В техническом описании станка указано что станок имеет 7-ми битную архитектуру,по стандарту КОИ-7(думаю H0) .
Ещё раз: Файл типа 107.SM6(который был вложен) мне нужно получить,как исследовать битовую структуру файла я не знаю.
Исходник: текстовый файл обычной кодировки.
PS старался не особенно запутать,извиняюсь ситуация такая ,у самого голова кругом.
Навигация