субота, 28 листопада 2015 р.

Perl...

:)

Тільки вчуся..)

Це не перший мій скрипт. Це вже третій. Насправді - це напіватоматика, а не автоматика, як мусить бути...

Але потихеньку вчуся. Тепер, коли мене в комітеті СДМ чомусь називають "IT-guy", то мушу тримати марку)

P. S. Ті, хто знає Perl, будь ласка, дуже з мене не смійтеся:)

## Мовний склад населення України, перетворення в таблиці
#/usr/bin/perl

my $filename = 'demoinput.txt';
open(my $fh, $filename);
my $row = <$fh>;
$nazva = 0;

# my $filename1 = 'demoinput1.txt';
# open(my $fh1, $filename1);
# my $row1 = <$fh1>;
# $population1 = $row1;

# на разі, працюю над тим, щоби змінні, які є нижче, прописувати не  вручну, а щоби програма їх вишукувала у таблицях. Але то трохи треба помізкувати, який алгоритм пошуку застосувати
$population = '273';
$ukrv = '97,07';
$mosv = '2,20';
$belv = '0,37';
$bgv = '-';
$virv = '-';
$gagv = '-';
$qmtv = '-';
$molv = '-';
$nimv = '-';
$polv = '-';
$tsgv = '-';
$rumv = '-';
$slov = '-';
$uhov = '-';
$qarv = '-';
$hebv = '-';
$grev = '-';
$ukrp = int ($population / 100 * $ukrv);
$mosp = int ($population / 100 * $mosv);
$belp = int ($population / 100 * $belv);
$bgp = int ($population / 100 * $bgv);
$virp = int ($population / 100 * $virv);
$gagp = int ($population / 100 * $gagv);
$qmtp = int ($population / 100 * $qmtv);
$molp = int ($population / 100 * $molv);
$nimp = int ($population / 100 * $nimv);
$polp = int ($population / 100 * $polv);
$tsgp = int ($population / 100 * $tspv);
$rump = int ($population / 100 * $rumv);
$slop = int ($population / 100 * $slov);
$uhop = int ($population / 100 * $uhov);
$qarp = int ($population / 100 * $qarv);
$hebp = int ($population / 100 * $hebv);
$grep = int ($population / 100 * $grev);

if ($belv eq "-")
{
  $tablbel ="";
}
else
{
$tablbel = "|-----\n| [[білоруська мова|білоруська]]\n| $belp\n| $belv\n";
}

if ($bgv eq "-")
{
  $tablbg ="";
}
else
{
$tablbg = "|-----\n| [[болгарська мова|болгарська]]\n| $bgp\n| $bgv\n";
}

if ($virv eq "-")
{
  $tablvir ="";
}
else
{
$tablvir = "|-----\n| [[вірменська мова|вірменська]]\n| $virp\n| $virv\n";
}

if ($gagv eq "-")
{
  $tablgag ="";
}
else
{
$tablgag = "|-----\n| [[гагаузька мова|гагаузька]]\n| $gagp\n| $gagv\n";
}

if ($qmtv eq "-")
{
  $tablqmt ="";
}
else
{
$tablqmt = "|-----\n| [[кримськотатарська мова|кримськотатарська]]\n| $qmtp\n| $qmtv\n";
}

if ($molv eq "-")
{
  $tablmol ="";
}
else
{
$tablmol = "|-----\n| [[молдовська мова|молдовська]]\n| $molp\n| $molv\n";
}

if ($nimv eq "-")
{
  $tablnim ="";
}
else
{
$tablnim = "|-----\n| [[німецька мова|німецька]]\n| $nimp\n| $nimv\n";
}

if ($polv eq "-")
{
  $tablpol ="";
}
else
{
$tablpol = "|-----\n| [[польська мова|польська]]\n| $polp\n| $polv\n";
}

if ($tsgv eq "-")
{
  $tabltsg ="";
}
else
{
$tabltsg = "|-----\n| [[циганська мова|циганська]]\n| $tsgp\n| $tsgv\n";
}

if ($rumv eq "-")
{
  $tablrum ="";
}
else
{
$tablrum = "|-----\n| [[румунська мова|румунська]]\n| $rump\n| $rumv\n";
}

if ($slov eq "-")
{
  $tablslo ="";
}
else
{
$tablslo = "|-----\n| [[словацька мова|словацька]]\n| $slop\n| $slov\n";
}

if ($uhov eq "-")
{
  $tabluho ="";
}
else
{
$tabluho = "|-----\n| [[угорська мова|угорська]]\n| $uhop\n| $uhov\n";
}

if ($qarv eq "-")
{
  $tablqar ="";
}
else
{
$tablqar = "|-----\n| [[караїмська мова|караїмська]]\n| $qarp\n| $qarv\n";
}

if ($hebv eq "-")
{
  $tablheb ="";
}
else
{
$tablheb = "|-----\n| [[єврейська мова|єврейська]]\n| $hebp\n| $hebv\n";
}

if ($grev eq "-")
{
  $tablgre ="";
}
else
{
$tablgre = "|-----\n| [[грецька мова|грецька]]\n| $hebp\n| $hebv\n";
}

print<<EndCard
\<!-- $nazva -->
\== Населення ==

\За даними [[Перепис населення України 2001|перепису населення 2001 року]], у селі мешкало $population осіб<ref>[http://pop-stat.mashke.org/ukraine-census-2001/zaporizka.htm Населення населених пунктів Запорізької області за даними перепису 2001 року]</ref>. Мовний склад населення був таким<ref>[http://database.ukrcensus.gov.ua/MULT/Dialog/Saveshow.asp Розподіл населення за рідною мовою, Запорізька область]</ref>:
\
\{| align="center" class="standard"
|+
! |Мова
! |Число ос.
! |Відсоток
|-----
| [[українська мова|українська]]
| $ukrp
| $ukrv
|-----
| [[російська мова|російська]]
| $mosp
| $mosv
$tablbel $tablbg $tablvir $tablgag $tablqmt $tablmol $tablnim $tablpol $tabltsg $tablrum $tablslo $tabluho $tablqar $tablheb $tablgre
|+
|}

EndCard
;

open FID, ">demouotput.txt";
#  or die "Failed to open output1.txt: $!\n";
print FID <<EndCard
\<!-- $nazva -->
\== Населення ==

\За даними [[Перепис населення України 2001|перепису населення 2001 року]], у селі мешкало $population осіб<ref>[http://pop-stat.mashke.org/ukraine-census-2001/zaporizka.htm Населення населених пунктів Запорізької області за даними перепису 2001 року]</ref>. Мовний склад населення був таким<ref>[http://database.ukrcensus.gov.ua/MULT/Dialog/Saveshow.asp Розподіл населення за рідною мовою, Запорізька область]</ref>:
\
\{| align="center" class="standard"
|+
! |Мова
! |Число ос.
! |Відсоток
|-----
| [[українська мова|українська]]
| $ukrp
| $ukrv
|-----
| [[російська мова|російська]]
| $mosp
| $mosv
$tablbel $tablbg $tablvir $tablgag $tablqmt $tablmol $tablnim $tablpol $tabltsg $tablrum $tablslo $tabluho $tablqar $tablheb $tablgre
|+
|}

EndCard
;

Немає коментарів:

Дописати коментар