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