Стислий вміст гілки
Автор: tech
« : 2005-11-05 03:23:27 »
Відформатував словничок з допомогою groff. Тепер виглядає дещо краще:
rebuke 1. n догана; докір : without rebuke - бездоганний 2. v робити догану; докоряти
rebut v 1) спростовувати (обвинувачення тощо) 2) давати відсіч
recalcitrant 1. adj непокірний; упертий 2. n непокірна людина
recall 1. v 1) відкликати (урядову особу) 2) виводити (з задумливості) 3) скасовувати 4) згадувати, нагадувати, воскрешати (в пам'яті) 5) призивати (з запасу) 2. n 1) відкликання (урядової особи) 2) військ. сигнал до повернення; відбій 3) виклик виконавця на біс
Якщо хтось ним користується, можете завантажити за адресою:
http://freewebs.com/nabis/enua.zip
Автор: tech
« : 2005-02-12 03:59:24 »
Дякую, Володимире.  Спишу все на відсутню сторінку посібника, man iconv мені видає лише третій розділ (man 3 iconv), де йдеться про iconv.h (Slackware 8.1/10). (Знаю, знаю - існує ще iconv --help )  Якби ви мені не нагадали про цю програмку, я би далі возився з fromwin ... sort -u теж не підходить, так як він дійсно "сортує" (порушує послідовність).
Автор: Володимир Лісівка
« : 2005-02-11 15:21:34 »
Можна спробувати. sort -u не працює, оскільки повтори часом були перемежовані: Line 1 Line 2 Line 1 (Line1 i Line1 розділені)
Це uniq в цьому випадку не працюватиме, а sort -u - нормально. Ще один серйозний "баг", це те що вищезгадана fromwin розуміє тілки KOI8-R (російскі літери) українські "ї" та "є" замінюються на "i" "e", дивно що взагалі працює. Не є good  Я можу поробувати покопирсатись в ній, але нічого наперед не обіцяю. iconv не пробували? :-) Ось вам скриптик, який конвертує файли з одного кодування в інше зі збереженням прав та (якщо можливо) власника файлу. cp1251_2_koi8u : #!/bin/sh FROM=CP1251 TO=KOI8-U
if [ "foo$1" == "foo" ] then iconv -c -f "$FROM" -t "$TO"//TRANSLIT else TMPFILE="`mktemp /tmp/w2l.XXXXXX`" || exit 1 echo "Converting from $FROM to $TO:" for I in $@ do echo "$I" "$0" <"$I" >"$TMPFILE" || exit 1 chmod --reference="$I" "$TMPFILE" if [[ $UID==0 ]] then chown --reference="$I" "$TMPFILE" fi mv -f "$I" "$I~" mv -f "$TMPFILE" "$I" done echo "Done." fi
Автор: Toshik
« : 2005-02-11 10:39:52 »
Я сам поки-що доволі слабий в "object-oriented" (як по-українськи?) програмуванні.
Об'єктно-орієнтовне 
Автор: tech
« : 2005-02-11 02:39:04 »
А можна його привести у формат, придатний для використання з іншими словниками? Напр. СЛОВО = опис в одну лінійку або СЛОВО<sp><sp>опис в одну лінійку де <sp><sp> - це два пробіли. Руками виправляти дуже довго. :-( "sort -u"?
Можна спробувати. sort -u не працює, оскільки повтори часом були перемежовані: Line 1 Line 2 Line 1 (Line1 i Line1 розділені) Ще один серйозний "баг", це те що вищезгадана fromwin розуміє тілки KOI8-R (російскі літери) українські "ї" та "є" замінюються на "i" "e", дивно що взагалі працює. Не є good  Можливий є вихід - передивитись win2koi8.h з мапою кодів літер: char * win2koi8[] = { "Ъ", "Г", "\'", "г", "\"", "...", "+", "+", /* 80-87 */ "#", "%", "ЛЬ", "<", "НЬ", "К", "h", "Ц", /* 88-8F */ "h", "`", "\'", "\"", "\"", "\x95", "-", "-", /* 90-97 */ "#", "(TM)", "ль", ">", "нь", "к", "h", "ц", /* 98-9F */ "\x9A", "У", "у", "J", "$", "Г", "|", "$", /* A0-A7 */ "\xB3", "\xBF", "Е", "\"", "^", "-", "(R)", "I", /* A8-AF */ "\x9C", "+", "I", "i", "г", "m", "#", "\x9E", /* B0-B7 */ "\xA3", "N", "е", "\"", "j", "S", "s", "i", /* B8-BF */ "\xE1", "\xE2", "\xF7", "\xE7", "\xE4", "\xE5", "\xF6", "\xFA", /* C0-C7 */ "\xE9", "\xEA", "\xEB", "\xEC", "\xED", "\xEE", "\xEF", "\xF0", /* C8-CF */ "\xF2", "\xF3", "\xF4", "\xF5", "\xE6", "\xE8", "\xE3", "\xFE", /* D0-D7 */ "\xFB", "\xFD", "\xFF", "\xF9", "\xF8", "\xFC", "\xE0", "\xF1", /* D8-DF */ "\xC1", "\xC2", "\xD7", "\xC7", "\xC4", "\xC5", "\xD6", "\xDA", /* E0-E7 */ "\xC9", "\xCA", "\xCB", "\xCC", "\xCD", "\xCE", "\xCF", "\xD0", /* E8-EF */ "\xD2", "\xD3", "\xD4", "\xD5", "\xC6", "\xC8", "\xC3", "\xDE", /* F0-F7 */ "\xDB", "\xDD", "\xDF", "\xD9", "\xD8", "\xDC", "\xC0", "\xD1" /* F8-FF */ };
Я можу поробувати покопирсатись в ній, але нічого наперед не обіцяю.
Автор: Володимир Лісівка
« : 2005-02-08 13:55:15 »
Обновив словник http://freewebs.com/nabis/en_ua.zip . Добавилось слів (28000), дуже рекомендую.
А можна його привести у формат, придатний для використання з іншими словниками? Напр. СЛОВО = опис в одну лінійку або СЛОВО<sp><sp>опис в одну лінійку де <sp><sp> - це два пробіли. Руками виправляти дуже довго. :-( Очистив від дубльованих ліній:
# with help from thundergnat (news:perl.newbie) :) #!/usr/bin/perl use warnings; use strict;
open (my $fileraw, '<', 'en_ua_raw.txt') or die "Can't open file for reading: $!"; open (my $tofile, '>', 'en_ua.txt') or die "Can't open file for writing: $!";
my %seen;
while (<$fileraw>){ next if /^\n$/; print $tofile $_ unless $seen{$_}; $seen{$_}++; }
"sort -u"?
Автор: tech
« : 2005-02-04 05:36:45 »
Обновив словник http://freewebs.com/nabis/enua.zip . Добавилось слів (28000), дуже рекомендую. Очистив від дубльованих ліній: # with help from thundergnat (news:perl.newbie) :) #!/usr/bin/perl use warnings; use strict;
open (my $fileraw, '<', 'en_ua_raw.txt') or die "Can't open file for reading: $!"; open (my $tofile, '>', 'en_ua.txt') or die "Can't open file for writing: $!";
my %seen;
while (<$fileraw>){ next if /^\n$/; print $tofile $_ unless $seen{$_}; $seen{$_}++; }
Автор: tech
« : 2005-01-23 15:18:59 »
Добавлю. http://freewebs.com/nabis/enua.zip - це той самий текстовий словник, мені вдалося його скласти з допомогою вище наведеного клієнта. (zip / unzip програма щоб його розпакувати). Він доволі сирий і деякі слова відсутні, моя перша програма перегрузила словниковий сервер  . Вдосконалюю її, ввожу перевірку на помилки, використання дзеркал і взагалі примушую її поводитись більш цивілізовано. Буду обновляти словничок по мірі можливостей. Якщо хтось хоче сам його доповнити, поправити - "feel free to do so". Всім привіт. Віталій. P.S. До-речі, форум видає "Internal Server Error", коли клікати на посилання, так-що треба копіювати адресу в інше вікно навігатора, або користуйтесь wget.
Автор: tech
« : 2005-01-22 09:22:55 »
Просто хочу поділитись невеликим досвідом програмування сітьового клієнта (Perl web-client). Цей текст направлений просто щоб підстігнути вашу уяву і, якщо тут є Perl програмісти, вони можливо зацікавляться. Я сам поки-що доволі слабий в "object-oriented" (як по-українськи?) програмуванні. Що використовується, документація: http://cpan.uwinnipeg.ca/module/LWP (LWP, libwww-Perl - набір модулів, заміняє безпосереднє програмування сокетів простим набором функкцій клієнт/серверної взаємодіЇ). http://cpan.uwinnipeg.ca/htdocs/libwww-perl/ (документація до libwww) http://www.xav.com/perl/site/lib/lwpcook.html (майже готові скрипти) http://www.oreilly.com/openbook/webclient/ (книжка видавництва O'Reilly саме про цю бібліотеку) Встановлюємо LWP на нашу систему: bash$ su bash# man CPAN bash# perl -MCPAN -e shell; cpan> m LWP
видає нам приблизно наступне: Module id = LWP DESCRIPTION Libwww-perl CPAN_VERSION 5.803 CPAN_FILE G/GA/GAAS/libwww-perl-5.803.tar.gz MANPAGE LWP - The World-Wide Web library for Perl INST_FILE /usr/lib/perl5/site_perl/LWP.pm
Встановлюємо його: cpan> install G/GA/GAAS/libwww-perl-5.803.tar.gz cpan> m HTML::Parse cpan> install install S/SB/SBURKE/HTML-Tree-3.18.tar.gz (цей модуль використовується для перетворення HTML в простий текст) cpan> m HTML::FormatText cpan> install S/SB/SBURKE/HTML-Format-2.04.tar.gz (так само) cpan> exit
bash# exit Цей модуль має багато функій, які дозволяють нам створити такий-собі маленький оглядач(browser): #!/usr/bin/perl use LWP::Simple;
getprint($ARGV[0]);
назвемо цей файл dump_url.pl chmod +x dump_url.pl ./dump_url.pl http://www.google.com
видасть нам код Гугль сторінки, якщо ми хочемо побачити тектову версію: #!/usr/bin/perl use LWP::Simple; use HTML::Parse;
print parse_html(get $ARGV[0])->format;
назвавши це dump_url2text.pl і зробивши його виконуваним: ./dump_url2text.pl http://www.google.com/linux
LWP бібліотека має дуже багато дуже складних функцій, які дозволяють нам створювати маленькі програми-роботи (bots, crawlers, spiders), які можуть перевіряти посилання, індексувати ваш сайт, знаходити в інтернеті файли, за ключовими словами і т.д. Що мене зацікавило, так це можливість заповнювати форми і відсилати їх на переробку серверу. Конкретний приклад. Спочатку встановіть собі d1489 пакет, якщо у вас її ще нема. Цей маленький набір програмок (todos/fromdos, towin/fromwin, a2kfcnv) перекодовує файли і шрифти з Віндовс (cp866, cp1251) у Юнікс (koi8-r) і навпаки: Її оппис, домашня сторінка і сам пакет: http://www.usinglinux.org/russian/d1489.htmlhttp://koi8.pp.ru/unix.htmlhttp://koi8.pp.ru/dist/d1489-1.5.tgzУ мене вона скомпілювалась без проблем: tar xvzf d1489-1.5.tgz cd d1489-1.5 make install which fromwin Тепер назад до сітьового клієнта. Ознайомившись з http://ukrmova.virtualave.net/cgi-bin/olenuapro.pl створюємо наступний файл: #!/usr/bin/perl # use LWP::UserAgent; use HTML::Parse;
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(POST => 'http://ukrmova.virtualave.net/cgi-bin/olenuapro.pl'); $req->header('Content-type' => 'text/html'); $req->content("Word=$ARGV[0]"); # заповнить це: <input maxlength=40 name=Word size=17 tabindex=1 value="">
my $res = $ua->request($req); print parse_html($res->as_string())->format;
Зберігаємо його як transl.pl chmod +x transl.pl ./transl.pl complex | fromwin ./transl.pl complex | fromwin | grep "[а-ьА-Ь]"
translit.pl бере як аргумент одне слово і вивід передається fromwin команді для перекодування cp1251 у koi-r. Цей скрипт можна удосконалювати, але ви зрозуміли головну ідею. Складно? Наостанок, якщо щось зрозумiли з мого белькотіння, користуйтесь цими речами дуже обережно.
|