home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 January
/
Pcwk0198.iso
/
Zadarmo
/
Convert
/
CPL.TXT
< prev
next >
Wrap
Text File
|
1996-01-31
|
10KB
|
251 lines
[ConvPL] by kravietZ 31.01.96
(Mazovia)
Uniwersalny konwerter
standardów polskich znaków
v2.01
ConvPL v2.01 jest programem freeware, rozprowadzanym wraz z kodem
ªródÆowym. To co go wyróºnia od innych tego typu programów, to liczba
obsÆugiwanych standardów, dowolno₧ì kierunków konwersji i maksymalnie
uproszczona - choì dajåca wiele moºliwo₧ci - linia poleceñ.
:SK£ADNIA:
~~~~~~~~~~
cpl <nn>[<konwersja>] [<wejscie.txt>] [<wyjscie.txt>]
Parametr <nn> to dwie cyfry/litery, okre₧lajåce standard ªródÆowy (pierwsza)
i docelowy (druga) przeprowadzanej konwersji.
Parametr <konwersja> okre₧la rodzaj opcjonalnie stosowanej konwersji
zakoñczenia linii pomiædzy DOSem a Unixem i Amigå.
Parametry "wejscie.txt" i "wyjscie.txt" to nazwy plików odpowiednio
ªródÆowego i docelowego.
********************************************************************
Podanie tylko jednej nazwy - pliku wej₧ciowego - spowoduje zapisanie
tekstu po konwersji pod tå samå nazwå.
********************************************************************
:OBS£UGIWANE STANDARDY:
~~~~~~~~~~~~~~~~~~~~~~~
Dostæpne standardy (podajemy dwie cyfry/litery):
0: bez polskich liter (ASCII,CP473) a: Microvex
1: Mazovia b: <Amiga> Amiga PL
2: FidoMazovia c: CP/J (Elwro 800 Junior)
3: IBM-Latin/2 (CP852) d: <Amiga> FAT
4: ISO-Latin/2 (ISO-8859/2) e: Windows 3.0 (CP1250)
5: DHN f: <Amiga> XJP
6: CSK g: Ventura
7: Cyfromat h: Macintosh
8: IEA i: TeX PL
9: LOGIC j: Corel 2.0
Podanie "?" spowoduje próbæ rozpoznania zastosowanego w tek₧cie standardu.
Wiæcej na ten temat znajdziesz w pliku qpl.txt.
:skróty:
Zamiast najczæ₧ciej stosowanych konwersji moºna stosowaì skróty. Podajemy
wówczas tylko jednå literæ:
l: Mazovia na IBM-Latin/2
m: IBM-Latin/2 na Mazoviæ
x: Mazovia na ASCII
y: IBM-Latin/2 na ASCII
z: Fido-Mazovia na Mazoviæ
Dowolno₧ì konwersji jest caÆkowita, z jednym wyjåtkiem. Standard ASCII nie
moºe byì standardem ªródÆowym konwersji (przyczyna jest chyba do₧ì oczywista).
:konwersja zakoñczeñ linii:
ConvPL umoºliwia równolegÆå konwersjæ pomiædzy tekstem spod DOSa, a tekstem
spod Unixa czy Amigi. Rodzaj docelowej konwersji okre₧lajå parametry:
-: konwersja do tekstu Unixa (Amigi) -> NL
=: konwersja do tekstu DOSa -> CR+LF
ZmieniÆem wystæpujåce w poprzednich wersjach oznaczenia tych parametrów
(/,\), poniewaº backslash jest znakiem specjalnym pod U*xem. Nowe ustawienia
moºna równie Æatwo zapamiætaì: pod U*xem koniec linii to jeden znak (NL),
wiæc jedna kreska: "-"; pod DOSem så to dwa znaki (CR+LF), ståd dwie
kreski: "=".
Patrz równieº rozdziaÆ Uwagi, akapit Konwersja Unix<->DOS.
:PRACA W TRYBIE FILTRU:
~~~~~~~~~~~~~~~~~~~~~~~
ConvPL moºe pracowaì równieº w trybie filtru. Brak nazw plików we/wy
spowoduje pobranie tekstu z standardowego urzådzenia wej₧cia - stdin
(klawiatura) i zapisanie go do standardowego wyj₧cia - stdout (monitor,
terminal, drukarka). PrzykÆady:
cpl l - kaºda linia wpisywana z klawiatury bædzie
pojawiaÆa siæ poniºej po wci₧niæciu
<Enter>, znaki z kodu Mazovia bædå
zamieniane na IBM Latin 2
cpl l <joke.txt >prn - konwersja pliku joke.txt i wysÆanie
wyników bezpo₧rednio na drukarkæ (DOS);
cpl l <joke.txt >joke2.txt - równoznaczne poleceniu "cpl l joke.txt"
Je₧li nie chcemy za₧miecaì sobie dysku, wydajemy nastæpujåce polecenia:
cpl l <joke.txt >nul (MSDOS)
Tryb filtru umoºliwia równieº przetwarzanie tekstu w potoku (pipe).
PrzykÆad:
type joke.txt joke2.txt | cpl 14/ >joke3.txt
Przyjmujåc, ºe pliki joke.txt i joke2.txt så napisane oryginalnie
w Mazovii i pod MSDOSem, takie polecenie spowoduje poÆåczenie obu plików,
konwersjæ z Mazovii na ISO-Latin-2, i przy okazji z CR+LF -> NL, a nastæpnie
zapis do pliku joke3.txt.
Uruchamiajåc ConvPL w tym trybie naleºy uwaºaì na pomyÆki takie jak ta:
cpl l joke.txt >prn
-tekst zostanie przekonwertowany zgodnie z reguÆå 13 (skrót "l"), ale na
drukarkæ nie zostanie wysÆany, gdyº ConvPL bædzie go zapisywaÆ do pliku
joke.txt a nie na standardowe wyj₧cie. W rzeczywisto₧ci powyºsze (bÆædne)
polecenie oznacza: konwertuj plik joke.txt, zapisujåc wynik pod tå samå nazwå,
za₧ na drukarkæ wysyÆaj wyj₧cie przez program normalnie wy₧wietlane na ekranie,
czyli komunikaty.
Uszkodzenie pliku spowoduje polecenie typu:
cpl l <joke.txt >joke.txt (obie nazwy takie same)
Po prostu, system wyÆoºy siæ na próbie równoczesnego czytania i pisania
do pliku, a ucierpi na tym tenºe plik.
Pamiætajmy: aby uruchomiì ConvPL w trybie filtru, potok danych musi
przychodziì ze stdin i wychodziì na stdout. Je₧li nie wiesz o co chodzi,
to poczytaj o potokach, filtrach oraz roli symboli <, |, > itp.
w poleceniach DOSa i Unixa.
:UWAGI:
~~~~~~~
:komentarz do standardów:
Za definicjæ Amiga PL dziækujæ Marcinowi KådzioÆce <2:484/15.16@fidonet>.
Definicje dodane w wersji 1.75 udostæpniÆ mi Edwin Wierszelis
<2:482/16@fidonet>, autor konwertera KPN.
"Standard" ASCII to oczywi₧cie zwykÆe literki ASCII, zastæpujåce odpowiednie
polskie znaki. Taki tekst zwie siæ zwykle "polskawym", a standard okre₧la
jako CP473 (podstawowa, amerykañska strona kodowa).
Fido-Mazovia jest póÆformalnym standardem, przyjætym w ₧rodowisku sieci
Fido. Jedyna róºnica w stosunku do klasycznej Mazovii to zamiana znaku
c' (141) na c-cedilla (135), wynikajåca ze wzglædow technicznych.
Standard IBM-Latin/2 (CP852), rozpowszechniony gÆównie w ₧rodowisku DOSa,
jest lansowany m.in. przez Micro$oft.
ISO-8859/2, znany teº jako ISO-Latin/2 jest standardem rozpowszechnionym
zwÆaszcza w systemach unixowych, pracujacych pod X-windowsami. Jest równieº
standardem zalecanym przez Polskie Normy.
Standard FAT jest jednym z amigowskich dialektów, znalezionym w diskmagu
pt. FAT przez Edwina Wierszelisa.
Standard Windows 3.0 jest uproszczonå, 8-bitowå wersjå UniCode, zdefiniowanå
jako strona kodowa 1250 (CP1250). Znany teº jako Windows-EE, czyli strona
kodowa dla Europy Wschodniej.
Standard DHN jest rozpowszechniony wraz z polskim ChiWriterem.
:konwersja tekstu Unix<->DOS:
Pod Unixem kaºda linijka tekstu koñczy siæ znakiem NL (new line) o kodzie 0xa,
równoznaczny DOSowemu LF (line feed). Pod DOSem zakoñczenie linii stanowi
para znaków CR+LF, czyli 0x0d,0x0a. Parametr "-" wymusza zakoñczenie linii
znakiem NL, za₧ "=" - parå CR+LF. Brak okre₧lonego kierunku konwersji
nie spowoduje ºadnej zmiany koñców linii w pliku wynikowym. Parametry konwersji
zakoñczeñ linii dodaje siæ "na trzeciego" do parametrów konwersji standardów.
UWAGA: od wersji 2.1 istnieje moºliwo₧ç wykonywania konwersji zakoñczeñ linii
bez zmiany standardu polskich znaków. Wystarczy jako standard ªródÆowy
podaç ASCII - "0" (do tej pory byÆo to niedopuszczalne), za₧ jako drugi
parametr opcjæ konwersji zakoñczeñ linii "-" lub "=". Drugi parametr,
podany zgodnie z konwencjå i okre₧lajåcy standard docelowy jest w tym
wypadku ignorowany. A zatem, kaºdy z poniºszych przykÆadów ma takie samo
dziaÆanie:
cpl 0- joke.txt
cpl 00- joke.txt
cpl 02- joke.txt
czyli konwersjæ zakoñczeñ linii do pojedyñczych NL, bez naruszania
polskich liter.
:kod ªródÆowy:
Program byÆ z powodzeniem kompilowany Borlandem 3.1, gcc 2.7.0 pod Linuxem
(a.out) oraz DJGPP pod DOSem (gcc 2.6.3). Proszæ o kontakt w razie wyståpienia
niekompatybilno₧ci kodu ªródÆowego w innych systemach.
:licznik linii:
Typowy "wodotrysk". Zwalnia pracæ o ok. 30%. Standardowo wyÆåczony, w celu
wÆåczenia trzeba przekompilowaì ªródÆa bez opcji NO_LINE_COUNT. Licznik jest
zawsze wyÆåczony podczas pracy w trybie stdin/stdout (czyli zazwyczaj jako
filtr, CGI itp.).
:inne opcje:
-?, -h,
/?, --help: wy₧wietlajå listæ wszystkich dostæpnych parametrów,
skÆadniæ linii komend itp.
-V, --version: wy₧wietla (na stdout) numer wersji CPL
-L, --licencja: wy₧wietlanå licencjæ uºytkowania programu.
-S, --standard: wy₧wietlajå tabelkæ wszystkich obsÆugiwanych
standardów polskich znaków.
:HISTORIA:
~~~~~~~~~~
1.0 pierwsza wersja (dla pakietu PGP-pl);
1.2 definicje standardów przeniesione do polish.c; paræ nowych definicji;
1.3 Amiga PL; nowy ukÆad polish.c;
1.5 nieco przyspieszona praca; nowy kod ªródÆowy, makefile;
1.6 skróty dla najczæ₧ciej uºywanych konwersji; tryb stdin/stdout (filtr)
1.7 konwersja miædzy tekstem unixowym (amigowym) i DOSowym
1.72 licznik linii
1.75 nowe definicje (Win 3.0, FAT, XJP, CP/J);
1.76 nowe definicje (Ventura, Macintosh, TeX PL i Corel);
1.90 dodana konwersja wielu plikow, pare innych zmian;
2.00 napisany w 90% od nowa, usuniæte stare pluskwy, wprowadzone nowe ;)
dodane rozpoznawanie standardow
2.01 kilka dodatków, zmiany w interpretacji niektórych poleceñ
W planach:
* 'spolszczanie' cyrylicy
* kody wieloznakowe
* znaki globalne, exclude
..............................................................................
Autor : Pawel Krawczyk <kravietz@pipeta.chemia.pk.edu.pl>
<2:486/18.4@fidonet>
Najnowsza wersja : ftp://pipeta.chemia.pk.edu.pl/pub/convpl/cpl201.zip