Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Суров печат на кирилица върху Матричен принер


  • Subject: Re: lug-bg: Суров печат на кирилица върху Матричен принер
  • From: Peter Pentchev <roam@xxxxxxxxxxx>
  • Date: Thu, 25 Nov 2004 12:19:42 +0200

On Thu, Nov 25, 2004 at 09:59:50AM +0200, Nikolay Mitev wrote:
> Здравейте
> 
> Хайде и аз да се обадя, въпреки че малко оффтопик.
[snip]

> Да не говорим, че може да се поопрости малко:
> 
> #include <stdio.h>
> /*
> (c) Skelet (G. Georgiev) in terms of GNU GPL
> Converts cp1251 -> DOS cyrillic.
> */
> 
> int main()
> {
> unsigned char w;
> unsigned char First = 0xc0;
> unsigned char Last  = 0xff;
> while (!feof(stdin)) {
>   w = getchar();
>   if ((w >= First) && (w <= Last)) w -= 64;
>   putchar(w);
> }
> return 0;
> }

Мдаааа.. и без да искам да се заяждам или нещо такова, има още едно
дребно нещо, което се вижда доста често в такива програмки :)  По
принцип в C getchar() изобщо не връща символ (char), а си връща съвсем
истинско цяло число със знак (демек int).  Това може да се използва за
опростявяане/ускоряване на главния цикъл в тази програмка, както и във
всяка друга, която чете символ по символ:

  int w;
  while ((w = getchar()) != -1) {
    if (...)
      w -= 64;
    putchar(w);
  }

Но и иначе ще си работи :)

А само като идея: такова преобразуване под на практика всяка Unix-like
OS може да се направи с tr(1):

  tr '[\300-\377]' '[\200-\277]' < source.txt > dest.txt

Тук вече пренасочването на вход/изхода е важно, защото tr(1) никога и
никъде не приема имена на файлове директно на командния си ред, а винаги
чете от стандартния вход и пише по стандартния изход.

А иначе Велин току-що ми обърна внимание на следното:

http://zadnik.org/velin/txt/dos2win.asm
http://zadnik.org/velin/txt/dos2win.com

Вярно, под Linux няма да свърши много работа, но все пак е интересно :)

Поздрави,
Петър

-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
I am not the subject of this sentence.

Attachment: pgpx9l0Y783K6.pgp
Description: PGP signature



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.