12 mar 2010

update lub insert bazy mysql w perlu

Jeśli w perlu za pomocą use DBD::ODBC; robimy update rekordu czy insert z polskimi znakami powiedzmy "ł" do bazy dodaje się zamiast litery "ł" znak "?".
Problem można ten obejść za pomocą sprytnego polecenia mysql "_latin2" które wstawiamy przed wstawianym stringiem.
Przykład poniżej:

UPDATE klient
SET
  branza = _latin2 'Gumowe artykuły|33241|2399'
WHERE
  idrek = 177221312
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);
17 cze 2009

Duże i małe litery

toLowerCase i toUpperCase

var b = 'dzisiaj jest dzień dziecka.'
document.write(b.toUpperCase());

Jak zwykle są problemy z polskimi literami, Ale jest wyjście.

function toUpperCase(value) {
  var A = "a±bcć¶";
  var B = "AˇBCƦ";

  var oldval = value;
  var newval = "";

  for (var i = 0; i < oldval.length; i++) {
    var char = A.indexOf(oldval.substr(i, 1));
    newval = newval + B.substr(char, 1);
  }
  field = newval;
  return field;
}
document.write(toUpperCase('±aaabcć¶'));

Funkcja nie pełna, należy podać cały alfabet, można też napisać funkcję na zmniejszanie polskich liter.

Zmiana np.

<title>
document.title = '¶ianko'.toUpperCase();
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);