Temat: Kwota słownie

Mam problem z funkcja konwertujaca kwote na słowa...


function Slownie($kwota) {
$ta = array("","sto","dwieście","trzysta","czterysta","pięćset","sześćset","siedemset","osiemset","dziewięćset");
$tb = array("","dziesięć","dwadzieścia","trzydzieści","czterdzieści","pięćdziesiąt","sześćdziesiąt","siedemdziesiąt","osiemdziesiąt","dziewięćdziesiąt");
$tc = array("","jeden","dwa","trzy","cztery","pięć","sześć","siedem","osiem","dziewięć");
$td = array("dziesięć","jedenaście","dwanaście","trzynaście","czternaście","piętnaście","szesnaście","siednaście","osiemnaście","dziewiętnaście");
$t2 = array("milion","milionów","miliony");
$t1 = array("tysiąc","tysięcy","tysiące");
$t0 = array("złoty","złotych","złote");

if ($kwota) {
$tmp=explode(".",GetNum($kwota));

$ln=strlen($tmp[0]);
$tmpa=($ln%3==0)? (floor($ln/3)*3) : ((floor($ln/3)+1)*3);
for($i=$ln;$i<$tmpa;$i++) {
$l.='0';
$kw=$l.$tmp[0];
}
if ($kw=="") $kw=$tmp[0];

$pak=(strlen($kw)/3)-1;
$p=$pak;
$slow="";
for($i=0;$i<=$pak;$i++) {
$ttmp="t".$p--;
$pkw=substr($kw,($i*3),3);
$kws=($pkw[1]!=1)? $ta[$pkw[0]]." ".$tb[$pkw[1]]." ".$tc[$pkw[2]] : $ta[$pkw[0]]." ".$td[$pkw[2]];

if (($pkw[0]==0) && ($pkw[2]==1) && ($pkw[1]<1)) $ka=${$ttmp}[0];
else if (($pkw[2]>1 && $pkw[2]<5) && $pkw[1]!=1) $ka=${$ttmp}[2];
else $ka=${$ttmp}[1];

$slow.=$kws.' '.$ka.' ';
}
}

if ($tmp[1][0]=="1") $txtgr=$td[$tmp[1][1]];
else {
$txtgr=$tb[$tmp[1][0]];
if ($txtgr) $txtgr.=" ";
$txtgr.=$tc[$tmp[1][1]];
}
if ($tmp[1]=="00") $txtgr="zero";

$gr="groszy";
if ($tmp[1][1]<5 && $tmp[1][1]!=0) $gr="grosze";
if ($tmp[1][1]==1) $gr="grosz";

return "$slow $txtgr $gr";
}


Nie wiem juz gdzie tkwi blad ...
bo dla kwoty 187 525.80 podaje:
jeden milion osiemset siedemdziesiąt tysięcy pięćset dwadzieścia pięć złotych osiemdziesiąt groszy. Macie jakis pomysl ?
29.01.2011, 19:09
Jakub

Jakub L. Programista

Temat: Kwota słownie

Moim zdaniem problemem mogą być niewiele mówiące nazwy zmiennych i/lub (...) Zobacz więcej
29.01.2011, 19:36
Adam

Adam Piotrowski Gekosale.pl -
bezpłatne
oprogramowanie
sklepu na LGPL

Temat: Kwota słownie

Spróbuj skorzystać z tego

http://4programmers.net/PHP/FAQ/Jak_zamieni%C4%87_licz...Adam Piotrowski edytował(a) ten post dnia 03.06.12 o godzinie 18:38
29.01.2011, 19:37
Michał

Michał Jarosz Inżynier DBMS

Temat: Kwota słownie

Hehe... chyba znam tą funkcję. Wywal spacje pomiędzy tysiącami (...) Zobacz więcej
29.01.2011, 21:18
Andrzej

Andrzej Kidaj www.alib.ad3.eu

Temat: Kwota słownie

Jakub L.:
Moim zdaniem problemem mogą być niewiele mówiące nazwy zmiennych i/lub brak komentarzy.

Tą funkcję przepisywałem kiedyś na potrzeby programu do faktur z jakiegoś tutoriala (mocno upraszczałem nazwy, usuwałem komentarze trochę zmieniałem kod) i mogłem popełnić błąd (nigdy nie testowałem dla dużych kwot), o czym już pisałem Michałowi. Najlepiej jak by poszukał źródła, to raptem godzina googlowania.
30.01.2011, 09:19
Adam

Adam Piotrowski Gekosale.pl -
bezpłatne
oprogramowanie
sklepu na LGPL

Temat: Kwota słownie

Andrzej K.:
Jakub L.:
Moim zdaniem problemem mogą być niewiele mówiące nazwy zmiennych i/lub brak komentarzy.

Tą funkcję przepisywałem kiedyś na potrzeby programu do faktur z jakiegoś tutoriala (mocno upraszczałem nazwy, usuwałem komentarze trochę zmieniałem kod) i mogłem popełnić błąd (nigdy nie testowałem dla dużych kwot), o czym już pisałem Michałowi. Najlepiej jak by poszukał źródła, to raptem godzina googlowania.

Nie lepiej poświęcić tą godzinę na napisanie od podstaw ? :D
30.01.2011, 09:27
Jakub

Jakub L. Programista

Temat: Kwota słownie

Andrzej K.:
Jakub L.:
Moim zdaniem problemem mogą być niewiele mówiące nazwy zmiennych i/lub brak komentarzy.

Tą funkcję przepisywałem kiedyś na potrzeby programu do faktur z jakiegoś tutoriala (mocno upraszczałem nazwy, usuwałem komentarze trochę zmieniałem kod) i mogłem popełnić błąd (nigdy nie testowałem dla dużych kwot), o czym już pisałem Michałowi. Najlepiej jak by poszukał źródła, to raptem godzina googlowania.

W przypadku takiego kodu to albo się go debuguje, i wtedy pewnie wyjdzie że w którymś miejscu spacja bruździ, albo czyta - wtedy potrzebne są komentarze i infomratywne nazwy zmiennych.

Przebicie się przez coś takiego na sucho to lekka masakra.
30.01.2011, 10:09
Andrzej

Andrzej Kidaj www.alib.ad3.eu

Temat: Kwota słownie

Jakub L.:
Andrzej K.:
Jakub L.:
Moim zdaniem problemem mogą być niewiele mówiące nazwy zmiennych i/lub brak komentarzy.

Tą funkcję przepisywałem kiedyś na potrzeby programu do faktur z jakiegoś tutoriala (mocno upraszczałem nazwy, usuwałem komentarze trochę zmieniałem kod) i mogłem popełnić błąd (nigdy nie testowałem dla dużych kwot), o czym już pisałem Michałowi. Najlepiej jak by poszukał źródła, to raptem godzina googlowania.

W przypadku takiego kodu to albo się go debuguje, i wtedy pewnie wyjdzie że w którymś miejscu spacja bruździ, albo czyta - wtedy potrzebne są komentarze i infomratywne nazwy zmiennych.

Przebicie się przez coś takiego na sucho to lekka masakra.

Zgadzam się :) Dziwię się, że Michałowi się chce.

Ja sam nie będę już się tą funkcją zajmować, w Javie napiszę ją od nowa :)
30.01.2011, 10:30

Temat: Kwota słownie

no juz prawie rozwiazalo sie, tylko ze nowo funkcja zamiast podawać osiemdziesiąt groszy podaje osiem


function policz($l,$t1,$t2,$t3) {
$j = array("", "jeden ", "dwa ", "trzy ", "cztery ", "pięć ", "sześć ",
"siedem ", "osiem ", "dziewięć ", "dziesięć ", "jedenaście ",
"dwanaście ", "trzynaście ", "czternaście ", "piętnaście ",
"szesnaście ", "siedemnaście ", "osiemnaście ", "dziewiętnaście ");
$d = array("", "", "dwadzieścia ", "trzydzieści ", "czterdzieści ",
"pięćdziesiąt ", "sześćdziesiąt ", "siedemdziesiąt ",
"osiemdziesiąt ", "dziewięćdziesiąt ");
$s = array("","sto ", "dwieście ", "trzysta ", "czterysta ", "pięćset ",
"sześćset ", "siedemset ", "osiemset ", "dziewięćset ");

$txt = $s[0+substr($l,0,1)];
if (substr($l,1,2)<20) $txt .= $j[0+substr($l,1,2)];
else $txt .= $d[0+substr($l, 1,1)].$j[0+substr($l, 2,1)];
if ($l<>0) if ($l==1) $txt .= "$t1 "; else {
if ((substr($l,2,1)==2 or substr($l,2,1)==3 or substr($l,2,1)==4)
and (substr($l,1,2)>20 or substr($l,1,2)<10))
$txt .= "$t2 "; else $txt .= "$t3 ";
}
return $txt;
}

function slownie($liczba) {
$kwota=explode(".", $liczba);
$kwotazl=sprintf("%012d",$kwota[0]);
$kwotagr=sprintf("%03d",$kwota[1]);
$txt .= policz(substr($kwotazl, 0,3),"miliard","miliardy","miliardów");
$txt .= policz(substr($kwotazl, 3,3),"milion","miliony","milionów");
$txt .= policz(substr($kwotazl, 6,3),"tysiąc","tysiące","tysięcy");
$txt .= policz(substr($kwotazl, 9,3),"złoty","złote","złotych");
if ($kwotazl==0) $txt .= "zero złotych ";
$txt .= " i ";
$txt .= policz($kwotagr,"grosz","grosze","groszy");
if ($kwotagr==0) $txt .= "zero groszy";
return $txt;
}


Macie pomysl co nalezy zmienic, zeby te grosze dobrze podawało ?
Zaznacze ze Andrzej wstawil na samym poczatku taka funckje jeszcze:


function GetNum($val,$prz=".") { return number_format($val,2,$prz," "); }
Michał B. edytował(a) ten post dnia 31.01.11 o godzinie 19:37
31.01.2011, 19:12
Artur

Artur Świerc Programista PHP/Java

Temat: Kwota słownie

napisałbym to od początku, można by zaciągnąć do tego MessageFormatter. Jakiś czas temu zyx pisał na swoim blogu o tym: http://www.zyxist.com/pokaz.php/messageformatter

http://docs.php.net/manual/en/messageformatter.create.php
31.01.2011, 20:07
Michał

Michał Wachowski Programista,
freelancer na
zakręcie i
bazodanowiec z
boże...

Temat: Kwota słownie

Jak uda mi się wygrzebać, to dam moją funkcję która zamienia liczbę na słowo (słowa).
Działa (...) Zobacz więcej
31.01.2011, 20:30
Andrzej

Andrzej Kidaj www.alib.ad3.eu

Temat: Kwota słownie


function GetNum($val,$prz=".") { return number_format($val,2,$prz," "); }

I to może być właśnie przyczyną. Bo ta funkcja formatuje kwotę do wyświetlenia np: 1000 -> 1 000.00

Tutaj pojawia się spacja, która może powodować błąd.

Niestety właśnie zostałem mocno zawalony robotą i muszę się z tego jakoś wygrzebać. Więc więcej nie pomogę.
31.01.2011, 20:37
Michał

Michał Wachowski Programista,
freelancer na
zakręcie i
bazodanowiec z
boże...

Temat: Kwota słownie

I znalazłem, proszę wziąć poprawkę, że funkcja powstawała ponad 5 lat temu i ogólnie jest paskudna nadaje się do wywalenia. Ale działa :D


function numberToWord($number = 0) {
$number = number_format($number,2,",","");
$output = NULL;
$highestwordarray = array(
0 => array(1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => "" , 0 => ""),
1 => array(1 => "tysiąc.", 2 => "tys.", 3 => "tys.", 4 => "tys.", 5 => "tys.", 6 => "tys.", 7 => "tys.", 8 => "tys.", 9 => "tys." , 0 => "tys."),
2 => array(1 => "mil.", 2 => "mil.", 3 => "mil.", 4 => "mil.", 5 => "mil.", 6 => "mil.", 7 => "mil.", 8 => "mil.", 9 => "mil." , 0 => "mil."),
3 => array(1 => "miliard", 2 => "mld.", 3 => "mld.", 4 => "mld.", 5 => "mld.", 6 => "mld.", 7 => "mld.", 8 => "mld.", 9 => "mld." , 0 => "mld."),
);
$digitstoword = array(
0 => array(1 => 'jeden', 2 => 'dwa', 3 => 'trzy', 4 => 'cztery', 5 => 'pięć', 6 => 'sześć', 7 => 'siedem', 8 => 'osiem', 9 => 'dziewięć', 0 => ''),
1 => array(1 => array(1 => 'jedenaście', 2 => 'dwanaście', 3 => 'trzynaście', 4 => 'czternaście', 5 => 'piętnaście', 6 => 'szesnaście', 7 => 'siedemnaście', 8 => 'osiemnaście', 9 => 'dziewiętnaście', 0 => 'dziesięć'), 2 => 'dwadzieścia', 3 => 'trzydzieści', 4 => 'czterdzieści', 5 => 'pięćdziesiąt', 6 => 'sześćdziesiąt', 7 => 'siedemdziesiąt', 8 => 'osiemdziesiąt', 9 => 'dziewięćdziesiąt', 0 => ''),
2 => array(1 => 'sto', 2 => 'dwieście', 3 => 'trzysta', 4 => 'czterysta', 5 => 'pięćset', 6 => 'sześćset', 7 => 'siedemset', 8 => 'osiemset', 9 => 'dziewięćset', 0 => ''),
);

$number = explode(",",$number);
$number[1] = $number[1][1].$number[1][0];
$total_numbers = strlen($number[0])-1;
$part = NULL;

for($i = 0; $i <= $total_numbers; $i++) {
if(strlen($part) == 3 or strlen($part) == 7 or strlen($part) == 11) {
$part .= " ";
}
$part .= $number[0][$total_numbers - $i];
}

$number[0] = explode(" ",$part);

$word = array("0" => NULL, 1 => NULL, 2 => NULL, 3 => NULL, 'gr' => NULL);
foreach($number[0] as $key => $val) {
if(isset($val[2])) {
$word[$key] .= " ".$digitstoword[2][$val[2]];
}
if(isset($val[1])) {
if($val[1] == 1) {
$word[$key] .= " ".$digitstoword[1][$val[1]][$val[0]];
}
else {
$word[$key] .= " ".$digitstoword[1][$val[1]];
}

if(isset($val[0]) and (!isset($val[1]) or $val[1] != '1')) {
$word[$key] .= " ".$digitstoword[0][$val[0]];
}
}
}

for($i = 0; $i <= count($number[0])-1; $i++) {
if(isset($highestwordarray[$i][$number[0][$i][3 - strlen($number[0][$i])]]) and strlen($number[0][$i])-1 >= 0) {
$output = $word[$i]." ".$highestwordarray[$i][$number[0][$i][3 - strlen($number[0][$i])]]." ".$output;
}
}

$key = 'gr';
if(isset($number[1][1]))
if($number[1][1] == 1) {
$word[$key] .= " ".$digitstoword[1][$number[1][1]][$number[1][0]];
}
else {
$word[$key] .= " ".$digitstoword[1][$number[1][1]];
}

if(isset($number[1][0]) and (!isset($number[1][1]) or $number[1][1] != '1')) {
$word[$key] .= " ".$digitstoword[0][$number[1][0]];
}

return($output." zł. i ".$word['gr']." gr.");
}


echo '123 456 789 123,45 = '.numberToWord(123456789123.45); // 123 456 789 123,45 = sto dwadzieścia trzy mld. czterysta pięćdziesiąt sześć mil. siedemset osiemdziesiąt dziewięć tys. sto dwadzieścia trzy zł. i czterdzieści pięć gr.
Michał Wachowski edytował(a) ten post dnia 31.01.11 o godzinie 20:39
31.01.2011, 20:37
Dominik

Dominik Marczuk Programista
JavaScript i PHP

Temat: Kwota słownie

Jakub L.:
Przebicie się przez coś takiego na sucho to lekka masakra.

ctrl-h lub inny skrót służący do wywołania Search&Replace. Lecisz po nazwach zmiennych, które są na początku skryptu i zamieniasz na coś ludzko brzmiącego. I nagle czyta się łatwiej :).

Brak komentarzy troszkę gorzej obejść, ale od biedy ta funkcja nie jest aż tak skomplikowana, żeby bez komentarzy ją zrozumieć. Pamiętam, że kiedyś program do konwersji liczb na stringi w poprawnej polszczyźnie napisałem w C, z palca, bez żadnych przykładów i tutek. Chyba 12 czy 13 lat wtedy miałem i programować dopiero się uczyłem, więc to nie są jakieś niemożliwe do obcykania rzeczy (dla średnio wytrawnego programisty przynajmniej, jakkolwiek enigmatycznie by to określenie nie brzmiało).
31.01.2011, 20:50

Temat: Kwota słownie

Michał Wachowski:
I znalazłem, proszę wziąć poprawkę, że funkcja powstawała ponad 5 lat temu i ogólnie jest paskudna nadaje się do wywalenia. Ale działa :D


function numberToWord($number = 0) {
$number = number_format($number,2,",","");
$output = NULL;
$highestwordarray = array(
0 => array(1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => "" , 0 => ""),
1 => array(1 => "tysiąc.", 2 => "tys.", 3 => "tys.", 4 => "tys.", 5 => "tys.", 6 => "tys.", 7 => "tys.", 8 => "tys.", 9 => "tys." , 0 => "tys."),
2 => array(1 => "mil.", 2 => "mil.", 3 => "mil.", 4 => "mil.", 5 => "mil.", 6 => "mil.", 7 => "mil.", 8 => "mil.", 9 => "mil." , 0 => "mil."),
3 => array(1 => "miliard", 2 => "mld.", 3 => "mld.", 4 => "mld.", 5 => "mld.", 6 => "mld.", 7 => "mld.", 8 => "mld.", 9 => "mld." , 0 => "mld."),
);
$digitstoword = array(
0 => array(1 => 'jeden', 2 => 'dwa', 3 => 'trzy', 4 => 'cztery', 5 => 'pięć', 6 => 'sześć', 7 => 'siedem', 8 => 'osiem', 9 => 'dziewięć', 0 => ''),
1 => array(1 => array(1 => 'jedenaście', 2 => 'dwanaście', 3 => 'trzynaście', 4 => 'czternaście', 5 => 'piętnaście', 6 => 'szesnaście', 7 => 'siedemnaście', 8 => 'osiemnaście', 9 => 'dziewiętnaście', 0 => 'dziesięć'), 2 => 'dwadzieścia', 3 => 'trzydzieści', 4 => 'czterdzieści', 5 => 'pięćdziesiąt', 6 => 'sześćdziesiąt', 7 => 'siedemdziesiąt', 8 => 'osiemdziesiąt', 9 => 'dziewięćdziesiąt', 0 => ''),
2 => array(1 => 'sto', 2 => 'dwieście', 3 => 'trzysta', 4 => 'czterysta', 5 => 'pięćset', 6 => 'sześćset', 7 => 'siedemset', 8 => 'osiemset', 9 => 'dziewięćset', 0 => ''),
);

$number = explode(",",$number);
$number[1] = $number[1][1].$number[1][0];
$total_numbers = strlen($number[0])-1;
$part = NULL;

for($i = 0; $i <= $total_numbers; $i++) {[/quote]> if(strlen($part) == 3 or strlen($part) == 7 or strlen($part) == [quote]11) {
$part .= " ";
}
$part .= $number[0][$total_numbers - $i];
}

$number[0] = explode(" ",$part);

$word = array("0" => NULL, 1 => NULL, 2 => NULL, 3 => NULL, 'gr' => NULL);
foreach($number[0] as $key => $val) {
if(isset($val[2])) {
$word[$key] .= " ".$digitstoword[2][$val[2]];
}
if(isset($val[1])) {
if($val[1] == 1) {
$word[$key] .= " ".$digitstoword[1][$val[1]][$val[0]];
}
else {
$word[$key] .= " ".$digitstoword[1][$val[1]];
}

if(isset($val[0]) and (!isset($val[1]) or $val[1] != '1')) {
$word[$key] .= " ".$digitstoword[0][$val[0]];
}
}
}

for($i = 0; $i <= count($number[0])-1; $i++) {[/quote]> if(isset($highestwordarray[$i][$number[0][$i][3 - [quote]strlen($number[0][$i])]]) and strlen($number[0][$i])-1 >= 0) {
$output = $word[$i]." ".$highestwordarray[$i][$number[0][$i][3 - strlen($number[0][$i])]]." ".$output;
}
}

$key = 'gr';
if(isset($number[1][1]))
if($number[1][1] == 1) {
$word[$key] .= " ".$digitstoword[1][$number[1][1]][$number[1][0]];
}
else {
$word[$key] .= " ".$digitstoword[1][$number[1][1]];
}

if(isset($number[1][0]) and (!isset($number[1][1]) or $number[1][1] != '1')) {
$word[$key] .= " ".$digitstoword[0][$number[1][0]];
}

return($output." zł. i ".$word['gr']." gr.");
}


echo '123 456 789 123,45 = '.numberToWord(123456789123.45); // 123 456 789 123,45 = sto dwadzieścia trzy mld. czterysta pięćdziesiąt sześć mil. siedemset osiemdziesiąt dziewięć tys. sto dwadzieścia trzy zł. i czterdzieści pięć gr.
Michał Wachowski edytował(a) ten post dnia 31.01.11 o godzinie 20:39


Miales racje działa ! Jak bedzie chwila czasu to pozmieniam ta funkcje zeby zamiast tys. -> było tesiecy odmnieniane poprawnie :)
31.01.2011, 21:00
Michał

Michał Wachowski Programista,
freelancer na
zakręcie i
bazodanowiec z
boże...

Temat: Kwota słownie

Pozmieniaj sobie wartości w (...) Zobacz więcej
31.01.2011, 21:12
Jakub

Jakub L. Programista

Temat: Kwota słownie

Dominik Marczuk:
Jakub L.:
Przebicie się przez coś takiego na sucho to lekka masakra.

ctrl-h lub inny skrót służący do wywołania Search&Replace. Lecisz po nazwach zmiennych, które są na początku skryptu i zamieniasz na coś ludzko brzmiącego. I nagle czyta się łatwiej :).

Ale nie na forum.
A jak mam to wrzucać w edytor, to tęrobotę może wykonać autor, on zrobiłby to raz (i przy okazji zrozumiał kod), zamiast każdego z ambicjami do rozwiązania problemu.
Nie należy utrudniać pomocy.
31.01.2011, 22:02
Dominik

Dominik Marczuk Programista
JavaScript i PHP

Temat: Kwota słownie

Jakub L.:
Ale nie na forum.
A jak mam to wrzucać w edytor, to tęrobotę może wykonać autor, on zrobiłby to raz (i przy okazji zrozumiał kod), zamiast każdego z ambicjami do rozwiązania problemu.
Nie należy utrudniać pomocy.

Touché. Trafna uwaga.
1.02.2011, 00:12
Andrzej

Andrzej Kidaj www.alib.ad3.eu

Temat: Kwota słownie

Jakub L.:
Dominik Marczuk:
Jakub L.:
Przebicie się przez coś takiego na sucho to lekka masakra.

ctrl-h lub inny skrót służący do wywołania Search&Replace. Lecisz po nazwach zmiennych, które są na początku skryptu i zamieniasz na coś ludzko brzmiącego. I nagle czyta się łatwiej :).

Ale nie na forum.
A jak mam to wrzucać w edytor, to tęrobotę może wykonać autor, on zrobiłby to raz (i przy okazji zrozumiał kod), zamiast każdego z ambicjami do rozwiązania problemu.
Nie należy utrudniać pomocy.

Jeśli to jakaś aluzja do mnie, to odpowiadam, że pisałem to dla siebie a nie dla kogoś, zwłaszcza, że skoro ja znalazłem kiedyś dobrze opisany tutek, to każdy może go znaleźć.

PS.
Błąd faktycznie tkwił w funkcji GetNum, która poza formatowaniem liczby dodaje spacje pomiędzy wielokrotnościami tysięcy. Wystarczy użyć sprintf, żeby zwracał format 1234.56 (obowiązkowe są dwa miejsca po przecinku) i powinno być git.
1.02.2011, 09:12
Dominik

Dominik Marczuk Programista
JavaScript i PHP

Temat: Kwota słownie

Andrzej K.:
Jeśli to jakaś aluzja do mnie, to odpowiadam, że pisałem to dla siebie a nie dla kogoś, zwłaszcza, że skoro ja znalazłem kiedyś dobrze opisany tutek, to każdy może go znaleźć.

Nieee :). Wypowiedź Jakuba, do której nawiązywałem, była sprzed Twojego postu z kodem. Ale fakt, że na forum ogólnie się słabo czyta. Może napiszemy wniosek do GL o dodanie podświetlania składni i numerowania linii? :D
1.02.2011, 17:53



Przeglądaj dyskusje w tej grupie

Setki wypowiedzi

Zobacz o czym się teraz dyskutuje

Pytania i odpowiedzi

Znajdź odpowiedź na swoje pytanie

Wyślij zaproszenie do