17 cze 2009

Porówniane dwóch plików w perlu.

open (FH,"<lista_01.txt");
while(<FH>){
@arr=split(" ",$_);
$hash{$arr[0]}=$_;
}
close(FH);

open (FO, ">lista_wynikowa.txt");

open (FH,"<lista_02.txt");
while(<FH>){
@arr=split(" ",$_);

if(exists($hash{$arr[0]})){
#    print $hash{$arr[2]} . "";
#    print FO $_;
print FO $_;
}
}
close(FH);
11 maj 2009

konwersja utf8 na katakana

sub UTF8toKatakana
# convert utf8 to katakana
{
my ( $stri ) = @_;

$stri =~ s/\xC4\x85/a/g;    # ą
$stri =~ s/\xC4\x84/A/g;    # Ą
$stri =~ s/\xC4\x87/c/g;    # ć
$stri =~ s/\xC4\x86/C/g;    # Ć
$stri =~ s/\xC4\x99/e/g;    # ę
$stri =~ s/\xC4\x98/E/g;    # Ę
$stri =~ s/\xC5\x82/l/g;    # ł
$stri =~ s/\xC5\x81/L/g;    # Ł
$stri =~ s/\xC3\xB3/o/g;    # ó
$stri =~ s/\xC3\x93/O/g;    # Ó
$stri =~ s/\xC5\x9B/s/g;    # ś
$stri =~ s/\xC5\x9A/S/g;    # Ś
$stri =~ s/\xC5\xBC/z/g;    # ż
$stri =~ s/\xC5\xBB/Z/g;    # Ż
$stri =~ s/\xC5\xBA/z/g;    # ź
$stri =~ s/\xC5\xB9/Z/g;    # Ź
$stri =~ s/\xc5\x84/n/g;    # ń
$stri =~ s/\xc5\x83/N/g;    # Ń

return $stri;
}
&UTF8toKatakana($calosc);
20 wrz 2008

Dodawanie rekordów do bazy PostgreSQL

#!/usr/bin/perl
use Pg;

open(PLIK,"silownie.csv");
@tablica=<PLIK>;
close PLIK;
chop(@tablica);
$koniec = @tablica;

$baza = Pg::connectdb("dbname = bazatestowa");
$baza->exec("begin");

for ($i=0;$i<30;$i++) {
@tab=split(/;/,$tablica[$i]);
my $wynik = $baza->exec("insert into silownia values ('$tab[0]','$tab[1]','$tab[2]','$tab[3]')");
}

$baza->exec("end");
print "Ok\";
1 wrz 2008

Wczytanie pliku do tablicy

sub load_file_to_table {
    my ( $plik, $tab_format) = @_;

    open(PLIK, $plik);
    while ($line = <PLIK>) {
        chomp $line;</p>

        if($tab_format==1) {
            my ($region, $gmina, $kierunkowy) = split(/\t/, $line);
            $tablica{$region."-".$gmina} = $kierunkowy;
        }
        elsif($tab_format==2) {
            my ($wojew, $miejsc, $gmina, $kierunkowy, $pna) = split(/\t/, $line);
            $tablica{$wojew."-".$gmina}{$miejsc}{'nr_kier'} = $kierunkowy;
            $tablica{$wojew."-".$gmina}{$miejsc}{'pna'}  = $pna;
            $tablica{$wojew."-"}{$miejsc}{'nr_kier'}  = $kierunkowy;
            $tablica{$wojew."-"}{$miejsc}{'pna'}   = $pna;
        }
        elsif($tab_format==3) {
            my ($miejsc, $ulica, $kierunkowy, $pna) = split(/\t/, $line);
            $tablica{$miejsc}{$ulica}{'nr_kier'} = $kierunkowy;
            $tablica{$miejsc}{$ulica}{'pna'}  = $pna;
        }

        elsif($tab_format==4) {
            my $nr_kier = $line;
               $nr_kier =~ s/\-/ /g;
            $tablica{$nr_kier} = $nr_kier;
        }
    }

    close(PLIK);
    return %tablica;
}
%region_gmina_nr_kierunkowe   = &load_file_to_table ( $PATH_DATA . 'gmnkier.txt', 1);