🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
3 messages
3 total messages Started by Bartek Rajwa Thu, 05 Feb 1998 10:00
Pomocy! (Krotki programik)
#970
Author: Bartek Rajwa
Date: Thu, 05 Feb 1998 10:00
30 lines
1512 bytes
Szanowni gurus jezyka perl!

Sprawa jest prosta: krotki programik, ktory bedzie dokonywal zamiany
nazw w plikach typu
a1.xxx, a2.xxx, a3.xxx, ...., annn.xxx

na:

a001.xxx, a002.xxx, a003.xxx, ...., annn.xxx

Liczba cyfr (w powyzszym przykladzie zer) ma byc pobierana na wejsciu. I
oczywiscie jesli liczba cyfr jest np. 4, to programik do a234.xxx
powinien dopisac tylko jedno 0 (tak by bylo a0234.xxx)

Z gory dzieki za pomoc!

Pozostajac z szacunkiem

Bartek



-- 
                                 --- **** ---
                                 Bartek Rajwa          
           e-mail: bartek@mol.uj.edu.pl, rajwa@helios.mol.uj.edu.pl
            "If it were not for the fact that the computer and the
          refrigerator are so far apart, some of us wouldn't get any
                              exercise at all!"
                                 --- **** ---
Re: Pomocy! (Krotki programik)
#971
Author: L. Rompa
Date: Sat, 07 Feb 1998 04:04
49 lines
2153 bytes
Najpierw trzeba wydobyc cyfre z nazwy pliku:
($prefix,$reszta) = split(/./,$plik);
        $prefix teraz ma 'a234', $reszta ma 'xxx'.
$prefix =~ s/^([a-zA-Z]*)([0-9][0-9]*)$/\1.\2/;
        $prefix powinien wygladac tak: 'a.234'.
($litery,$numer) = split(/./,$prefix);
        $litery - 'a' , $numer - '234'.

Teraz przykleic pare zer.
$x = 4;        #liczba cyfr
$numer = sprintf("%0$xd",$numer);    #<-- "%04d" ???
$nowyplik = $litery.$numer.".".$reszta;

Niestety, nie sprawdzilem tego kodu, wiec badz uwazny, szczegolnie z
'sprintf'.

Leszek R.


Bartek Rajwa wrote:

> Szanowni gurus jezyka perl!
>
> Sprawa jest prosta: krotki programik, ktory bedzie dokonywal zamiany
> nazw w plikach typu
> a1.xxx, a2.xxx, a3.xxx, ...., annn.xxx
>
> na:
>
> a001.xxx, a002.xxx, a003.xxx, ...., annn.xxx
>
> Liczba cyfr (w powyzszym przykladzie zer) ma byc pobierana na wejsciu. I
> oczywiscie jesli liczba cyfr jest np. 4, to programik do a234.xxx
> powinien dopisac tylko jedno 0 (tak by bylo a0234.xxx)
>
> Z gory dzieki za pomoc!
>
> Pozostajac z szacunkiem
>
> Bartek
>
> --
>                                  --- **** ---
>                                  Bartek Rajwa
>            e-mail: bartek@mol.uj.edu.pl, rajwa@helios.mol.uj.edu.pl
>             "If it were not for the fact that the computer and the
>           refrigerator are so far apart, some of us wouldn't get any
>                               exercise at all!"
>                                  --- **** ---
Re: Pomocy! (Krotki programik)
#972
Author: Jaroslaw Strzalkowski
Date: Mon, 09 Feb 1998 16:15
17 lines
1218 bytes
Bartek Rajwa <rajwa@helios.mol.uj.edu.pl> wrote:
: Szanowni gurus jezyka perl!

: Sprawa jest prosta: krotki programik, ktory bedzie dokonywal zamiany
: nazw w plikach typu
: a1.xxx, a2.xxx, a3.xxx, ...., annn.xxx
: na:
: a001.xxx, a002.xxx, a003.xxx, ...., annn.xxx

Tak z palca, bez próbowania:

$nzer=$ARGV[0]; if( $nzer + 0 == 0 ) { $nzer = 3; }
for(<*.xxx>) { if(/\d+/) { rename( $_, sprintf("$`%0${nzer}d$'",$&) ); } }

Oczywiście można krócej. Hej.
-- 
Jaroslaw Strzalkowski, Uczelniane Centrum Informatyki AGH, Krakow
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads