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
|