<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>oskarj.wordpress.com blog</title>
	<atom:link href="http://oskarj.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oskarj.wordpress.com</link>
	<description>Programming, computing, PJIIT Assignments</description>
	<lastBuildDate>Sun, 27 Mar 2011 22:08:09 +0000</lastBuildDate>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='oskarj.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>oskarj.wordpress.com blog</title>
		<link>http://oskarj.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://oskarj.wordpress.com/osd.xml" title="oskarj.wordpress.com blog" />
	<atom:link rel='hub' href='http://oskarj.wordpress.com/?pushpress=hub'/>
		<item>
		<title>W jaki sposób dodać podświetlanie kodu w wordpress ?</title>
		<link>http://oskarj.wordpress.com/2011/03/27/w-jaki-sposob-dodac-podswietlanie-kodu-w-wordpress/</link>
		<comments>http://oskarj.wordpress.com/2011/03/27/w-jaki-sposob-dodac-podswietlanie-kodu-w-wordpress/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 17:23:01 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
		
		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=71</guid>
		<description><![CDATA[Wielu z użytkowników wordpress.com zastanawiało się, w jaki sposób dodawać i prezentować swoje kawałki kodu programistycznego. Odpowiedź znajduje się w dziale pomocy, w artykule pod poniższym adresem. http://en.support.wordpress.com/code/posting-source-code/ Wyjaśnia on, iż wystarczy w edytorze wizualnym dodać następujące tagi pomiędzy nasz kod: &#160; &#160; &#160; &#160; Atrybut &#8222;css&#8221; możemy podmienić na użyty przez nas język, obsługiwane [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=71&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wielu z użytkowników wordpress.com zastanawiało się, w jaki sposób dodawać i prezentować swoje kawałki kodu programistycznego. Odpowiedź znajduje się w dziale pomocy, w artykule pod poniższym adresem.</p>
<p><a title="Oryginały artukuł w języku angielskim" href="http://en.support.wordpress.com/code/posting-source-code/" target="_blank">http://en.support.wordpress.com/code/posting-source-code/</a></p>
<p>Wyjaśnia on, iż wystarczy w edytorze wizualnym dodać następujące tagi pomiędzy nasz kod:</p>
<p><a href="http://oskarj.files.wordpress.com/2011/03/untitled.jpg"><img class="alignleft size-full wp-image-74" title="kod" src="http://oskarj.files.wordpress.com/2011/03/untitled.jpg?w=483&#038;h=99" alt="" width="483" height="99" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Atrybut &#8222;css&#8221; możemy podmienić na użyty przez nas język,</p>
<p>obsługiwane są następujące języki:</p>
<ul>
<li><em>actionscript3</em></li>
<li><em>bash</em></li>
<li><em>coldfusion</em></li>
<li><em>cpp</em></li>
<li><em>csharp</em></li>
<li><em>css</em></li>
<li><em>delphi</em></li>
<li><em>erlang</em></li>
<li><em>fsharp</em></li>
<li><em>diff</em></li>
<li><em>groovy</em></li>
<li><em>javascript</em></li>
<li><em>java</em></li>
<li><em>javafx</em></li>
<li><em>matlab (keywords only)</em></li>
<li><em>objc</em></li>
<li><em>perl</em></li>
<li><em>php</em></li>
<li><em>text</em></li>
<li><em>powershell</em></li>
<li><em>python</em></li>
<li><em>r</em></li>
<li><em>ruby</em></li>
<li><em>scala</em></li>
<li><em>sql</em></li>
<li><em>vb</em></li>
<li><em>xml</em></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=71&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2011/03/27/w-jaki-sposob-dodac-podswietlanie-kodu-w-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>

		<media:content url="http://oskarj.files.wordpress.com/2011/03/untitled.jpg" medium="image">
			<media:title type="html">kod</media:title>
		</media:content>
	</item>
		<item>
		<title>Program w C++ do symulacji spłat kredytu, harmonogram spłat kredytu</title>
		<link>http://oskarj.wordpress.com/2011/03/27/program-w-c-do-symulacji-splat-kredytu-harmonogram-splat-kredytu/</link>
		<comments>http://oskarj.wordpress.com/2011/03/27/program-w-c-do-symulacji-splat-kredytu-harmonogram-splat-kredytu/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 16:29:45 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[c plus plus]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[c++ harmonogram spłat kredytu dev-cpp symulacja odsetek spłata informatyka]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=64</guid>
		<description><![CDATA[Jako że zadano mi napisanie takie programiku jako cześć interview, postanowiłem podzielić się swoją twórczością. Raty kredytu dzielą się na dwie kategorie, raty malejące i raty stałe. Program kompiluje się bez problemu w Dev-CPP, natomiast aby uzyskać polskie znaki po uruchomieniu, korzystamy z komendy &#8222;chcp 1250&#8243; #include &#60;iostream&#62; #include &#60;string&#62; #include &#60;iomanip&#62; #include &#60;math.h&#62; using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=64&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Jako że zadano mi napisanie takie programiku jako cześć interview, postanowiłem podzielić się swoją twórczością.</p>
<p>Raty kredytu dzielą się na dwie kategorie, raty malejące i raty stałe.</p>
<p>Program kompiluje się bez problemu w Dev-CPP, natomiast aby uzyskać polskie znaki po uruchomieniu, korzystamy z komendy &#8222;chcp 1250&#8243;</p>
<pre class="brush: cpp;">

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;iomanip&gt;
#include &lt;math.h&gt;

using namespace std;

char KWOTA_KREDYTU[18], ILOSC_RAT[3], STOPA_PROCENTOWA[22], TYP_SPLATY[2];
int I_KWOTA_KREDYTU, I_ILOSC_RAT, I_STOPA_PROCENTOWA, I_TYP_SPLATY;

/**
* DODAWANIE
*/
double add(double n1, double n2){
return n1 + n2;
}
/**
* ODEJMOWANIE
*/
double sub(double n1, double n2){
return n1 - n2;
}
/**
* MNOŻENIE
*/
double mul(double n1, double n2){
return n1 * n2;
}
/**
* DZIELENIE
*/
double div(double n1, double n2){
if(n2 == 0) cout &lt;&lt; &quot;Ostrzeżenie: dzielenie przez zero. &quot; &lt;&lt; endl;
return n1 / n2;
}
double calc(double(*f)(double,double), double n1, double n2, char op){
cout &lt;&lt; n1 &lt;&lt; &quot; &quot; &lt;&lt; op &lt;&lt; &quot; &quot; &lt;&lt; n2 &lt;&lt; &quot; = &quot; &lt;&lt; f(n1,n2);
}

void __s_kredyt(){
int a = 0;
char* tab_input = new char[2];

char temp;
do{
temp = cin.get();
if(!isprint(temp)) temp = '';
*(tab_input + a++) = temp;
*(tab_input + a) = '';
char* tab_input_temp = new char[a + 1];
strcpy(tab_input_temp,tab_input);
delete [] tab_input;
tab_input = new char[a + 2];
strcpy(tab_input,tab_input_temp);
delete [] tab_input_temp;
}while(temp != '');

cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; tab_input
&lt;&lt; &quot; , czy o taką kwotę Ci chodziło (T/N)?\n&quot;;
}

char c;

void __ns_kredyt(){
cin &gt;&gt; I_KWOTA_KREDYTU;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; I_KWOTA_KREDYTU
&lt;&lt; &quot; , czy o taką kwotę Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
c = toupper(c);
while (c != 'T'){
cout &lt;&lt; &quot;\nWprowadź ponownie kwotę:\n\n&quot;;
cin &gt;&gt; I_KWOTA_KREDYTU;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; I_KWOTA_KREDYTU
&lt;&lt; &quot; , czy o taką kwotę Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
}
}

void __ns_raty(){
cin &gt;&gt; I_ILOSC_RAT;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; I_ILOSC_RAT
&lt;&lt; &quot; , czy o taką liczbę rat Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
c = toupper(c);
while (c != 'T'){
cout &lt;&lt; &quot;\nWprowadź ponownie liczbę rat:\n\n&quot;;
cin &gt;&gt; I_KWOTA_KREDYTU;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; I_KWOTA_KREDYTU
&lt;&lt; &quot; , czy o taką liczbę rat Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
}
}

void __ns_stopa(){
cin &gt;&gt; I_STOPA_PROCENTOWA;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; I_STOPA_PROCENTOWA &lt;&lt; &quot;% &quot;
&lt;&lt; &quot; , czy o taką stopę Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
c = toupper(c);
while (c != 'T'){
cout &lt;&lt; &quot;\nWprowadź ponownie stopę procentową:\n\n&quot;;
cin &gt;&gt; I_STOPA_PROCENTOWA;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; I_STOPA_PROCENTOWA &lt;&lt; &quot;% &quot;
&lt;&lt; &quot; , czy o taką liczbę procentową Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
}
}

void __ns_typ(){
string SI_TYP_SPLATY;
cin &gt;&gt; SI_TYP_SPLATY;
I_TYP_SPLATY = -1;
transform(SI_TYP_SPLATY.begin(), SI_TYP_SPLATY.end(),
SI_TYP_SPLATY.begin(), ::toupper);
if ( SI_TYP_SPLATY.compare(&quot;RS&quot;) == 0 ) I_TYP_SPLATY = 1;
if ( SI_TYP_SPLATY.compare(&quot;RM&quot;) == 0 ) I_TYP_SPLATY = 0;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; SI_TYP_SPLATY
&lt;&lt; &quot; , czy na pewno nie chcesz wybrać innego sposobu spłaty (T/N)?\n\n&quot;;
cin &gt;&gt; c;
c = toupper(c);
while (c != 'T'){
cout &lt;&lt; &quot;\nWprowadź ponownie sposób spłaty kredytu:\n\n&quot;;
cin &gt;&gt; SI_TYP_SPLATY;
I_TYP_SPLATY = -1;
transform(SI_TYP_SPLATY.begin(), SI_TYP_SPLATY.end(),
SI_TYP_SPLATY.begin(), ::toupper);
if ( SI_TYP_SPLATY.compare(&quot;RS&quot;) == 0 ) I_TYP_SPLATY = 1;
if ( SI_TYP_SPLATY.compare(&quot;RM&quot;) == 0 ) I_TYP_SPLATY = 0;
cout &lt;&lt; &quot;\nWPROWADZONO: &quot; &lt;&lt; SI_TYP_SPLATY
&lt;&lt; &quot; , czy o taki sposób Ci chodziło (T/N)?\n\n&quot;;
cin &gt;&gt; c;
}
}

void ___print_header(){
// print table header
cout &lt;&lt; setw(10) &lt;&lt; &quot;Nr raty&quot; &lt;&lt; setw(20)
&lt;&lt; &quot;Wysokość spłaty&quot; &lt;&lt; setw(15)
&lt;&lt; &quot;Odsetki&quot;
&lt;&lt; setw(20) &lt;&lt; &quot;Część kapitałowa&quot; &lt;&lt; setw(20)
&lt;&lt; &quot;Kapitał do spłaty&quot; &lt;&lt; endl &lt;&lt; endl;
}

void ___print_data(){

}

char* splaty, odsetki, raty, saldo;

double liczrate(double kredyt, double oprocentowanie , int liczba_rat){
double q1 = oprocentowanie / 12;
double q2 = 1;

for (int i = 0 ; i &lt; liczba_rat ; i++){
q2 = q2 * (1 + q1);
}
return kredyt * q2 * q1 /(q2 - 1);
}

/**
*
*/
void calculate(int a /*KWOTA KREDYTU*/, int b /*RATY W MIESIACACH*/, int c /*STOPA PROCENTOWA*/){
int nr_raty = 0;
double s = c * 0.01;
double saldo = a;

double ll = liczrate(a, s, b);
double kapital = a;

cout.precision(2);

for(int i = 0 ; i &lt; b ; i++){
double odsetki = kapital * s / 12;
double czesc = ll - odsetki;
kapital = kapital - ll + odsetki;
//cout &lt;&lt; ++nr_raty &lt;&lt; &quot; &quot; &lt;&lt; d1 &lt;&lt; &quot; &quot; &lt;&lt; d3 &lt;&lt; &quot; &quot; &lt;&lt; d2 &lt;&lt; &quot; &quot; &lt;&lt; saldo &lt;&lt; endl;
cout &lt;&lt; setw(10) &lt;&lt; fixed &lt;&lt; ++nr_raty ; cout &lt;&lt; setw(20) &lt;&lt; fixed &lt;&lt; ll ; cout &lt;&lt; setw(15) &lt;&lt; fixed &lt;&lt; odsetki ;
cout &lt;&lt; setw(20) &lt;&lt; fixed &lt;&lt; czesc ; cout &lt;&lt; setw(20) &lt;&lt; fixed &lt;&lt; kapital &lt;&lt; endl;
}
}

/**
*
*/
void calculate_decreasing(int a /*KWOTA KREDYTU*/, int b /*RATY W MIESIACACH*/, int c /*STOPA PROCENTOWA*/){
int nr_raty = 0;

double s = c * 0.01;
double saldo = a;

cout.precision(2);

for(int i = 0 ; i &lt; b ; i++){
//miesieczna spłata
double d1 = (( ( (saldo * s) * ( b / 12 ) ) + a) / b);
//rata kapitalowa
double d2 = ( a / b);
//odestki
double d3 = ( d1 - d2 );
//saldo
saldo -= d2;

//cout &lt;&lt; ++nr_raty &lt;&lt; &quot; &quot; &lt;&lt; d1 &lt;&lt; &quot; &quot; &lt;&lt; d3 &lt;&lt; &quot; &quot; &lt;&lt; d2 &lt;&lt; &quot; &quot; &lt;&lt; saldo &lt;&lt; endl;
cout &lt;&lt; setw(10) &lt;&lt; fixed &lt;&lt; ++nr_raty ; cout &lt;&lt; setw(20) &lt;&lt; fixed &lt;&lt; d1 ; cout &lt;&lt; setw(15) &lt;&lt; fixed &lt;&lt; d3 ;
cout &lt;&lt; setw(20) &lt;&lt; fixed &lt;&lt; d2 ; cout &lt;&lt; setw(20) &lt;&lt; fixed &lt;&lt; saldo &lt;&lt; endl;
}
}

/******************************************************************************/
int main(){

cout &lt;&lt; &quot;Kwota kredytu\n&quot;;
cout &lt;&lt; &quot; * Środki pieniężne oddane do dyspozycji Kredytobiorcy przez &quot; &lt;&lt;
&quot;bank na warunkach wyszczególnionych w umowie kredytowej.\n&quot;;
cout &lt;&lt; &quot;Proszę podaj kwotę kredytu, o jaką się ubiegasz [200000]:\n\n&quot;;
__ns_kredyt();

cout &lt;&lt; &quot;\nIlość rat miesięcznych\nNa ile rat rozłożyć kredyt:\n&quot;;
cout &lt;&lt; &quot; * Okres na jaki została zawarta umowa kredytowa pomiędzy Kredytobiorcą a bankiem\n&quot;;
cout &lt;&lt; &quot;Proszę podaj ilość rat w miesiącach [12]:\n\n&quot;;
__ns_raty();

cout &lt;&lt; &quot;\nStopa procentowa:\n\nIle wynosi stopa procentowa?:\n&quot;;
cout &lt;&lt; &quot; * Oprocentowanie podawane przez bank, jest to stopa odsetek od&quot; &lt;&lt;
&quot; kredytu przy spłacie jednorazowej na koniec okresu rocznego.\n&quot;;
cout &lt;&lt; &quot;Proszę podaj stopę procentową [20]%:\n\n&quot;;
__ns_stopa();

cout &lt;&lt; &quot;\nTyp spłaty (rata stała/rata malejąca):\n\nW jaki sposób będzie spłacany kredyt?:\n\n&quot;;
cout &lt;&lt; &quot; * Każda kolejna rata kredytu jest mniejsza, obciążenie na początku spłaty &quot; &lt;&lt;
&quot;kredytu jest najwyższe. Odsetki naliczane są od równomiernie spłacanego kapitału&quot; &lt;&lt;
&quot; dlatego w miarę upływu czasu są coraz mniejsze\n&quot;;
cout &lt;&lt; &quot;Proszę podaj typ spłaty [RS/RM]:\n\n&quot;;
__ns_typ();

cout &lt;&lt; &quot;Harmonogram spłaty: &quot; &lt;&lt; endl &lt;&lt; endl;
___print_header();

if (I_TYP_SPLATY == 1) calculate(I_KWOTA_KREDYTU, I_ILOSC_RAT, I_STOPA_PROCENTOWA); else
if (I_TYP_SPLATY == 0) calculate_decreasing(I_KWOTA_KREDYTU, I_ILOSC_RAT, I_STOPA_PROCENTOWA); else
cout &lt;&lt; &quot;błąd...&quot;;

___print_data();

system(&quot;pause&quot;);

}
</pre>
<p>&nbsp;</p>
<p>Program pyta użytkownika o parametry kredytu, następnie sam tworzy (rysuje) tabelkę ze scenariuszem spłat.</p>
<p>W programie znajdują się niewykorzystane zmienne i inne dziwolągi, także zostawiam tobie &#8211; czytelniku &#8211; kwestię udoskonaleń.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=64&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2011/03/27/program-w-c-do-symulacji-splat-kredytu-harmonogram-splat-kredytu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>
	</item>
		<item>
		<title>C# webaplikacja ASP.NET, Przesyłanie plików na serwer – przykład i tutorial</title>
		<link>http://oskarj.wordpress.com/2010/06/12/c-webaplikacja-asp-net-przesylanie-plikow-na-serwer-%e2%80%93-przyklad-i-tutorial/</link>
		<comments>http://oskarj.wordpress.com/2010/06/12/c-webaplikacja-asp-net-przesylanie-plikow-na-serwer-%e2%80%93-przyklad-i-tutorial/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 19:58:33 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[Kod]]></category>
		<category><![CDATA[c# asp net c sharp code upload files to the server microsoft visual studio 2005 2008 form put files send files to server]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=58</guid>
		<description><![CDATA[1. W projekcie tworzysz nowy folder, przykładowo „resources”, tam będą trafiać pliki przesyłane przez aplikację kliencką. 2. Natomiast na stronie aspx umieszczasz następujący kod (opakowany w &#60;form&#62;). Jest to bardzo ważne, aby kod znajdował się w formie z akcją &#8222;post&#8221; oraz ustawionym atrybutem enctype &#60;form id=&#8221;adminForm&#8221; runat=&#8221;server&#8221; method=&#8221;post&#8221; name=&#8221;adminForm&#8221; enctype=&#8221;multipart/form-data&#8221; &#62; &#60;input type=file id=File1 name=File1 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=58&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>1. W projekcie tworzysz nowy folder, przykładowo „resources”, tam będą trafiać pliki przesyłane przez aplikację kliencką.</p>
<p>2. Natomiast na stronie aspx umieszczasz następujący kod (opakowany w &lt;form&gt;). Jest to bardzo ważne, aby kod znajdował się w formie z akcją &#8222;post&#8221; oraz ustawionym atrybutem enctype</p>
<p>&lt;<span style="color:#003366;">form </span>id=&#8221;adminForm&#8221; runat=&#8221;server&#8221; <span style="color:#ff0000;">method</span>=&#8221;post&#8221; name=&#8221;adminForm&#8221; <span style="color:#800080;">enctype</span>=&#8221;multipart/form-data&#8221; &gt;<br />
&lt;<span style="color:#003300;">input</span><strong><span style="color:#003300;"> </span></strong>type=file id=File1 name=File1 runat=&#8221;server&#8221; /&gt;&lt;font&gt; (Maksymalny rozmiar pliku: 4 MB)&lt;/font&gt;<br />
&lt;br&gt;<br />
&lt;<span style="color:#003300;">asp:button</span> type=&#8221;submit&#8221; id=&#8221;Submit1&#8243; Text=&#8221;Wyślij plik&#8221; runat=&#8221;server&#8221; ToolTip=&#8221;Prześlij wskazany plik jako dodatek do szczegółów wydarzenia&#8221; onclick=&#8221;Submit1_ServerClick&#8221; /&gt;</p>
<p>3. Następnie do przycisku Submit1 dołączasz następującą akcję w odpowiadającym pliku .cs</p>
<p>protected void <span style="color:#000080;">Submit1_ServerClick</span>(object sender, System.EventArgs e)<br />
{<br />
TextBox id_tb = (FormView1.FindControl(&#8222;idTextBox&#8221;) as TextBox);<br />
String id_due_path = id_tb.Text;<br />
System.IO.Directory.CreateDirectory(Server.MapPath(&#8222;resources&#8221;) + &#8222;\\&#8221; + id_due_path + &#8222;\\&#8221;);<br />
if ((File1.PostedFile != null) &amp;&amp; (File1.PostedFile.ContentLength &gt; 0))<br />
{<br />
string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);<br />
string SaveLocation = Server.MapPath(&#8222;resources&#8221;) + &#8222;\\&#8221; + id_due_path + &#8222;\\&#8221; + fn;<br />
try<br />
{<br />
File1.PostedFile.SaveAs(SaveLocation);<br />
Console.WriteLine(&#8222;The file has been uploaded.&#8221;);<br />
Response.Write(&#8222;The file has been uploaded.&#8221;);<br />
}<br />
catch (Exception ex)<br />
{<br />
Response.Write(&#8222;Error: &#8221; + ex.Message);<br />
Console.WriteLine(&#8222;Error: &#8221; + ex.Message);<br />
//Note: Exception.Message returns a detailed message that describes the current exception.<br />
//For security reasons, we do not recommend that you return Exception.Message to end users in<br />
//production environments. It would be better to put a generic error message.<br />
}<br />
}<br />
else<br />
{<br />
Response.Write(&#8222;Please select a file to upload.&#8221;);<br />
Console.WriteLine(&#8222;Please select a file to upload.&#8221;);<br />
}<br />
}</p>
<p>4. <em>Violla</em>, można przesyłać pliki na serwer (domyślny limit to 4MB)</p>
<p>Więcej szczegółów tutaj: (<a title="Świetny artykuł Tech-Microsoftu, z paroma błędami, ale wart przeczytania" href="http://support.microsoft.com/kb/323246">świetny artykuł</a>)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=58&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2010/06/12/c-webaplikacja-asp-net-przesylanie-plikow-na-serwer-%e2%80%93-przyklad-i-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>
	</item>
		<item>
		<title>Nachalność i hamstwo telelofonistki sieci Play GSM</title>
		<link>http://oskarj.wordpress.com/2010/03/30/nachalnosc-i-hamstwo-telelofonistki-sieci-play-gsm/</link>
		<comments>http://oskarj.wordpress.com/2010/03/30/nachalnosc-i-hamstwo-telelofonistki-sieci-play-gsm/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 12:44:05 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[natręctwo marketingowe]]></category>
		<category><![CDATA[play]]></category>
		<category><![CDATA[play gsm]]></category>
		<category><![CDATA[promocje]]></category>
		<category><![CDATA[telefonia komórkowa]]></category>
		<category><![CDATA[telefonowanie]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=55</guid>
		<description><![CDATA[Zużyłem 90% transferu w swoim Play Online (dostęp do internetu za pomocą bezprzewodowego modemu gsm, czyli internet w dowolnym miejscu w Polsce), następnego dnia zadzwoniła do mnie z numeru zastrzeżonego jakaś kobieta, pytając się mnie o moją godność, następnie przeszła od razu do rzeczy. Na nic moje nieustanne odmowy po wyjściu z auli na pytanie [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=55&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Zużyłem 90% transferu w swoim Play Online (dostęp do internetu za pomocą bezprzewodowego modemu gsm, czyli internet w dowolnym miejscu w Polsce), następnego dnia zadzwoniła do mnie z numeru <strong>zastrzeżonego </strong>jakaś kobieta, pytając się mnie o moją godność, następnie przeszła od razu do rzeczy. Na nic moje nieustanne odmowy po wyjściu z auli na pytanie o przedłużenie umowy, ta kobieta koniecznie chciała sprzedać produkt, podałem moje dane adresowe w celu weryfikacji (a pytałem się tylko kiedy kończy się abonament), następnie uparczywie wmawiała mi, iż przyda mi się przedłużenie umowy i większy transfer. Ale czy pytania w stylu:</p>
<p>- Na pewno Pan nie chce? Przecież kończy się Panu abonament. Mamy promocję.. [taką i owaką].. Dlaczego nie chce Pan internetu Play ? Co Pan będzie robił bez niego ? Zużył Pan już..</p>
<p>są na miejscu ?</p>
<p>I co najlepsze, w punkcie sprzedaży Play rzekomo nie można załatwić tego samego co oferuje &#8222;telefonistka&#8221;..</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=55&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2010/03/30/nachalnosc-i-hamstwo-telelofonistki-sieci-play-gsm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>
	</item>
		<item>
		<title>Język Ruby – lekkie i krótkie wprowadzenie :)</title>
		<link>http://oskarj.wordpress.com/2009/03/24/jezyk-ruby-%e2%80%93-lekkie-i-krotkie-wprowadzenie/</link>
		<comments>http://oskarj.wordpress.com/2009/03/24/jezyk-ruby-%e2%80%93-lekkie-i-krotkie-wprowadzenie/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 01:00:00 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[1]]></category>
		<category><![CDATA[Recenzja]]></category>
		<category><![CDATA[przemyślenia]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby why the lucky stiff joel spolsky]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=42</guid>
		<description><![CDATA[Inspiracja rozdziałem 29-tym, Joel Spolsky, „Sztuka pisania oprogramowania” W zamieszłych czasach, których wielu z nas zapewne nie zaznała (aczkolwiek nie tak bardzo odległych, nie mówię tutaj o epoce gdy składano komputer Odra z części przywiezionych wagonem, około 10-15 lat później), istniał taki komputer Apple II (8-bitowy komputer domowy z lat 70-tych), który to dostarczany był [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=42&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#666699;"><em>Inspiracja rozdziałem 29-tym, Joel Spolsky, „Sztuka pisania oprogramowania”</em></span></p>
<p>W zamieszłych czasach, których wielu z nas zapewne nie zaznała (aczkolwiek nie tak bardzo odległych, nie mówię tutaj o epoce gdy składano komputer Odra z części przywiezionych wagonem, około 10-15 lat później), istniał taki komputer Apple II (8-bitowy komputer domowy z lat 70-tych), który to dostarczany był z podręcznikiem napisanym w iście artystycznym stylu.</p>
<p>Nie chciałbym się rozpisywać o historii informatyzacji, w tym celu można sprawdzić na Wiki takie hasła, jak: Odra, Apple, Commodore (na którym zresztą znajomy rodzinny podobno pisał pracę dyplomową), a pragnąłem pokazać, w jaki sposób zmienił się styl pisania wszelkiej maści książek użytkownika, podręczników i tutoriali.</p>
<p>Chwytano się iście Monty-Pythowskiego humoru, historyjek komiksowych, anegdot, przede wszystkim aby zaciekawić użytkownika i łagodnie wprowadzić go w temat z danej dziedziny, który mógł być następnie poszerzony już w różnej innej technicznej literaturze.</p>
<p>Dzisiaj? Niektórzy powiedzieliby, że dominują książki o możliwie grubym grzbiecie i koncentracji faktów w jednym. Niech spojrzę na swoją półkę: „Java 2 Podstawy”, „Thinking In Java”, „SCJP..” (ta jeszcze zachowała odpowiednią dozę humoru), „EJB 3.0”, „PHP Programming”.. każdą z tych pozycji można z sukcesem nastawić bark w przychodni (tak jak to kiedyś ujrzałem w filmie, ale tam użyto Tołstoja „Wojna i pokój”).</p>
<p>Ale w temacie wyraźnie jest napisane że miało być o Rubym.</p>
<p>Ruby nie koniecznie jest językiem komputerowym, jest po prostu językiem. Językiem programowania zrozumiałym również dla szarych ludzi (aczkolwiek nie od razu). Spójrzcie na składnię:</p>
<p><span style="color:#ff0000;">5.times { print „Odelay!” }</span><br />
co można przeczytać jako:<br />
Five times print “Odelay”</p>
<p><span style="color:#ff0000;">exit unless „restaurants”.include? „aura”</span><br />
czyli:<br />
Exit unless the word restaurant includes the word aura</p>
<p><span style="color:#ff0000;">[toast, cheese, wine].each { |food| eat food }</span><br />
to chyba trudniejsze:<br />
With toast, cheese, and wine, take each type of food and eat that food.</p>
<p><img class="aligncenter size-medium wp-image-43" title="thefoxes-3" src="http://oskarj.files.wordpress.com/2009/03/thefoxes-3.png?w=300&#038;h=87" alt="thefoxes-3" width="300" height="87" /></p>
<p>Zaciekawiłem?<br />
Do sprawdzenia:<br />
<a title="http://whytheluckystiff.net/" href="http://whytheluckystiff.net/" target="_blank">http://whytheluckystiff.net/</a></p>
<p>komiksowy humor w służbie edukacji</p>
<p><a title="http://poignantguide.net/ruby/" href="http://poignantguide.net/ruby/" target="_blank">http://poignantguide.net/ruby/</a></p>
<p>w jaki sposób można w przyjemny sposób przedstawić język z 1995 roku stworzony przez Yukihiro Matsumoto, czyli RUBY</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=42&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2009/03/24/jezyk-ruby-%e2%80%93-lekkie-i-krotkie-wprowadzenie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>

		<media:content url="http://oskarj.files.wordpress.com/2009/03/thefoxes-3.png?w=300" medium="image">
			<media:title type="html">thefoxes-3</media:title>
		</media:content>
	</item>
		<item>
		<title>Niech żyją informatycy..</title>
		<link>http://oskarj.wordpress.com/2009/01/29/niech-zyja-informatycy/</link>
		<comments>http://oskarj.wordpress.com/2009/01/29/niech-zyja-informatycy/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 16:49:41 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=39</guid>
		<description><![CDATA[Nałogowcowi komputerowemu spadła na ulicy na głowe cegła. - Tetris &#8211; pomyslał nałogowiec komputerowy. - Nałogowiec &#8211; pomyslała cegła. - Level 2 &#8211; pomyslał Bóg. Impreza . Wódka leje się szerokopasmowym strumieniem. Dwóch adminów pije bruderszafta: - To co? Mówmy sobie po IP! Prawdziwy student informatyki ma więcej jedzenia na klawiaturze niż w lodówce. Przychodzi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=39&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nałogowcowi komputerowemu spadła na ulicy na głowe cegła.<br />
- Tetris &#8211; pomyslał nałogowiec komputerowy.<br />
- Nałogowiec &#8211; pomyslała cegła.<br />
- Level 2 &#8211; pomyslał Bóg.</p>
<p>Impreza . Wódka leje się szerokopasmowym strumieniem. Dwóch adminów<br />
pije bruderszafta:<br />
- To co? Mówmy sobie po IP!</p>
<p>Prawdziwy student informatyki ma więcej jedzenia na klawiaturze niż<br />
w lodówce.</p>
<p>Przychodzi Informatyk do lekarza:<br />
- Panie Doktorze wątroba mi nawala&#8230;<br />
- Dziwne, u mnie działa&#8230;</p>
<p>Komputerowiec podrywa dziewczynę:<br />
- Chcesz herbaty?<br />
- Nie.<br />
- Kawy?<br />
- Nie!<br />
- Hm, może wódki?<br />
- NIE!!!<br />
- Dziwne, standardowe sterowniki nie pasują&#8230;</p>
<p>Ludzie dzielą się na tych, którzy robią backupy i na tych, którzy<br />
będą robili backupy.</p>
<p>Napis na grobie informatyka: &#8222;kowalski.zip&#8221;</p>
<p>- Ostatnie stadium znudzenia w pracy?<br />
- Zaczynasz czytać spam.</p>
<p>Jaka jest różnica między informatykiem 1 i 5 roku?<br />
- informatyk 1 roku myśli, że 1 kB to 1000 B.<br />
- informatyk 5 roku myśli, że kilometr to 1024 metry.</p>
<p>Na pracowniczy bal maskowy przyszli:<br />
- sekretarka w masce kota,<br />
- księgowa w masce królika,<br />
- dyrektor w masce lwa,<br />
- informatyk w masce 255.255.255.0.</p>
<p>- Co to jest patch?<br />
Program usuwający drobne błędy w programie i dodający nowe.<br />
- Co to jest upgrade?<br />
Program usuwający poważniejsze błędy i dodający nowe, równie uciążliwe.<br />
- Co to jest nowa wersja programu?<br />
Jest to zmodyfikowany program zawierający błędy, których nie można<br />
było dodać przez patch lub upgrade.</p>
<p>- Dlaczego w Microsofcie nigdy nie napiszą wirusa?<br />
- Bo zajmowałby 3 dyskietki.</p>
<p>Honorowy programista wiesza się razem ze swoim programem&#8230;</p>
<p>Jak guru unixowy uprawia seks?<br />
- unzip; strip; touch; finger; mount; fsck; more; yes; umount;<br />
sleep;</p>
<p>Co jest najszybsze w 286?<br />
- Wiatraczek.</p>
<p>Przychodzi administrator rano do pracy, siada do komputera, aby<br />
zobaczyć co się działo w nocy i śpiewa:<br />
- Chcę oglądać twoje logi, logi, logi, logi.</p>
<p>Dzwoni klient do serwisu, odbiera obsługa:<br />
- Używam Windows&#8230;<br />
- Tak.<br />
- No i komputer nie działa poprawnie.<br />
- To już pan powiedział&#8230;</p>
<p>Wsiada informatyk do taksówki. Taksiarz pyta:<br />
- Dokąd jedziemy?<br />
- 192.168.4.1.</p>
<p>Oprogramowanie jest jak katedra.<br />
- Budujesz, budujesz, budujesz, budujesz, a potem&#8230; już tylko się<br />
modlisz!</p>
<p>Na egzaminie na uczelnie o profilu informatycznym pytaja się nowego<br />
kandydata jakie zna komendy jakiegoś języka programowania.<br />
- Góra, dół, lewo, prawo i fajer&#8230;</p>
<p>Siedzi kilku informatyków na imprezie i cały czas nawijają o<br />
komputerach. W końcu jeden mówi:<br />
- Słuchajcie, pogadajmy o czyms innym np. o dupach&#8230;<br />
Nastąpiła chwila ciszy i konsternacja&#8230; jeden się odzywa:<br />
- Moja karta graficzna jest do dupy&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=39&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2009/01/29/niech-zyja-informatycy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>
	</item>
		<item>
		<title>Parser SQL w C – Flex, Bison czyli YACC problem</title>
		<link>http://oskarj.wordpress.com/2009/01/29/parser-sql-w-c-%e2%80%93-flex-bison-czyli-yacc-problem/</link>
		<comments>http://oskarj.wordpress.com/2009/01/29/parser-sql-w-c-%e2%80%93-flex-bison-czyli-yacc-problem/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 13:30:45 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Kod]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[bison]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[yacc]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=35</guid>
		<description><![CDATA[Ktoś by pewnie spytał się po co generować własny parser plików zapytań SQL, skoro są one walidowane w każdym silniku bazodanowym. Jedne z możliwych odpowiedzi to: hobbistycznie, lub też dla celów akademickich, czyli aby pokazać zasadę działania uniksowych parserów. Bison (generator utworzony w ramach projektu GNU) zazwyczaj jest używany razem z programem flex (program podobny [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=35&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ktoś by pewnie spytał się po co generować własny parser plików zapytań SQL, skoro są one walidowane w każdym silniku bazodanowym. Jedne z możliwych odpowiedzi to: hobbistycznie, lub też dla celów akademickich, czyli aby pokazać zasadę działania uniksowych parserów.</p>
<p>Bison (generator utworzony w ramach projektu GNU) zazwyczaj jest używany razem z programem flex (program podobny do lex, też wolny). Te dwa narzędzia pozwolą również na napisanie pretty-printera, a w zasadzie nieograniczona ilość na kod C w instrukcji main() pozwala pisać całkiem przyzwoite programy.</p>
<p>Pliki z gramatyką, które będziemy tworzyć, są to pliki tekstowe składające się z trzech części oddzielonych od siebie podwójnym znakiem procentu (&#8222;%%&#8221;) w kolejności: deklaracje, reguły gramatyczne, kod w języku C. Plik z rozszerzeniem <strong>.y</strong> jest to program dla bisona, natomiast plik z rozszerzeniem <strong>.l</strong> jest to program flex&#8217;a.</p>
<p>Pisanie parserów w C++ jest dużo trudniejsze (z wykorzystaniem g++ a nawet flex++), tutaj można znaleźć przykładowy tutorial:<br />
<a title="http://tldp.org/HOWTO/Lex-YACC-HOWTO-5.html" href="http://tldp.org/HOWTO/Lex-YACC-HOWTO-5.html" target="_blank">http://tldp.org/HOWTO/Lex-YACC-HOWTO-5.html</a></p>
<p><strong><span style="text-decoration:underline;">sql.l:</span></strong></p>
<blockquote><p>%{<br />
#<span style="color:#000080;">include </span>&#8222;sql.tab.h&#8221; //&lt;&gt;<br />
#<span style="color:#000080;">include </span>&lt;stdlib.h&gt;<br />
#<span style="color:#000080;">include </span>&lt;string.h&gt;</p>
<p>/*prototypy funkcji*/<br />
<span style="color:#800000;">void lexError</span>(const char *);<br />
<span style="color:#800000;">static int getToken</span>(const char *);</p>
<p>%}</p>
<p>%option yylineno</p>
<p>single_line_comment        &#8222;//&#8221;.*|&#8221;///&#8221;.*<br />
white_space                [ \t\n\r]</p>
<p><strong><span style="color:#ff0000;">%%</span></strong></p>
<p>&#8222;select&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return SELECT;}<br />
&#8222;from&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return FROM;}<br />
&#8222;where&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return WHERE;}<br />
&#8222;order&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return ORDER;}<br />
&#8222;group&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return GROUP;}<br />
&#8222;by&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return BY;}<br />
&#8222;like&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return LIKE;}<br />
&#8222;as&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return AS;}<br />
&#8222;insert&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return INSERT;}<br />
&#8222;update&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return UPDATE;}<br />
&#8222;delete&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return DELETE;}<br />
&#8222;set&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return SET;}<br />
&#8222;into&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return INTO;}<br />
&#8222;values&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return VALUES;}<br />
&#8222;join&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return JOIN;}<br />
&#8222;on&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return ON;}</p>
<p>&#8222;primary&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return PRIMARY;}<br />
&#8222;foreign&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return FOREIGN;}<br />
&#8222;references&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return REFERENCES;}<br />
&#8222;key&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return KEY;}<br />
&#8222;grant&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return GRANT;}<br />
&#8222;create&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return CREATE;}<br />
&#8222;alter&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return ALTER;}<br />
&#8222;to&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return TO;}<br />
&#8222;with grant option&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return WITHGRANT;}</p>
<p>&#8222;table&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return TABLE;}<br />
&#8222;database&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return DATABASE;}</p>
<p>&#8222;&#8211;&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return SC;}</p>
<p>&#8222;(&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return START;}<br />
&#8222;)&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return END;}</p>
<p>=|==|=!|&lt;=|&gt;=|&lt;|&gt; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return ZNAK;}</p>
<p>&#8222;;&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return SR;}<br />
&#8222;*&#8221; {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return AST;}</p>
<p>[0-9]+ {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext));  return LICZBA;}<br />
[0-9A-Za-z"',]+ {yylval=(char*) malloc (strlen(yytext)); strncpy(yylval, yytext, strlen(yytext)); return TEXT;}</p>
<p>[:space:]+    ;<br />
[ \n|\t]+     ;<br />
&#8222;/*&#8221;(.|\n)*&#8221;*/&#8221;  ;</p>
<p><span style="color:#ff0000;"><strong>%%</strong></span></p>
<p>/*metoda zwraca opis bledu leksykalnego*/<br />
<span style="color:#800000;">void lexError</span>(const char *msg)<br />
{<br />
<span style="color:#008000;">fprintf(stderr,&#8221;LINE:%d:lexical error (%s) [TEXT: %s]\n&#8221;, yylineno, msg, yytext);</span><br />
}</p></blockquote>
<p><span style="text-decoration:underline;"><strong>sql.y:</strong></span></p>
<blockquote><p>%{<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &#8222;lex.yy.c&#8221;</p>
<p>typedef char* string;</p>
<p>int test = 1;<br />
char* beg;</p>
<p>int yyerror(char *s){<br />
printf(&#8222;Linia nr %d\nBlad %s\n&#8221;, yylineno, s);<br />
fprintf(yyout, &#8222;Linia nr %d\nBlad %s\n&#8221;, yylineno, s);<br />
test = 0;<br />
};</p>
<p>int yylex(void);</p>
<p>#define YYERROR_VERBOSE<br />
#define FALSE 0<br />
#define TRUE 1</p>
<p>/*Numer linii parsera.*/<br />
extern int yylineno;</p>
<p>/*Plik wejscia i wyjscia.*/<br />
extern FILE *yyin, *yyout;</p>
<p>struct Intern{<br />
string pl;<br />
string en;<br />
};</p>
<p>%}</p>
<p>%token SELECT<br />
%token FROM<br />
%token WHERE<br />
%token ORDER<br />
%token GROUP<br />
%token BY<br />
%token LIKE<br />
%token AS<br />
%token INSERT<br />
%token UPDATE<br />
%token DELETE<br />
%token SET<br />
%token INTO<br />
%token VALUES<br />
%token JOIN<br />
%token ON</p>
<p>%token PRIMARY<br />
%token FOREIGN<br />
%token KEY<br />
%token GRANT<br />
%token CREATE<br />
%token DROP<br />
%token ALTER<br />
%token REFERENCES<br />
%token TO<br />
%token WITHGRANT</p>
<p>%token DATABASE<br />
%token TABLE</p>
<p>%token START<br />
%token END<br />
%token SR<br />
%token AST<br />
%token ZNAK<br />
%token LICZBA<br />
%token TEXT</p>
<p>%token SC</p>
<p>/*poczatek programu*/</p>
<p>%%</p>
<p>/* SQL 1992 */</p>
<p>statement_sql92: statement_sql92 SELECT TEXT FROM TEXT SR {<br />
printf(&#8222;select %s from %s;\n&#8221;, $3, $5);<br />
fprintf(yyout, &#8222;select %s from %s;\n&#8221;, $3, $5);<br />
}<br />
| statement_sql92 select_ast_st<br />
| statement_sql92 select_where_st<br />
| statement_sql92 delete_st<br />
| statement_sql92 insert_st<br />
| statement_sql92 update_st<br />
| statement_sql92 statement_ddl<br />
| statement_sql92 grant_st<br />
| statement_sql92 other_statement {printf(&#8222;\n&#8221;);}<br />
| &#8216;\n&#8217;<br />
|<br />
;</p>
<p>select_ast_st: SELECT AST FROM TEXT<br />
{<br />
printf(&#8222;select * from %s;\n&#8221;, $4);<br />
fprintf(yyout, &#8222;select * from %s;\n&#8221;, $4);<br />
}<br />
| select_ast_st WHERE TEXT ZNAK TEXT<br />
| select_ast_st ORDER BY TEXT<br />
| select_ast_st SR<br />
;</p>
<p>select_where_st: SELECT TEXT FROM TEXT WHERE TEXT ZNAK TEXT {<br />
printf(&#8222;select %s from %s where %s %s %s&#8221;, $2, $4, $6, $7, $8);<br />
fprintf(yyout, &#8222;select %s from %s where %s %s %s&#8221;, $2, $4, $6, $7, $8);<br />
}<br />
| select_where_st ORDER BY TEXT {<br />
printf(&#8221; order by %s&#8221;, $4);<br />
fprintf(yyout, &#8221; order by %s&#8221;, $4);<br />
}<br />
| select_where_st SR {<br />
printf(&#8222;;\n&#8221;);<br />
fprintf(yyout, &#8222;;\n&#8221;);<br />
}<br />
;</p>
<p>delete_st: DELETE FROM TEXT SR {<br />
printf(&#8222;delete from %s;\n&#8221;, $3);<br />
fprintf(yyout, &#8222;delete from %s;\n&#8221;, $3);<br />
}<br />
| DELETE FROM TEXT WHERE TEXT ZNAK TEXT SR {<br />
printf(&#8222;delete from %s where %s %s %s;\n&#8221;, $3, $5, $6, $7);<br />
fprintf(yyout, &#8222;delete from %s where %s %s %s;\n&#8221;, $3, $5, $6, $7);<br />
}<br />
;</p>
<p>insert_st: INSERT INTO TEXT START TEXT END VALUES START TEXT END SR {<br />
printf(&#8222;insert into %s (%s) values (%s);\n&#8221;, $3, $5, $9);<br />
fprintf(yyout, &#8222;insert into %s (%s) values (%s);\n&#8221;, $3, $5, $9);<br />
}<br />
;</p>
<p>update_st: UPDATE TEXT SET TEXT ZNAK TEXT WHERE TEXT ZNAK TEXT SR {<br />
printf(&#8222;update %s set %s %s %s where %s %s %s;\n&#8221;, $2, $4, $5, $6, $8, $9, $10);<br />
fprintf(yyout, &#8222;update %s set %s %s %s where %s %s %s;\n&#8221;, $2, $4, $5, $6, $8, $9, $10);<br />
}<br />
;</p>
<p>/* DATABASE DESIGN LANGUAGE &#8211; DLL */</p>
<p>statement_ddl: drop_st<br />
| create_st<br />
| alter_st<br />
;</p>
<p>drop_st: DROP TABLE TEXT SR {<br />
printf(&#8222;drop table %s;\n&#8221;, $3);<br />
fprintf(yyout, &#8222;drop table %s;\n&#8221;, $3);<br />
}<br />
;</p>
<p>create_st: CREATE create_table<br />
| CREATE create_database<br />
;</p>
<p>create_table: TABLE TEXT START TEXT {<br />
printf(&#8222;create table %s(%s&#8221;, $2, $4);<br />
fprintf(yyout, &#8222;create table %s(%s&#8221;, $2, $4);<br />
}<br />
| create_table TEXT {<br />
printf(&#8221; %s&#8221;, $2);<br />
fprintf(yyout, &#8221; %s&#8221;, $2);<br />
}<br />
| create_table END SR {<br />
printf(&#8222;);\n&#8221;);<br />
fprintf(yyout, &#8222;);\n&#8221;);<br />
}<br />
;</p>
<p>create_database: DATABASE TEXT SR {<br />
printf(&#8222;create database %s;\n&#8221;, $2);<br />
fprintf(yyout, &#8222;create database %s;\n&#8221;, $2);<br />
}<br />
;</p>
<p>alter_st: ALTER TEXT START TEXT END SR {<br />
printf(&#8222;alter %s (%s);\n&#8221;, $2, $3);<br />
fprintf(yyout, &#8222;alter %s (%s);\n&#8221;, $2, $3);<br />
}<br />
;</p>
<p>/* STATEMENTS DATA CONTROL LANGUAGE */</p>
<p>grant_st: GRANT TEXT ON TEXT TO TEXT WITHGRANT SR {<br />
printf(&#8222;grant %s on %s to %s with grant option;\n&#8221;, $2, $4, $6);<br />
//fprintf(yyout, &#8221; on %s to %s with grant option;&#8221;, $3, $5);<br />
}<br />
;</p>
<p>/* OTHER STATEMENTS LIKE SINGLE LINE COMMENTS AND BLOCK COMMENTS */</p>
<p>other_statement: SC {<br />
printf(&#8222;&#8211; &#8222;);<br />
fprintf(yyout, &#8222;&#8211; &#8222;);<br />
}<br />
| other_statement TEXT {<br />
printf(&#8221; %s&#8221;, $2);<br />
fprintf(yyout, &#8221; %s&#8221;, $2);<br />
}<br />
;</p>
<p>%%</p>
<p>main(int argc, char *argv[]) {</p>
<p>int revokeL = TRUE;</p>
<p>struct Intern lang[] = { {&#8222;1) Wybierz standard jezyka zapytan\n&#8221;, &#8222;1) Choose SQL standard\n&#8221;},<br />
{&#8222;2) Wybierz jezyk\n&#8221;, &#8222;2) Choose language\n&#8221;},<br />
{&#8222;3) Waliduj skrypt SQL\n&#8221;, &#8222;3) Validate SQL file\n&#8221;},<br />
{&#8222;4) Formatuj skrypt SQL\n&#8221;, &#8222;4) Pretty-print SQL script\n&#8221;},<br />
{&#8222;5) Wyjscie\n&#8221;, &#8222;5) Exit from program\n&#8221; }<br />
};</p>
<p>FILE *fp = NULL;<br />
fpos_t dlugosc;<br />
char stringInput;<br />
if(argc != 3) {<br />
printf(&#8222;Uzycie: %s &lt;nazwa pliku wejscia&gt; &lt;nazwa pliku wyjscia&gt;\n&#8221;, argv[0]);<br />
do{<br />
printf(&#8222;Czy chcesz przejsc do trybu interaktywnego (menu programu) ? [T/N]&#8222;);<br />
stringInput = getchar();<br />
__fpurge(stdin);<br />
}while(stringInput != &#8216;T&#8217; &amp;&amp; stringInput != &#8216;N&#8217;);<br />
if(stringInput == &#8216;N&#8217;)<br />
return 1;<br />
}<br />
int choice = 0;</p>
<p>yyin = stdin;<br />
yyout = stdout;</p>
<p>/* Jezeli zostal zdefiniowany plik wejscia i/lub wyjscia */<br />
if (argc &gt;= 2)<br />
{<br />
/* Otworz plik do czytania */<br />
yyin = fopen(argv[1], &#8222;r&#8221;);</p>
<p>/* Jezeli nie udalo sie otworzyc pliku */<br />
if(yyin == NULL)<br />
{<br />
fprintf(stderr, &#8222;ERROR: Input file not exists.\n&#8221;);<br />
return 1;<br />
}</p>
<p>/* Jezeli zostal zdefiniowany plik wyjscia */<br />
if(argc &gt;= 3)<br />
{<br />
/* Otworz plik do zapisu */<br />
yyout = fopen(argv[2], &#8222;w&#8221;);<br />
}</p>
<p>/* Jezeli nie udalo sie otworzy pliku wyjscia */<br />
if(yyout == NULL)<br />
{<br />
fprintf(stderr, &#8222;ERROR: Output file not exists.\n&#8221;);</p>
<p>return 1;<br />
}<br />
}</p>
<p>while(choice != 4)<br />
{<br />
printf(&#8222;\nSQL miniStudio:\n&#8221;);<br />
if(revokeL) printf(lang[0].pl); else printf(lang[0].en);<br />
if(revokeL) printf(lang[1].pl); else printf(lang[1].en);<br />
if(revokeL) printf(lang[2].pl); else printf(lang[2].en);<br />
if(revokeL) printf(lang[3].pl); else printf(lang[3].en);<br />
if(revokeL) printf(lang[4].pl); else printf(lang[4].en);</p>
<p>scanf(&#8222;%d&#8221;,&amp;choice);</p>
<p>switch(choice)<br />
{<br />
case 1:<br />
{ // wybierz standard<br />
break; }</p>
<p>case 2:<br />
{ // wybierz jezyk<br />
if(revokeL){<br />
revokeL = FALSE;<br />
printf(&#8222;\nLanguage changed to ENGLISH!\n&#8221;);<br />
} else{<br />
revokeL = TRUE;<br />
printf(&#8222;\nZmieniono jezyk na POLSKI!\n&#8221;);<br />
}</p>
<p>break; }</p>
<p>case 3:<br />
{ // waliduj skrypt</p>
<p>yyparse();<br />
if(test){<br />
printf(&#8222;Test OK!\n&#8221;);<br />
fprintf(yyout, &#8222;Test OK!\n&#8221;);<br />
}</p>
<p>break; }</p>
<p>case 4:<br />
{ // formatuj<br />
break; }</p>
<p>case 5:<br />
{ // wyjscie<br />
exit(0);<br />
break; }</p>
<p>default:<br />
{ break; }<br />
}</p>
<p>}</p>
<p>}</p></blockquote>
<p><span style="text-decoration:underline;"><strong>dane wejściowe:</strong></span></p>
<blockquote><p>select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select<br />
fasdfagtergddfa49384934<br />
from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select * from tabelka;</p>
<p>select kolumna<br />
from tabela;</p>
<p>select dsfy87dsayfsadf7 from ffsadfadsfasdfasfs;<br />
select kjfds8ay7f8as8f    from ffsadfadsfasdfasfs;<br />
delete from pracownicy;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;</p>
<p>update tabelka set umowa = &#8216;OK&#8217; where umowa = NULL;</p>
<p>delete from pracownicy where imie = &#8216;andrzej&#8217;;</p>
<p>insert into tabelka(kol1,kol2) values(&#8216;JaN&#8217;,'Kowalski&#8217;);</p>
<p>select TYTUL from BOOK WHERE   autor = &#8216;Profesor&#8217;   ORDER BY tytul;</p>
<p>select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
delete from zamowienia;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;</p>
<p>&#8211; komentarz, ponizej instrukcje ddl czyli tworzenia baz</p>
<p>create database testowa;<br />
create database drugabazka;</p>
<p>create table waznedane (kol1 int, wartosc varchar);</p>
<p>create table fjdskfjkldsfkl (kol2 int, kol4 int, kol3 bool);</p>
<p>grant uprawnienie on employee to piotr with grant option;</p></blockquote>
<p><span style="text-decoration:underline;"><strong>wyjście:</strong></span></p>
<blockquote><p>select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fasdfagtergddfa49384934 from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select * from tabelka;<br />
select kolumna from tabela;<br />
select dsfy87dsayfsadf7 from ffsadfadsfasdfasfs;<br />
select kjfds8ay7f8as8f from ffsadfadsfasdfasfs;<br />
delete from pracownicy;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
update tabelka set umowa = &#8216;OK&#8217; where umowa = NULL;<br />
delete from pracownicy where imie = &#8216;andrzej&#8217;;<br />
insert into tabelka (kol1,kol2) values (&#8216;JaN&#8217;,'Kowalski&#8217;);<br />
select TYTUL from BOOK where autor = &#8216;Profesor&#8217; order by tytul;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
delete from zamowienia;<br />
select fadsiouuwaruwf from ffsadfadsfasdfasfs;<br />
&#8211;  komentarz, ponizej instrukcje ddl czyli tworzenia bazcreate database testowa;<br />
create database drugabazka;<br />
create table waznedane(kol1 int, wartosc varchar);<br />
create table fjdskfjkldsfkl(kol2 int, kol4 int, kol3 bool);<br />
Test OK!</p></blockquote>
<p>Dzięki programowi w flexie możemy skopiować string dla każdego tokena (zamiast alokować pamięć i używać strcpy wystarczy użyć instrukcji yylval=text; , jednak kopiowanie stringów jest bezpieczniejsze jeżeli mamy zamysł pisania pretty-printera kodu), natomiast w bisonie każda instrukcja jest przetwarzana pod kątem naszej gramatyki i jeżeli w pliku wejściowym wpiszemy nieprawidłową instrukcję (niezgodną z nasza gramatyką), otrzymamy komunikat o błędzie.</p>
<p>Program kompiluje się w następujący sposób:</p>
<blockquote><p>#!/bin/bash<br />
<span style="color:#008000;">flex </span><span style="color:#ff0000;">-i</span> sql.l<br />
<span style="color:#008000;">bison </span><span style="color:#ff0000;">-d</span> sql.y<br />
<span style="color:#008000;">gcc </span><span style="color:#ff0000;">-o</span> sql sql.tab.c <span style="color:#ff0000;">-lfl</span></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=35&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2009/01/29/parser-sql-w-c-%e2%80%93-flex-bison-czyli-yacc-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>
	</item>
		<item>
		<title>Regexp – vc++</title>
		<link>http://oskarj.wordpress.com/2008/11/11/regexp-%e2%80%93-vc/</link>
		<comments>http://oskarj.wordpress.com/2008/11/11/regexp-%e2%80%93-vc/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 20:29:25 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=31</guid>
		<description><![CDATA[Niesamowite możliwości udostępniają wyrażenia regularne. Istnieje narzędzie, które nazywa się Regex Builder w wersji 2.05, za jego pomocą można w wygodny sposób testować wyrażenia na dowolnym łańcuchu znaków, aby te prawidłowe móc potem użyć we własnym programie. I tak na przykład, aby wyciągnąć wartości i wykładniki z wielomianów za pomocą wyrażenia regularnego, możemy użyć następująco: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=31&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Niesamowite możliwości udostępniają wyrażenia regularne. Istnieje narzędzie, które nazywa się Regex Builder w wersji 2.05, za jego pomocą można w wygodny sposób testować wyrażenia na dowolnym łańcuchu znaków, aby te prawidłowe móc potem użyć we własnym programie.</p>
<p><a href="http://oskarj.files.wordpress.com/2008/11/regex.jpg"><img class="aligncenter size-full wp-image-33" title="regex builder" src="http://oskarj.files.wordpress.com/2008/11/regex.jpg?w=772&#038;h=441" alt="regex builder" width="772" height="441" /></a></p>
<p>I tak na przykład, aby wyciągnąć wartości i wykładniki z wielomianów za pomocą wyrażenia regularnego, możemy użyć następująco:</p>
<p>Regex ^expression = gcnew Regex(&#8222;x\\^(\\d+)&#8221;);<br />
// wielomian jest dzielony wyrażeniem regularnym na poszczególne wykładniki (n&gt;1)<br />
expression = gcnew Regex(&#8222;[+-]*(\\d)*x[^^]|[+-][x]&#8222;);<br />
// wielomian jest dzielony wyrażeniem regularnym na poszczególne wykładniki (n==1)<br />
expression = gcnew Regex(&#8222;(.?)((\\d)+).&#8221;);<br />
// wielomian jest dzielony wyrażeniem regularnym na poszczególne wykładniki (n==0)<br />
MatchCollection ^polyMatch = expression-&gt;Matches(text);</p>
<p>5x+54+4784x^5+x+389x^2+5x+4x+3x+89x^3+2x^2+4+8x^8+5345+85x+4+x</p>
<p>Składowe wpisanego wielomianu:<br />
współczynnik: 4784 wykładnik: 5<br />
współczynnik: 389 wykładnik: 2<br />
współczynnik: 89 wykładnik: 3<br />
współczynnik: 2 wykładnik: 2<br />
dodawanie współczynników: (389 + 2) x^2<br />
współczynnik: 8 wykładnik: 8<br />
współczynnik: 5 wykładnik: 1<br />
współczynnik: 1 wykładnik: 1<br />
(5 + 1) x^1<br />
współczynnik: 5 wykładnik: 1<br />
(6 + 5) x^1<br />
współczynnik: 4 wykładnik: 1<br />
(11 + 4) x^1<br />
współczynnik: 3 wykładnik: 1<br />
(15 + 3) x^1<br />
współczynnik: 85 wykładnik: 1<br />
(18 + 85) x^1<br />
współczynnik: 1 wykładnik: 1<br />
(103 + 1) x^1<br />
współczynnik: 54 wykładnik: 0<br />
współczynnik: 4 wykładnik: 0<br />
(54 + 4) x^0<br />
współczynnik: 5345 wykładnik: 0<br />
(58 + 5345) x^0<br />
współczynnik: 4 wykładnik: 0<br />
(5403 + 4) x^0<br />
ostatecznie w2: 8x^8 +4784x^5 +89x^3 +391x^2 +104x^1 +5407</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=31&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2008/11/11/regexp-%e2%80%93-vc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>

		<media:content url="http://oskarj.files.wordpress.com/2008/11/regex.jpg" medium="image">
			<media:title type="html">regex builder</media:title>
		</media:content>
	</item>
		<item>
		<title>Jak w kodzie dodać kontrolki w .NET 3.5 (WPF) ?</title>
		<link>http://oskarj.wordpress.com/2008/06/16/jak-w-kodzie-dodac-kontrolki-w-net-35-wpf/</link>
		<comments>http://oskarj.wordpress.com/2008/06/16/jak-w-kodzie-dodac-kontrolki-w-net-35-wpf/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 18:01:49 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Kod]]></category>
		<category><![CDATA[wpf c# .net 3.5 how to prrogrammatically add controls]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=29</guid>
		<description><![CDATA[Jak w kodzie dodać kontrolki w .NET 3.5 (WPF) ? W pracy dyplomowej mam funkcjonalność do zaimplementowania – mapa stolików w restauracji. Na mapie stolików wykonanej w AutoCAD nakładam przyciski, więc wczytuje z pliku XML położenia moich stolików na mapie bitowej (wysokość i szerokość w pikselach), po czym właśnie w tym miejscu dodaję nową kontrolkę [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=29&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Jak w kodzie dodać kontrolki w .NET 3.5 (WPF) ?</p>
<p class="MsoNormal">
<p class="MsoNormal">W pracy dyplomowej mam funkcjonalność do zaimplementowania – mapa stolików w restauracji. Na mapie stolików wykonanej w AutoCAD nakładam przyciski, więc wczytuje z pliku XML położenia moich stolików na mapie bitowej (wysokość i szerokość w pikselach), po czym właśnie w tym miejscu dodaję nową kontrolkę – button, posiadającą handler dla Click.</p>
<p class="MsoNormal">
<p class="MsoNormal" style="text-align:center;"><a href="http://oskarj.files.wordpress.com/2008/06/win2-edycja.jpg"><img class="size-medium wp-image-30 aligncenter" src="http://oskarj.files.wordpress.com/2008/06/win2-edycja.jpg?w=491&#038;h=391" alt="" width="491" height="391" /></a></p>
<p class="MsoNormal">
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;">foreach</span><span style="font-size:10pt;"> (<span style="color:#2b91af;">Seat</span> seat <span style="color:blue;">in</span> seats)</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"><span> </span></span><span style="font-size:10pt;" lang="EN-US">{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>System.Windows.Controls.<span style="color:#2b91af;">Button</span> button = <span style="color:blue;">new</span> <span style="color:#2b91af;">Button</span>();</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.Content = seat.Sala + <span style="color:#a31515;">&#8222;-&#8221;</span> + seat.Stolik;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span></span><span style="font-size:10pt;">//ustawienie pozycji przycisku</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"><span> </span>button.Width = 40;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"><span> </span></span><span style="font-size:10pt;" lang="EN-US">button.Height = 40;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:#2b91af;">Thickness</span> thick = <span style="color:blue;">new</span> <span style="color:#2b91af;">Thickness</span>();</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>thick.Left = seat.Width + 160;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>thick.Top = seat.Height + 20;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>thick.Right = 0;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>thick.Bottom = 0;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.Margin = thick;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:green;">// ulozenie</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.HorizontalAlignment = <span style="color:#2b91af;">HorizontalAlignment</span>.Left;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.VerticalAlignment = <span style="color:#2b91af;">VerticalAlignment</span>.Top;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:green;">// przypisanie akcji przyciskowi</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.Click += <span style="color:blue;">new</span> <span style="color:#2b91af;">RoutedEventHandler</span>(newButt_Click);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:green;">// koloryzacja</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.IsEnabled = <span style="color:blue;">false</span>;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>button.Background = buttonBrushes[2];</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:green;">// dodanie do layoutu</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>{… implementacja …}</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:blue;">if</span> (seat.Sala == <span style="color:#2b91af;">Image</span>.selected + 1) LayoutRoot.Children.Add(button);</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:blue;">private</span> <span style="color:blue;">void</span> newButt_Click(<span style="color:blue;">object</span> sender, <span style="color:#2b91af;">RoutedEventArgs</span> e)</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:#2b91af;">Button</span> button = (<span style="color:#2b91af;">Button</span>)sender;</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span><span style="color:blue;">if</span> (button.Background.Equals(buttonBrushes[3]))</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span></span><span style="font-size:10pt;">{</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"><span> </span><span style="color:green;">// odzaznaczenie rezerwacji w przypadku edycji</span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"><span> </span></span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>}</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;" lang="EN-US"><span> </span>{…kod implementacji…}</span></p>
<p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"><span style="font-size:10pt;"> </span></p>
<p class="MsoNormal"><span style="font-size:10pt;line-height:115%;"><span> </span>}</span></p>
<p class="MsoNormal">Polecam lekturę:</p>
<p class="MsoNormal"><a title="http://arcanecode.wordpress.com/2007/09/07/adding-wpf-controls-progrrammatically/" href="http://arcanecode.wordpress.com/2007/09/07/adding-wpf-controls-progrrammatically/" target="_blank">http://arcanecode.wordpress.com/2007/09/07/adding-wpf-controls-progrrammatically/</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oskarj.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oskarj.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=29&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2008/06/16/jak-w-kodzie-dodac-kontrolki-w-net-35-wpf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>

		<media:content url="http://oskarj.files.wordpress.com/2008/06/win2-edycja.jpg?w=300" medium="image" />
	</item>
		<item>
		<title>Milionerzy ?</title>
		<link>http://oskarj.wordpress.com/2008/04/13/milionerzy/</link>
		<comments>http://oskarj.wordpress.com/2008/04/13/milionerzy/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 13:14:39 +0000</pubDate>
		<dc:creator>oskarj</dc:creator>
				<category><![CDATA[1]]></category>
		<category><![CDATA[przemyślenia]]></category>
		<category><![CDATA[Recenzja]]></category>
		<category><![CDATA[Who Wants to Be a Millionaire]]></category>

		<guid isPermaLink="false">http://oskarj.wordpress.com/?p=28</guid>
		<description><![CDATA[Pewnie każdy z nas od czasu ogląda ten tvn-owski teleturniej, ale nie wie dokładnie, jak wygląda proces eliminacji. Należy wysłać dokładnie 3 smsy na numer 7244, z czego pierwszy jest tylko zgłoszeniowy, dwa następne to twoje odpowiedzi na pytania z bazy danych pytań, a wygląda ona następująco: 1. Blues narodził się w: B) Ameryce Północnej [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=28&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pewnie każdy z nas od czasu ogląda ten tvn-owski teleturniej, ale nie wie dokładnie, jak wygląda proces eliminacji. Należy wysłać dokładnie 3 smsy na numer 7244, z czego pierwszy jest tylko zgłoszeniowy, dwa następne to twoje odpowiedzi na pytania z bazy danych pytań, a wygląda ona następująco:</p>
<p>1. Blues narodził się w:<br />
B) Ameryce Północnej</p>
<p>2. Czy słodka włóknista masa z nasion oleistych i karmelu to:<br />
C) chałwa</p>
<p>3. Słynny 24-godzinny wyścig samochodowy odbywa się we Francji w<br />
C) Le Mans</p>
<p>4. Czy łacińska maksyma chwytaj dzień to w oryginale<br />
A) carpe diem</p>
<p>5. Marszałkiem pierwszego sejmu III RP zwanego kontraktowym był<br />
C) Kozakiewicz</p>
<p>6. Przechodzenie ciała stałego w stan lotny bez topnienia to<br />
B) sublimacja</p>
<p>Jeżeli jesteś w pierwszej setce osób, które odpowiedziały najszybciej (dlatego najlepiej wysyłać odpowiedzi z komputera poprzez PC-Suite), to w przeciągu miesiąca do trzech miesięcy zadzwoni do ciebie konsultant, po czym wypyta o dane osobowe, zainteresowania i zada od siedmiu do dwudziestu pytań.. i teraz nie ma wariantów abc, tylko musisz znać odpowiedź ;P Finalnie zaproszenie do studia w Krakowie. Ja na razie czekam aż ktoś oddzwoni ;P. Może będę miał równie łatwe pytania jak te, które zostały zadane przy głównej wygranej.</p>
<p style="text-align:center;"><img class="alignnone" src="http://m.onet.pl/_m/3231b407e7bcf989cc4d1335cf1e7a1c,35,1.jpg" alt="" width="573" height="322" /></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oskarj.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oskarj.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oskarj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oskarj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/oskarj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/oskarj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oskarj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oskarj.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oskarj.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oskarj.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oskarj.wordpress.com&amp;blog=1235076&amp;post=28&amp;subd=oskarj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://oskarj.wordpress.com/2008/04/13/milionerzy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/41ee4e5b12e29a9cc6b70d7830aadb94?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">oskarj</media:title>
		</media:content>

		<media:content url="http://m.onet.pl/_m/3231b407e7bcf989cc4d1335cf1e7a1c,35,1.jpg" medium="image" />
	</item>
	</channel>
</rss>
