Thread View: pl.comp.lang.perl
3 messages
3 total messages
Started by Bartek Rajwa
Thu, 05 Feb 1998 10:00
Pomocy! (Krotki programik)
Author: Bartek Rajwa
Date: Thu, 05 Feb 1998 10:00
Date: Thu, 05 Feb 1998 10:00
30 lines
1512 bytes
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)
Author: L. Rompa
Date: Sat, 07 Feb 1998 04:04
Date: Sat, 07 Feb 1998 04:04
49 lines
2153 bytes
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)
Author: Jaroslaw Strzalkowski
Date: Mon, 09 Feb 1998 16:15
Date: Mon, 09 Feb 1998 16:15
17 lines
1218 bytes
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