Posted By: snake (:q!) on 'CZmswindows'
Title:     Re: Prevod kodovani v textovych souborech
Date:      Mon May 28 02:43:25 2007

>   Co je 'klasicky Unicode'?

No tipoval bych proste klasicky unicode;-) (tj. 16bitovy character set, kde je 
kazdy znak kodovany jednim wordem/2 byty; UTF-8 je sice 16bit character set, 
ale kodovany tak, aby prvnich 128 znaku ASCII zustalo zachovano, plus byly 
dodrzene dalsi vlastnosti zlepsujici kompatibilitu se starymi programy 
pocitajicimi jen s 8bitovymi character sety)... 

>   Tady je potreba vzdycky doplnit, jak na svem kompu snasis cygwin,

:-) (souhlas)

no a ted k navrhovanemu iconvu: to mu evidentne problem neresi.iconv umi jen 
jeden ci vice souboru zadanych z command lajny; ThePhone se vyjadril, ze 
potrebuje zkonvertovat kvanta takovych souboru. Program na konverzi jednoho 
uz ma a vyhovuje mu. A jak sam pise, v unixu by to asi slo bez problemu:-)... 
Tim resenim je IMHO unixovy (cti cygwinovy) find s jeho -exec argumentem. Do  
toho exec argumentu se zada prave dotycny fungujici program, samotny find pak 
muze vyhledavat jen "ty spravne soubory" (napr. soubory ze spravneho adresare, 
majici koncovku *.txt/csv/apod., do vsech urovni podadresaru, ale bez nich 
samotnych).

Jinak existuje i jednoducha nahrada, ale bohuzel si nevzpomenu na jmeno, 
treba si vzpomene nekdo jiny: je to program, ktery dela totez, co xargs 
(dodaval se tusim k staremu Borland Pascalu ci necemu podobnemu). Jinak jak 
xargs (ten bere na vstupu soubory a pro kazdy z nich spusti zvolenou binarku s 
parametrem v podobe souboru), tak find se da najit i bez cygwinu v ruznych 
drobnych baliccich doplnujicich schopnosti windozu. Pripadne ho mohu poslat 
mailem treba i z te cygwini distribuce, k fungovani cygwinich programu totiz 
neni nutne nic vic nez jeji jedine DLLko, ktere bych poslal take... 

No a jeste posledni, krapet nesystemova moznost, ale fungujici stejne bezvadne 
jako vsechny ty ostatni scriptovatelnejsi. Pokud neni pozadavkem 
znovupouzitelnost zvolene metody, ale jen vynalozeni co nejmensi namahy na 
vykonani ukolu:-), lze jednorazove vygenerovat seznam souboru s jejich plnymi 
cestami, nasledne nahradit pocatecni napr. "c: " za nove "konverto.exe 
parametry C:" a  k dispozici bude batch, ktery se po ulozeni do .bat souboru 
da velmi jednoduse spustit. Potize mohou byt jen nasledujici a vzdy jsou 
resitelne:

- znakova sada: da se vyresit prikazem chcp 1250 na zacatku batche
 - mezery v nazvu: da se vyresit uvedenim kratkych (DOSovych) jmen, pripadne 
ouvozovkovanim vsech jmen souboru "pro jistotu" (opet hromadnou nahradou)

A jak se da vygenerovat seznam jmen? Pokud je pozadavkem vyuziti jen 
dostupnych windowsich programu ci utilit, lze pouzit i program "dir". Viz 
"help dir" na prohlednuti nabizenych parametru, osobn volim neco jako "dir 
adresar /s /b /a >batch.bat". Pred provedenim prikazu dir doporucuji zmenit 
kodovani pomoci chcp, aby bylo ve windozim formatu, vysledek se pak lepe 
prohlizi notepadem ci necim podobnym. Parametr /b znamena "bare" a sdeluje 
diru, aby vypisoval jen nazvy souboru bez jakychkoli hlavicek ci paticek, 
ktere by pri rozvetvene adresarove strukture prekazely a daly praci pri 
odstranovani. 

Vyfikanejsi variantou je vytvoreni seznamu pomoci nejakeho commanderu, nevim, 
ktere z nich to umi, ale Total Commander 7 zcela jiste (a 30 dnu ho lze 
pouzivat zdarma,ze). Vygenerovani se udela pomoci menu Mark/Copy Names With 
Path To Clipboard, pricemz s vyhodou lze predtim do okna nacpat vysledek 
vyhledavani (alt+f7) souboru podle ruznych kriterii (napr. soubory *.txt ve 
vsech podadresarich, majici urcitou velikost ci stari atd. lze vyuzit dokonce 
i regexpy jak v nazvu souboru, tak i v jejich obsahu)... Po vygenerovani je 
dalsi postup jiz jasny: opet notepad, prepastnout nazvy do cisteho souboru, 
nahradit pocatecni c: cim potrebuji atd...

Prace tak na 3 minuty vcetne kontroly, zda konvertuji vse, co jsem chtel, a 
nic, co jsem nechtel:-)... 

snake 

Search the boards