Отображение всяких DOSовских спецсимволов

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 2
Joined: Tue Oct 19, 2010 6:55 am

Отображение всяких DOSовских спецсимволов

Post by clumba »

Всем привет.

Вот тут можно посмотреть вариант файла, с которым испытываю трудности:

http://rghost.ru/2969497

Выглядит это так:

Image

Можно ли как-то поправить отображение спецсимволов или прятать их? Больше всего хлопот вызывает то, что они так и отправляются на печать, что не есть правильно.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

clumba
Там стоят ESC-символы. Не знаю откуда вы текст копировали, но скопировалось оно с форматированием(которое и задается ESC-символы, например в ANSI-совместимых терминалах/принтерах). Просто пубирайте их.

Offline
Posts: 2
Joined: Tue Oct 19, 2010 6:55 am

Post by clumba »

Файл формируется через ДОСовскую программу.

Убирать их вручную неудобно хотя бы потому, что файлов таких на печать приходится много, в т.ч. файлы на справок этак сотню - там везде вычищать символы? Через тот же FAR можно напечатать документ без проблем - никаких символов не будет. Но было бы удобнее работать через акелпад :)

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

clumba, почему сразу вручную? Поиск-Замена. Либо скриптом. Можно и автоматизировать.

А вообще если честно, ройтесь в программе которая их создавала, и пусть создает как Вам надо а не как надо кому-то там ещё.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Примерный скрипт для данного случая для отправки на печать:

Code: Select all

var hWndEdit=AkelPad.GetEditWnd();
var oSys=AkelPad.SystemFunction();
var pText;

SetRedraw(hWndEdit, false);
AkelPad.SetSel(0, -1);
pText=AkelPad.GetSelText();
pText=pText.replace(/\u001B\u0040|\u001B\u004D\u0012|\u001B\u0020\u0000|\u001B-1|\u001B-0|\u001B\u0047|\u001B\u0048/g, "");
AkelPad.ReplaceSel(pText);
SetRedraw(hWndEdit, true);
AkelPad.Command(4108 /*IDM_FILE_PRINT*/);
AkelPad.Command(4151 /*IDM_EDIT_UNDO*/);

function SetRedraw(hWnd, bRedraw)
{
  AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);
  if (bRedraw) oSys.Call("user32::InvalidateRect", hWnd, 0, true);
}

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Причём можно пакетно прошерстить кучу файлов из батника путём запуска Акеля с командой "выполнить скрипт"

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

clumba wrote:Файл формируется через ДОСовскую программу.
В данном случае присоединяюсь к мнению FeyFre. Нужно внимательно поисследовать подкаталоги программы. Скорее всего в одном из них обнаружится "шаблон" (*.frm или еще как) на основе которого формируются такие справки. Проще и быстрее отредактировать 1 шаблон и забыть о проблеме, чем исправлять сотни файлов в день (хотябы и с помощью скрипта).
Фразы "Расчет произвел", "Размер ЕДК" скорее всего являются частями шаблона. Дайте FAR-у поискать все файлы с одной из этих фраз.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Во времена доса отделение шаблонов от программы еще не вошло в моду, так что шансы довольно маленькие... но попробовать все равно стоит.
Post Reply