cteni a zapis binarniho (jpg) souboru

Richard Janasek richard na janasek.cz
Středa Září 15 16:08:49 CEST 2010


Už to funguje, chybou byly uvozovky na posledním řádku uvedeného skriptu.
Děkuji Vám pane Smerku za rady a trpělivost.
Richard

> On Wed, Sep 15, 2010 at 03:42:24PM +0200, Richard Janasek wrote:
>> tak jsem zkusil vyhodit vše zbytečné a nechal jen rádoby funkční skript,
>> který nefunguje. (zřejmě nerozumím tomu, jak uložit obsah vstupu do pole
>> a potom to z pole vytisknout na výstup)
>>
>> $VystupniSoubor = "vystup.jpg";
>>
>> open(FOTO, $ARGV[0]);   # --- cteme soubor
>> binmode (FOTO);
>>
>> @foto =<FOTO>;
>>
>> open (VystupFoto, ">>$VystupniSoubor");
>
> Tipuju, ze tady chcete>  misto>>, protoze jinak by se dalsim spustenim
> pripisovalo do tehoz souboru, coz asi neni zadouci.
>
>> binmode (VystupFoto);
>>
>> print VystupFoto "@foto";
>
> Tady chcete @foto bez uvozovek, pripadne nekde predtim nastavit $" = '' (viz
> man perlvar, ale spis nechcete vkladat pole do retezce, nez pouzivat $").
>
> Mozna stoji za pozornost modul File::Copy.
>
> A obecne byste asi mel venovat chvili sveho casu nejakemu tutorialu pro
> zacatecniky, jinak bude Vase programovani hodne krusne a casove narocne.
>
> 							S pozdravem,	P.
>
>>> On Wed, Sep 15, 2010 at 05:38:52AM +0200, Richard Janasek wrote:
>>>> ano, vstup mam take v binmode, alespon si to myslim. (nedulezite radky
>>>> jsem vypustil kvuli prehlednosti)
>>>
>>> Obecne je dobre zkusit najit nejaky minimalni priklad chyby, tedy funkcni
>>> kod, ktery ma nezadouci chovani, a pritom uz nejde zjednodusit. Nezridka
>>> pritom clovek sam zjisti, v cem je problem. Tipuju ale, ze nize uvedeny kod
>>> netrpi tim, ze by se vstup od vystupu lisil jen absenci binarnich nul,
>>> protoze
>>>
>>>> open(FOTO, $fotka);   # --- cteme soubor
>>>> binmode (FOTO);
>>>>
>>>> @foto =<FOTO>;
>>>
>>> tady do @foto nactete cely obsah FOTO,
>>>
>>>> $VystupniSoubor2 = $Jmeno;
>>>> open (VystupFoto2, ">>$VystupniSoubor2");
>>>> binmode (VystupFoto2);
>>>>
>>>> while (<FOTO>)
>>>
>>> takze tady uz ve FOTO nic neni a cyklus neprobehne ani jednou,
>>>
>>>> {
>>>> $Fotecka = getc FOTO;
>>>
>>> ovsem i kdyby probihal, na jeho konci byste mel ve $Fotecka posledni znak
>>> FOTO (nebo tak neco, viz manual), protoze zrejme chcete spis .= nez jen =
>>> (ale hlavne si nejsem jisty, jestli je rozumne cist soubor zrovna skrze
>>> getc),
>>>
>>>> }
>>>> close(FOTO);
>>>>
>>>> print VystupFoto2 "$Fotecka\n";
>>>
>>> no a nakonec pridavate k binarnimu souboru extra znak \n, coz myslim taky
>>> neni uplne dobry napad.
>>> 									P.
>>>
>>>>> On Tue, Sep 14, 2010 at 03:31:11PM +0200, Richard Janasek wrote:
>>>>>> mam tam tohle:
>>>>>>
>>>>>> $VystupniSoubor = $Prijmeni;
>>>>>> open (VystupFoto, ">>$VystupniSoubor");
>>>>>> binmode (VystupFoto);
>>>>>
>>>>> A zrejme tam mate jeste nejaky dalsi open VstupFoto a na ten filehandle to
>>>>> chcete pouzit taky.
>>>>> 									P.
>>>>>
>>>>>> (pouštím to na Win XP a ActiveState Perl5 v12)
>>>>>> R.
>>>>>>
>>>>>>
>>>>>>> On Tue, Sep 14, 2010 at 01:33:14PM +0200, Richard Janasek wrote:
>>>>>>>> prosim o radu, jakym zpusobem cist binarni soubor (jpg) a jeho nasledny
>>>>>>>> zapis do jineho souboru (v podstate kopirka). Kdyz pouziju pristup jako
>>>>>>>> k textovemu souboru - getc, tak vystup neni identicky se vstupem (jsou
>>>>>>>> vynechany prazdne znaky).
>>>>>>>
>>>>>>> Funkce binmode? (Manual dokonce rika " ... regardless of platform, use
>>>>>>> binmode() on binary data, like for example images." :-)
>>>>>>> 							S pozdravem,	P.
>>>>>>> _______________________________________________
>>>>>>> Perl mailing list
>>>>>>> Perl na mailman.muni.cz
>>>>>>> https://mailman.muni.cz/mailman/listinfo/perl
>>>>>>
>>>>>> _______________________________________________
>>>>>> Perl mailing list
>>>>>> Perl na mailman.muni.cz
>>>>>> https://mailman.muni.cz/mailman/listinfo/perl
>>>>> _______________________________________________
>>>>> Perl mailing list
>>>>> Perl na mailman.muni.cz
>>>>> https://mailman.muni.cz/mailman/listinfo/perl
>>>>
>>>> _______________________________________________
>>>> Perl mailing list
>>>> Perl na mailman.muni.cz
>>>> https://mailman.muni.cz/mailman/listinfo/perl
>>> _______________________________________________
>>> Perl mailing list
>>> Perl na mailman.muni.cz
>>> https://mailman.muni.cz/mailman/listinfo/perl
>>
>> _______________________________________________
>> Perl mailing list
>> Perl na mailman.muni.cz
>> https://mailman.muni.cz/mailman/listinfo/perl
> _______________________________________________
> Perl mailing list
> Perl na mailman.muni.cz
> https://mailman.muni.cz/mailman/listinfo/perl



Další informace o konferenci Perl