<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1707704340105849958</id><updated>2024-08-30T07:03:32.760+02:00</updated><category term="InstallShield - funkcje"/><category term="InstallShield - SQL"/><category term="c#"/><category term="javascript"/><category term="InstallShield - Apache Serwer"/><category term="MFC - funkcje"/><category term="Blogger"/><category term="ODBC"/><category term="javascript-funkcje"/><category term="Flex-komponenty"/><category term="InstallShield - Apache Tomcat"/><category term="InstallShield - Porady"/><category term="InstallShield - funkcje okien dialogowych"/><category term="nativescript"/><category term="SQL"/><category term="javascript - DOM"/><category term="php"/><category term="Angular"/><category term="CSS"/><category term="Flex-walidatory"/><category term="Turbo C++"/><category term="joomla"/><title type='text'>Progbis Software</title><subtitle type='html'>Programowanie c++/c#/delphi/javas/php/installscript/nativescript &lt;br&gt;&#xa;Przykłady - przydatne funkcje</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>108</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-928498352992194140</id><published>2022-11-22T10:07:00.003+01:00</published><updated>2022-11-22T10:07:45.623+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nativescript"/><title type='text'>Nativescript close application</title><content type='html'>&lt;p&gt;&amp;nbsp;Example of use in function onClose()&lt;br /&gt;&lt;br /&gt;import { isIOS } from &#39;@nativescript/core/platform&#39;;&lt;/p&gt;&lt;p&gt;//declaration of native functions&lt;br /&gt;declare const android:any;&lt;br /&gt;declare const exit: (code: number)=&amp;gt;void;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;//Use for example in component&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;onClose() {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isIOS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; android.os.Process.killProcess(android.os.Process.myPid());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/928498352992194140/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2022/11/nativescript-close-application.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/928498352992194140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/928498352992194140'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2022/11/nativescript-close-application.html' title='Nativescript close application'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-7672227816398657068</id><published>2022-11-22T09:58:00.000+01:00</published><updated>2022-11-22T09:58:00.338+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Angular"/><category scheme="http://www.blogger.com/atom/ns#" term="nativescript"/><title type='text'>Nativescript block Back Button on Android</title><content type='html'>&lt;p&gt;&amp;nbsp;Example of blocking Soft Back Button on android in angular component&lt;br /&gt;&lt;/p&gt;&lt;p&gt;import { Component, OnInit } from &#39;@angular/core&#39;;&lt;br /&gt;import { isAndroid } from &#39;@nativescript/core/platform&#39;;&lt;br /&gt;import { AndroidApplication, AndroidActivityBackPressedEventData } from &quot;@nativescript/core/application&quot;;&lt;br /&gt;import * as app from &quot;@nativescript/core/application&quot;;&lt;/p&gt;&lt;p&gt;declare const android:any; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;//Put this code in implementation OnInit of component &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;ngOnInit() {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isAndroid) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.android.on(AndroidApplication.activityBackPressedEvent, (data: AndroidActivityBackPressedEventData) =&amp;gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.cancel = true; // prevents default back button behavior&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/7672227816398657068/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2022/11/nativescript-block-back-button-on.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/7672227816398657068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/7672227816398657068'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2022/11/nativescript-block-back-button-on.html' title='Nativescript block Back Button on Android'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-5176376715207234492</id><published>2022-11-09T16:10:00.000+01:00</published><updated>2022-11-09T16:10:04.025+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nativescript"/><title type='text'>Nativescript: Assets Folder Not Including html,js, css files</title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;In default options &lt;/span&gt;&lt;code&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;WebpackPlugin copy Images and fonts folder.&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;If You need to copy for example assets folder with js, html etc. for webView You mast update&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;code&gt;CopyWebpackPlugin&lt;/code&gt; in your &lt;code&gt;webpack.config.js&lt;/code&gt; to include the asset folder&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;for 6.x version of nativescript |&lt;/span&gt;&lt;pre class=&quot;default s-code-block&quot;&gt;&lt;code class=&quot;hljs language-csharp&quot;&gt;&lt;span class=&quot;hljs-keyword&quot;&gt;new&lt;/span&gt; CopyWebpackPlugin([
 { &lt;span class=&quot;hljs-keyword&quot;&gt;from&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot;&gt;&quot;fonts/**&quot;&lt;/span&gt; },
 { &lt;span class=&quot;hljs-keyword&quot;&gt;from&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot;&gt;&quot;**/*.jpg&quot;&lt;/span&gt; },
 { &lt;span class=&quot;hljs-keyword&quot;&gt;from&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot;&gt;&quot;**/*.png&quot;&lt;/span&gt; },
 { &lt;span class=&quot;hljs-keyword&quot;&gt;from&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot;&gt;&quot;assets/**&quot;&lt;/span&gt; }, &lt;span class=&quot;hljs-comment&quot;&gt;// Add your asset folder path like this&lt;/span&gt;
], { ignore: [`${relative(appPath, appResourcesFullPath)}&lt;span class=&quot;hljs-comment&quot;&gt;/**`] }),&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;for 7,8 version &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot;hljs language-csharp&quot;&gt;&lt;span class=&quot;hljs-comment&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;code class=&quot;hljs language-csharp&quot;&gt;&lt;span class=&quot;hljs-comment&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;span class=&quot;comment-copy&quot;&gt;&lt;code&gt;webpack.Utils.addCopyRule(&#39;assets/**&#39;)&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/5176376715207234492/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2022/11/nativescript-assets-folder-not.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/5176376715207234492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/5176376715207234492'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2022/11/nativescript-assets-folder-not.html' title='Nativescript: Assets Folder Not Including html,js, css files'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-409239336601948769</id><published>2014-02-18T09:44:00.002+01:00</published><updated>2014-02-18T09:46:55.462+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="joomla"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>JS:Clickjack-A [Trj], JS/Agent.NKW trojan na stronie  - Rozwiązanie</title><content type='html'>Ten Trojan dołącza się zazwyczaj do pliku php, jako skrypt js&lt;br /&gt;
U mnie wystąpił w templetce modułu joomla inowslider.&lt;br /&gt;
Usunięcie:&lt;br /&gt;
&lt;br /&gt;
1. Otwórz \modules\mod_inowslider\tmpl\&lt;b&gt;default.php&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
2. Poszuka i usuń skrypt wyglądający mniej więcej tak :&lt;br /&gt;
&lt;code&gt;&amp;lt;script language=&quot;JavaScript&quot;&amp;gt;&lt;br /&gt;function dnnViewState()&lt;br /&gt;{&lt;br /&gt;var a=0,m,v,t,z,x=new Array(&#39;xxxxxx&#39;),l=x.length;while(++a&amp;lt;=l){m=x[l-a];&lt;br /&gt;t=z=&#39;&#39;;&lt;br /&gt;for(v=0;v&amp;lt;m.length;){t+=m.charAt(v++);&lt;br /&gt;if(t.length==2){z+=String.fromCharCode(parseInt(t)+25-l+a);&lt;br /&gt;t=&#39;&#39;;}}x[l-a]=z;}document.write(&#39;&amp;lt;&#39;+x[0]+&#39; &#39;+x[4]+&#39;&amp;gt;.&#39;+x[2]+&#39;{&#39;+x[1]+&#39;}&amp;lt;/&#39;+x[0]+&#39;&amp;gt;&#39;);}dnnViewState();&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
3.Na końcu pliku zlokalizuj i usuń ten kod.&lt;br /&gt;
&lt;code&gt;&amp;lt;p class=&quot;dnn&quot;&amp;gt;By A &amp;lt;a href=&quot;&lt;a class=&quot;vglnk&quot; href=&quot;http://www.autson.com/&quot; rel=&quot;nofollow&quot; title=&quot;Link added by VigLink&quot;&gt;http://www.autson.com/&lt;/a&gt;&quot; title=&quot;web design company&quot;&amp;gt;Web Design&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;4.Po zapisaniu usunąłeś trojana z modułu, możesz jeszcze przeskanować plik dla pewności antywirusem np: Avastem, Nodem&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/409239336601948769/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2014/02/jsclickjack-trj-jsagentnkw-trojan-na.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/409239336601948769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/409239336601948769'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2014/02/jsclickjack-trj-jsagentnkw-trojan-na.html' title='JS:Clickjack-A [Trj], JS/Agent.NKW trojan na stronie  - Rozwiązanie'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-543021379886116095</id><published>2013-03-22T14:32:00.000+01:00</published><updated>2013-03-22T14:46:39.454+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="InstallShield - funkcje"/><title type='text'>Set Application Run As Admin</title><content type='html'>&lt;h3&gt;Dzisiaj potrzebowałem funkcji do ustawienia instalowanej aplikacji w tryb uruchomienia jako administrator - oto ona:&lt;/h3&gt;&lt;br /&gt;
&lt;code&gt;
export prototype BOOL SetRunAsAdmin(STRING, BOOL);&lt;/code&gt;&lt;br /&gt;
Parametry funkcji:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;szFile - nazwa pliku&lt;/li&gt;
&lt;li&gt;bLog - czy zapisywać do logu&lt;/li&gt;
&lt;/ul&gt;

&lt;code&gt;
function BOOL SetRunAsAdmin(szFile, bLog)&lt;br /&gt;#define UKEYLAYERS &quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers&quot;&lt;br /&gt;#define DATA &quot;RUNASADMIN&quot;&lt;br /&gt;string szName, sKey;&lt;br /&gt;LIST listSubKeys;&lt;br /&gt;number nReturn;&lt;br /&gt;int i;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp;if (bLog) then WriteLog(0,&quot;- Dodanie praw administratora do uruchomienia pliku: &quot;+szFile); endif;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;//Przestaw rejestr na 64 bity&lt;br /&gt;&amp;nbsp;if (SYSINFO.bIsWow64!=0) then REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;szName = szFile;&lt;br /&gt;&amp;nbsp;RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); &lt;br /&gt;&amp;nbsp;if (!RegDBKeyExist(UKEYLAYERS)) then&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (bLog) then WriteLog(1,&quot; - brak klucza rejestru &quot;+UKEY); endif; &lt;br /&gt;&amp;nbsp;&amp;nbsp; if (SYSINFO.bIsWow64!=0) then REGDB_OPTIONS = REGDB_OPTIONS &amp;amp;amp; ~REGDB_OPTION_WOW64_64KEY;&amp;nbsp; endif;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;&amp;nbsp;endif;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;//Na istniejącym kluczu;&lt;br /&gt;&amp;nbsp;listSubKeys&amp;nbsp; = ListCreate(STRINGLIST);&lt;br /&gt;&amp;nbsp;nReturn = RegDBQueryKey(UKEYLAYERS, REGDB_NAMES, listSubKeys );&lt;br /&gt;&amp;nbsp;if (nReturn=0) then&lt;br /&gt;&amp;nbsp; if (ListCount(listSubKeys)&amp;amp;gt;0) then&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; ListSetIndex(listSubKeys,LISTFIRST);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i=0 to ListCount(listSubKeys)-1&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListCurrentString ( listSubKeys, sKey );&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sKey==szName) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then WriteLog(1,&quot; - klucz ustawien już istnieje&quot;); endif; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;RegDBSetKeyValueEx(UKEYLAYERS, szName, REGDB_STRING, DATA, -1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;if (SYSINFO.bIsWow64!=0) then REGDB_OPTIONS = REGDB_OPTIONS &amp;amp;amp; ~REGDB_OPTION_WOW64_64KEY; endif;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListSetIndex ( listSubKeys, LISTNEXT );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; endfor;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; endif;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;endif;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; //Stworz nowy&lt;br /&gt;&amp;nbsp; nReturn =&amp;nbsp; RegDBSetKeyValueEx(UKEYLAYERS, szName, REGDB_STRING, DATA, -1);&lt;br /&gt;&amp;nbsp; if (nReturn==0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (bLog) then WriteLog(1,&quot; - prawa administratora dodane&quot;); endif; &lt;br /&gt;&amp;nbsp;&amp;nbsp; if (SYSINFO.bIsWow64!=0) then REGDB_OPTIONS = REGDB_OPTIONS &amp;amp;amp; ~REGDB_OPTION_WOW64_64KEY; endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; return TRUE;&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (bLog) then WriteLog(1,&quot; - nie dodano praw administratora&quot;); endif;&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (SYSINFO.bIsWow64!=0) then REGDB_OPTIONS = REGDB_OPTIONS &amp;amp;amp; ~REGDB_OPTION_WOW64_64KEY; endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; return FALSE; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; endif; &lt;br /&gt;end;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/543021379886116095/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2013/03/set-application-run-as-admin.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/543021379886116095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/543021379886116095'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2013/03/set-application-run-as-admin.html' title='Set Application Run As Admin'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-1783416151481573855</id><published>2012-07-09T14:48:00.001+02:00</published><updated>2012-07-09T14:51:09.663+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="InstallShield - Apache Serwer"/><title type='text'>Pobranie ścieżki DocumentRoot z konfiguracji Apache w InstallShield - Get DocumentRoot from Apache Config File</title><content type='html'>Niedawno potrzebna była mi kolejna funkcja zwracająca ścieżkę do DocumentRoot z konfiguracji serwera Apache, oto ona:&lt;br /&gt;
Nagłówek funkcji&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;export prototype BOOL GetApacheDocRoot(STRING /*plik konfiguracyjny Apache*/, BYREF STRING /*DocRootPath*/, BOOL /*bLog*/);&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Parametry funkcji:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;ścieżka wraz z plikiem konfiguracyjnym np; httpd.conf&lt;/li&gt;
&lt;li&gt;referencja do zmiennej przechowująca ścieżkę&lt;/li&gt;
&lt;li&gt;bLog - czy zapisywać do logu&lt;/li&gt;
&lt;/ul&gt;
Zwracane wartość: true/false&lt;br /&gt;
&lt;br /&gt;
A oto ciało funkcji:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;function BOOL GetApacheDocRoot(szApacheConfigFile, svApacheDocRoot, bLog)&lt;br /&gt;BOOL bResult;&lt;br /&gt;LIST lsApache;&lt;br /&gt;string szLine,szNewLine, szDocRoot;&lt;br /&gt;int i;&lt;br /&gt;begin &lt;br /&gt;&amp;nbsp;if (bLog) then WriteLog(0,&quot;* Pobieranie scieżki do DocumentRoot z konfiguracji Apache...&quot;); endif;&lt;br /&gt;&amp;nbsp;bResult = FALSE;&lt;br /&gt;&amp;nbsp;if (Is(FILE_EXISTS,szApacheConfigFile)) then&lt;br /&gt;&amp;nbsp; lsApache = ListCreate(STRINGLIST); &lt;br /&gt;&amp;nbsp; ListReadFromFile ( lsApache, szApacheConfigFile ); //Odczyt Apache Conf&lt;br /&gt;&amp;nbsp; if (ListCount(lsApache)&amp;gt;0) then&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; ListSetIndex(lsApache,LISTFIRST);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; for i=0 to ListCount(lsApache)-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListCurrentString ( lsApache, szLine ); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; szLine = StrTrim(szLine);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (StrFind(szLine,&quot;DocumentRoot&quot;)&amp;gt;=0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNewLine = szLine;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNewLine = StrTrim(szNewLine);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (StrFind(szNewLine,&quot;DocumentRoot&quot;)=0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StrSub(szDocRoot,szNewLine, StrLength(&quot;DocumentRoot&quot;)+1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StrLength(szNewLine));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szDocRoot = StrTrim(szDocRoot);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = TRUE;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then WriteLog(2,&quot;DocumentRoot : &quot;+szDocRoot); endif;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StrReplace(szDocRoot,&quot;\&quot;&quot;,&quot;&quot;,0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StrReplace(szDocRoot,&quot;/&quot;,&quot;\\&quot;,0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StrRemoveLastSlash(szDocRoot);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; svApacheDocRoot = szDocRoot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListSetIndex(lsApache,LISTNEXT);&lt;br /&gt;&amp;nbsp;&amp;nbsp; endfor; &lt;br /&gt;&amp;nbsp; endif;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;endif;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;ListDestroy(lsApache);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;return bResult;&lt;br /&gt;end; &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/1783416151481573855/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/pobranie-sciezki-documentroot-z.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1783416151481573855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1783416151481573855'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/pobranie-sciezki-documentroot-z.html' title='Pobranie ścieżki DocumentRoot z konfiguracji Apache w InstallShield - Get DocumentRoot from Apache Config File'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-1096375592996494830</id><published>2012-07-05T15:21:00.000+02:00</published><updated>2012-07-05T15:23:39.606+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="InstallShield - funkcje"/><title type='text'>Pobranie ścieżki instalacyjnej zainstalowanego produktu po przez GUID - Get Install location by Product GUID in InstallShield</title><content type='html'>Przy tworzeniu aktualizacji czasami zachodzi potrzeba odczytania ścieżki instalacyjnej zainstalowanego wcześniej produktu. Jeżeli mamy GUID poprzedniego produktu możemy do tego wykorzystać poniższą funkcję. Funkcja odczytuje wartości rejestru zainstalowanych produktów. &lt;br /&gt;
Parametry:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;GUID&amp;nbsp; &lt;/i&gt;- GUID zainstalowanego&amp;nbsp; produktu\&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Path &lt;/i&gt;- odczytana ścieżka &lt;/li&gt;
&lt;li&gt;&lt;i&gt;Name &lt;/i&gt;- odczytana nazwa produktu &lt;/li&gt;
&lt;li&gt;&lt;i&gt;Version &lt;/i&gt;- odczytana wersja zainstalowanego produktu &lt;/li&gt;
&lt;li&gt;&lt;i&gt;bLog &lt;/i&gt;- zapis do loga&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Funkcja zwraca &lt;i&gt;true&lt;/i&gt;/&lt;i&gt;false&lt;/i&gt;, wartość &lt;i&gt;true &lt;/i&gt;w przypadku pozytywnego odczytania ścieżki instalacyjnej.&lt;br /&gt;
&lt;br /&gt;
Nagłówek funkcji &lt;br /&gt;
&lt;br /&gt;
&lt;code&gt; export prototype BOOL GetInstallLocationGUID(STRING, /*GUID*/ BYREF STRING /*Path*/, BYREF STRING /*Name*/, BYREF STRING /*Version*/, BOOL /*bLog*/);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Ciało funkcji &lt;br /&gt;
&lt;code&gt;
function BOOL GetInstallLocationGUID(szGUID, svPath, svName, svVersion, bLog)&lt;br /&gt;#define UKEY&amp;nbsp; &quot;SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall&quot;&lt;br /&gt;string RegPath, sKey, sValue, sData, sFolder;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;number nReturn, nResult, nType, nSize, i, nData; &lt;br /&gt;BOOL bResult;&lt;br /&gt;LIST&amp;nbsp;&amp;nbsp; listSubKeys;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; bResult = FALSE;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(1,&quot;Odczyt ścieżki do zainstalowanego produktu&quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; listSubKeys&amp;nbsp; =&amp;nbsp; ListCreate(STRINGLIST);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); &lt;br /&gt;&amp;nbsp; nReturn = RegDBQueryKey(UKEY, REGDB_KEYS, listSubKeys );&lt;br /&gt;&amp;nbsp; if (nReturn=0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp; ListGetFirstString ( listSubKeys, sKey );&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (ListCount(listSubKeys)&amp;gt;0) then&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListSetIndex(listSubKeys, LISTFIRST);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i=0 to ListCount(listSubKeys)-1&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ListCurrentString ( listSubKeys, sKey );&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (sKey==szGUID) then&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(2,&quot;- znaleziono zainstalowany produkt &quot;+szGUID); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; RegPath=UKEY+&quot;\\&quot;+sKey;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; sFolder=sKey;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (RegDBKeyExist(RegPath)==1) then&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sKey = RegPath;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sValue=&quot;DisplayName&quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nType = REGDB_STRING;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize )==0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; svName = sData;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- nazwa produktu &quot;+sData); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; svName = &quot;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then WriteLog(3,&quot;- brak klucza nazwy produktu &quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; endif;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sValue=&quot;DisplayVersion&quot;;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize )==0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; svVersion = sData;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- wersja produktu &quot;+sData); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; svVersion = &quot;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- brak klucza wersji produktu &quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; sValue=&quot;InstallLocation&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize )==0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- ścieżka instalacji &quot;+sData); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; svPath = sData;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = TRUE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- brak klucza ścieżki instalacyjne &quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; sValue=&quot;InstallDate&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize )==0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- data instalacji &quot;+sData); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = TRUE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(3,&quot;- brak klucza daty instalacji &quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; endif;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ListSetIndex(listSubKeys, LISTNEXT);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; endfor;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; else&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(2,&quot;- brak listy zainstalowanych produktow GUID&quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; endif;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (bLog) then&amp;nbsp; WriteLog(2,&quot;- błąd odczytu rejestru&quot;); endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; endif;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; return bResult;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;end; &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Oprócz ścieżki instalacyjnej (&lt;i&gt;Path&lt;/i&gt;) , funkcja zwraca nazwę produktu (&lt;i&gt;Name&lt;/i&gt;) i wersję (&lt;i&gt;Version&lt;/i&gt;)</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/1096375592996494830/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/pobranie-sciezki-instalacyjnej.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1096375592996494830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1096375592996494830'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/pobranie-sciezki-instalacyjnej.html' title='Pobranie ścieżki instalacyjnej zainstalowanego produktu po przez GUID - Get Install location by Product GUID in InstallShield'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-9159649412250599627</id><published>2012-07-02T18:52:00.003+02:00</published><updated>2012-07-02T18:52:39.460+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Walidacja numeru Dowodu Osobistego w c#</title><content type='html'>Funkcja walidująca numer dowodu osobistego w c# wraz z formatowaniem.&lt;br /&gt;
Funkcja oparta o sumę kontrolną&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// Weryfikacja Nr Dowowdu Osobistego&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;/// &amp;lt;param name=&quot;szNR&quot;&amp;gt;Nr Dowodu&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;param name=&quot;retFormated&quot;&amp;gt;Czy zwracać numer w postaci sformatowanej&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;returns&amp;gt;true/false&amp;lt;/returns&amp;gt;&lt;br /&gt;public static bool ValidateDO(ref string szNR, bool retFormated = true)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tab = new byte[9] { 7, 3, 1, 9, 7, 3, 1, 7, 3 };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tablicz = new byte[] { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bResult = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sumcontrol = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sum = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNR = szNR.Trim().Replace(&quot; &quot;, &quot;&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (szNR.Length == 9)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 3; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = Convert.ToByte(szNR[i]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (b &amp;lt; 65 || b &amp;gt; 90) return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 3; i &amp;lt; 9; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = Convert.ToByte(szNR[i]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (b &amp;lt; 48 || b &amp;gt; 57) return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumcontrol = Convert.ToInt32(szNR[3].ToString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 9; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i &amp;lt; 3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum += (Convert.ToByte(szNR[i]) - 55) * tab[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum += Convert.ToInt32(szNR[i].ToString()) * tab[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = ((sum % 10) == 0);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bResult &amp;amp;&amp;amp; retFormated)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNR = szNR.Insert(3, &quot; &quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bResult;&lt;br /&gt;} &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/9159649412250599627/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-dowodu-osobistego-w-c.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/9159649412250599627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/9159649412250599627'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-dowodu-osobistego-w-c.html' title='Walidacja numeru Dowodu Osobistego w c#'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-3540630903188037525</id><published>2012-07-02T18:49:00.000+02:00</published><updated>2012-07-02T18:49:06.049+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Walidacja numeru konta bankowego w c#</title><content type='html'>Poniżej przedstawiam funkcję walidującą numer konta bankowego zarówno przyjętego w Polsce 26 i 28 znakowy.&lt;br /&gt;
Funkcja może zwrócić podany numer w postaci sformatowanej tj ze spacjami.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// Walidacja numeru bankowego&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;/// &amp;lt;param name=&quot;szNR&quot;&amp;gt;weryfikowany numer&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;param name=&quot;retFormated&quot;&amp;gt;Czy zwracać numer w postaci sformatowanej&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;returns&amp;gt;true/false&amp;lt;/returns&amp;gt;&lt;br /&gt;public static bool ValidateIBAN_NRB(ref string szNR, bool retFormated = true)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bResult = false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNR = szNR.Trim()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Replace(&quot; &quot;, &quot;&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Replace(&quot;-&quot;, &quot;&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (szNR.Length == 26 || szNR.Length == 28)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string nr = szNR;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (nr.Length == 26)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr = (nr +&quot;PL&quot;+ nr.Substring(0, 2)).Remove(0, 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr = (nr + nr.Substring(0, 4)).Remove(0, 4);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr = nr.Replace(&quot;P&quot;, &quot;25&quot;).Replace(&quot;L&quot;, &quot;21&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nr6 = nr.Substring(0, 6);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nr12 = nr.Substring(6, 6);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nr18 = nr.Substring(12, 6);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nr24 = nr.Substring(18, 6);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String nr30 = nr.Substring(24);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int r = Convert.ToInt32(nr6) % 97;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr12 = (r &amp;gt; 0 ? r.ToString() : &quot;&quot;) + nr12;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = Convert.ToInt32(nr12) % 97;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr18 = (r &amp;gt; 0 ? r.ToString() : &quot;&quot;) + nr18;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = Convert.ToInt32(nr18) % 97;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr24 = (r &amp;gt; 0 ? r.ToString() : &quot;&quot;) + nr24;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = Convert.ToInt32(nr24) % 97;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nr30 = (r &amp;gt; 0 ? r.ToString() : &quot;&quot;) + nr30;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = (Convert.ToInt32(nr30) % 97 == 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bResult &amp;amp;&amp;amp; retFormated)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (szNR.Length==26)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNR = szNR.Insert(22, &quot; &quot;).Insert(18, &quot; &quot;).Insert(14, &quot; &quot;).Insert(10, &quot; &quot;).Insert(6, &quot; &quot;).Insert(2, &quot; &quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNR = szNR.Insert(24, &quot; &quot;).Insert(20, &quot; &quot;).Insert(16, &quot; &quot;).Insert(12, &quot; &quot;).Insert(8, &quot; &quot;).Insert(4, &quot; &quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bResult;&lt;br /&gt;} &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/3540630903188037525/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-konta-bankowego-w-c.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/3540630903188037525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/3540630903188037525'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-konta-bankowego-w-c.html' title='Walidacja numeru konta bankowego w c#'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-1908736220253529161</id><published>2012-07-02T18:42:00.003+02:00</published><updated>2012-07-02T18:42:54.819+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Walidacja numeru Regon w c#</title><content type='html'>Funkcja walidująca numer Regon w c# zarówno 9-cio jak i 14 cyfrowy.&lt;br /&gt;
Walidacja na podstawie sumy kontrolnej jak oraz długości ciągu cyfr.&lt;br /&gt;
Funkcja zwrac &lt;i&gt;true &lt;/i&gt;w przypadku poprawnego numeru&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;public static bool ValidateRegon(ref string szRegon)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tab8 = new byte[8] { 8, 9, 2, 3, 4, 5, 6, 7 };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tab13 = new byte[13] { 2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8 };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tablicz = new byte[] { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bResult = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int suma = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sumcontrol = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; szRegon = szRegon.Trim();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((szRegon.Length == 9)||(szRegon.Length==14))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (char l in szRegon)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b = Convert.ToByte(l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Array.IndexOf(tablicz, Convert.ToByte(l)) == -1) return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumcontrol = Convert.ToInt32(szRegon[(szRegon.Length==9)?8:13].ToString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; ((szRegon.Length==9)?8:13); i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suma += ((szRegon.Length==9)?tab8[i]:tab13[i]) * Convert.ToInt32(szRegon[i].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = ( (((suma % 11)!=10)?(suma % 11):0) == sumcontrol);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bResult;&lt;br /&gt;} &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/1908736220253529161/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-regon-w-c.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1908736220253529161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1908736220253529161'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-regon-w-c.html' title='Walidacja numeru Regon w c#'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-8919388663157624681</id><published>2012-07-02T18:38:00.001+02:00</published><updated>2012-07-02T18:38:16.499+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Walidacja numeru NIP w c#</title><content type='html'>Funkcja walidująca numer NIP w c# wraz z formatowaniem.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// Walidacja NIP&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;/// &amp;lt;param name=&quot;szNIP&quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;param name=&quot;retFormated&quot;&amp;gt; Zwracany NIP jest w postaci sformatowanej&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;returns&amp;gt;zwraca true/false&amp;lt;/returns&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;public static bool ValidateNIP(ref string szNIP, bool retFormated = true)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tab = new byte[9] { 6, 5, 7, 2, 3, 4, 5, 6, 7 };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tablicz = new byte[] { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bResult = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int suma = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sumcontrol = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNIP = szNIP.Replace(&quot;-&quot;, &quot;&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNIP = szNIP.Trim();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (szNIP.Length == 10)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (char l in szNIP)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b = Convert.ToByte(l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Array.IndexOf(tablicz, Convert.ToByte(l)) == -1) return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumcontrol = Convert.ToInt32(szNIP[9].ToString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 9; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suma += tab[i] * Convert.ToInt32(szNIP[i].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = ((suma % 11) == sumcontrol); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bResult &amp;amp;&amp;amp; retFormated)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; szNIP = szNIP.Insert(8, &quot;-&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Insert(6, &quot;-&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Insert(3, &quot;-&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bResult;&lt;br /&gt;}
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/8919388663157624681/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-nip-w-c.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/8919388663157624681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/8919388663157624681'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-nip-w-c.html' title='Walidacja numeru NIP w c#'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-7321871528089020279</id><published>2012-07-02T18:32:00.001+02:00</published><updated>2013-12-19T08:59:36.824+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Walidacja numeru Pesel w C#</title><content type='html'>Przedstawiam funkcje walidującą numer &lt;i&gt;PESEL&lt;/i&gt;.&lt;br /&gt;
Funkcja sprawdza sumę kontrolną numeru, długość oraz logiczność.&lt;br /&gt;
Zakres sprawdzanych numerów dat w Peselu od 1800 do 2200 (w przybliżeniu) &lt;br /&gt;
Zwraca &lt;i&gt;true &lt;/i&gt;- w przypadku poprawnego numeru.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
public static bool ValidatePesel(ref string szPesel)&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;byte[] tab = new byte[10] { 9, 7, 3, 1, 9, 7, 3, 1, 9, 7 };&lt;br /&gt;byte[] tablicz = new byte[] {48,49,50,51,52,53,54,55,56,57}; &lt;br /&gt;bool bResult = false;&lt;br /&gt;int suma = 0;&lt;br /&gt;int sumcontrol = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;szPesel = szPesel.Trim();&lt;br /&gt;&lt;br /&gt;if (szPesel.Length == 11)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (char l in szPesel)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b = Convert.ToByte(l);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Array.IndexOf(tablicz,Convert.ToByte(l)) == -1) return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sumcontrol = Convert.ToInt32(szPesel[10].ToString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suma += tab[i] * Convert.ToInt32(szPesel[i].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = ((suma % 10) == sumcontrol);&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bResult)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int rok = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int mies = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int dzien = Convert.ToInt32(szPesel[4].ToString()) * 10 + Convert.ToInt32(szPesel[5].ToString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (szPesel[2] == &#39;0&#39; || szPesel[2] == &#39;1&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rok = 1900;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mies = Convert.ToInt32(szPesel[2].ToString()) * 10 + Convert.ToInt32(szPesel[3].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (szPesel[2] == &#39;2&#39; || szPesel[2] == &#39;3&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rok = 2000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mies = (Convert.ToInt32(szPesel[2].ToString()) * 10 + Convert.ToInt32(szPesel[3].ToString()) - 20);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (szPesel[2] == &#39;4&#39; || szPesel[2] == &#39;5&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rok = 2100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mies = (Convert.ToInt32(szPesel[2].ToString()) * 10 + Convert.ToInt32(szPesel[3].ToString()) - 40);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (szPesel[2] == &#39;6&#39; || szPesel[2] == &#39;7&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rok = 2200;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mies = (Convert.ToInt32(szPesel[2].ToString()) * 10 + Convert.ToInt32(szPesel[3].ToString())-60);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (szPesel[2] == &#39;8&#39; || szPesel[2] == &#39;9&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rok = 1800;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mies = (Convert.ToInt32(szPesel[2].ToString()) * 10 + Convert.ToInt32(szPesel[3].ToString())-80);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rok += Convert.ToInt32(szPesel[0].ToString()) * 10 + Convert.ToInt32(szPesel[1].ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String szDate = rok.ToString() + &quot;-&quot; + (mies &amp;lt; 10 ? &quot;0&quot; + mies.ToString() : mies.ToString()) + &quot;-&quot; + (dzien &amp;lt; 10 ? &quot;0&quot; + dzien.ToString() : dzien.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DateTime dt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bResult = DateTime.TryParse(szDate, out dt);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;else return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;return bResult;&lt;br /&gt;} &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/7321871528089020279/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-pesel-w-c.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/7321871528089020279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/7321871528089020279'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/walidacja-numeru-pesel-w-c.html' title='Walidacja numeru Pesel w C#'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-4490147481839151696</id><published>2012-07-02T15:24:00.002+02:00</published><updated>2012-07-02T15:24:40.434+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MFC - funkcje"/><title type='text'>Weryfikacja numeru pesel w MFC C++</title><content type='html'>Dzisiaj prezentuję funkcję weryfikującą numer Pesel.&lt;br /&gt;
Funkcja sprawdza zgodność numerów pesel z zakresu 1800 - 2200 roku (w przybliżeniu).&lt;br /&gt;
Weryfikowana jest suma kontrolna oraz logika zapisu samego numeru pesel.&lt;br /&gt;
Funkcja zwraca true - jeśli numer pesel jest poprawny, false jeśli błędny.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
BOOL CheckPesel(CString a_Pesel)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL res=false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL sumResult = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int suma = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int tabSum[] = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CString mDate = &quot;&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(a_Pesel.GetLength() &amp;gt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; suma += tabSum[i] * stoi(a_Pesel[i]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if ((suma % 10) == 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sumResult = ((suma % 10) == stoi(a_Pesel[10]));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sumResult = ( (10 - (suma % 10)) == stoi(a_Pesel[10]));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(sumResult){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int year = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int month = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int day = stoi(a_Pesel.Mid(4,2));&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(a_Pesel[2] == &#39;0&#39; || a_Pesel[2] == &#39;1&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; year = 1900;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; month = stoi(a_Pesel[2]) * 10 + stoi(a_Pesel[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else if (a_Pesel[2] == &#39;2&#39; || a_Pesel[2] == &#39;3&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; year = 2000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; month = stoi(a_Pesel[2] - 20) * 10 + stoi(a_Pesel[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else if (a_Pesel[2] == &#39;4&#39; || a_Pesel[2] == &#39;5&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; year = 2100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; month = stoi(a_Pesel[2] - 40) * 10 + stoi(a_Pesel[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else if (a_Pesel[2] == &#39;6&#39; || a_Pesel[2] == &#39;7&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; year = 2200;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; month = stoi(a_Pesel[2] - 60) * 10 + stoi(a_Pesel[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }else if (a_Pesel[2] == &#39;8&#39; || a_Pesel[2] == &#39;9&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; year = 1800;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; month = stoi(a_Pesel[2] - 80) * 10 + stoi(a_Pesel[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; year += stoi(a_Pesel[0]) * 10 + stoi(a_Pesel[1]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mDate = itos(year) + &quot;-&quot; + itos(month) + &quot;-&quot; + itos(day);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; COleDateTime tm;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; res=tm.ParseDateTime(mDate);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AfxMessageBox(&quot;Nieprawidłowy numer Pesel&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return res;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;


&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/4490147481839151696/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/weryfikacja-numeru-pesel-w-mfc-c.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/4490147481839151696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/4490147481839151696'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/weryfikacja-numeru-pesel-w-mfc-c.html' title='Weryfikacja numeru pesel w MFC C++'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-3411289719136450182</id><published>2012-07-02T15:16:00.000+02:00</published><updated>2012-07-02T15:16:50.421+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MFC - funkcje"/><title type='text'>Hex to Int</title><content type='html'>Prosta funkcja konwertująca Hex CString na Int&lt;br /&gt;
&lt;code&gt;int hstoi(CString hexString)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; int value = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; CString hex = &quot;0123456789ABCDEF&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; hexString.MakeUpper();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; for(int i = 0; i&amp;lt;hexString.GetLength(); i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; value=(value*16) + hex.Find(hexString.GetAt(i));&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; return value;&lt;br /&gt;}&lt;hexstring.getlength(); +=&quot;&quot; &lt;=&quot;&quot; code=&quot;&quot; hex.find(hexstring.getat(i));=&quot;&quot; i++)=&quot;&quot; return=&quot;&quot; value;=&quot;&quot; value=&quot;(value*16)&quot; {=&quot;&quot; }=&quot;&quot;&gt;&lt;/hexstring.getlength();&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/3411289719136450182/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/hex-to-int.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/3411289719136450182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/3411289719136450182'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/hex-to-int.html' title='Hex to Int'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-1749784092521103894</id><published>2012-07-02T15:12:00.002+02:00</published><updated>2012-07-02T15:12:29.435+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MFC - funkcje"/><title type='text'>CString to Int</title><content type='html'>Prosta funkcja konwertująca CString na Int&lt;br /&gt;
&lt;code&gt;
int stoi(CString a_Str)
{&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;int res = INT_MIN;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;try
{
 res = atoi( a_Str );
}&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;catch(CException * e)&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;{
 e = e;
}&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;return res;
}


&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/1749784092521103894/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/cstring-to-int.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1749784092521103894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1749784092521103894'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/cstring-to-int.html' title='CString to Int'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-7409937606441622228</id><published>2012-07-02T15:00:00.001+02:00</published><updated>2012-07-02T15:00:40.423+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MFC - funkcje"/><title type='text'>Int to CString</title><content type='html'>Prosta funkcja zwracająca CString przy konwersji int&lt;br /&gt;
&lt;code&gt;
CString itos(const int aInt)
{
 char buf[20];
 return _itoa( aInt, buf, 10 );
}
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/7409937606441622228/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/07/int-to-cstring.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/7409937606441622228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/7409937606441622228'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/07/int-to-cstring.html' title='Int to CString'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-4267970805839043126</id><published>2012-06-29T13:44:00.000+02:00</published><updated>2012-06-29T14:02:02.110+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="InstallShield - Porady"/><title type='text'>Tworzenie Upgrade do projektu Basic MSI w Install Shield 2008</title><content type='html'>&amp;nbsp;&amp;nbsp;&amp;nbsp; Tworzenie upgrade do projektu MSI należy zaplanować już przy tworzeniu instalatra MSI.&lt;br /&gt;
Jeżeli zakładamy,że nasz projekt będzie upgradowany a zazwyczaj tak jest, to musimy wykonać pewne kroki na początku. Najważniejszą rzeczą do wykonania jest ustawienie wersji produktu &quot;&lt;i&gt;Version&lt;/i&gt;&quot; w &quot;&lt;i&gt;Product properties&lt;/i&gt;&quot; na drzewie &quot;&lt;i&gt;General Information&lt;/i&gt;&quot;. Ustawiamy tutaj wersję, która będzie rozpoznawana przez instalator podczas instalowania Upgrade-u np: 1.0.0000&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tworzenie Upgrade do istniejącej instalacji MSI. &lt;/b&gt;&lt;br /&gt;
Przy tworzeniu upgrada do istniejącej paczki MSI możemy wykonać tylko &lt;i&gt;Major Upgrade&lt;/i&gt;, do wersji Minor Upgrade potrzebny jest plik setup.exe. Dla paczek MSI (&lt;i&gt;Single MSI Image&lt;/i&gt;) wykonujemy tylko Major Upgrade.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 1. Wersja produktu&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Pierwszą rzeczą, którą powinniśmy zrobić to ustawić nową (nowszą) wersję produktu np: 1.1.0000 (&lt;i&gt;Installation Information-&amp;gt;General Information-&amp;gt;Product Properties-&amp;gt;Version&lt;/i&gt;). Zwróć uwagę na właściwość &lt;i&gt;Product Code&lt;/i&gt;, &lt;i&gt;Upgrade Code&lt;/i&gt;.&lt;br /&gt;
Właściwość &lt;i&gt;Upgrade Code&lt;/i&gt; musi być taka sama dla całego projektu instalatora. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 2. Kody produktów&lt;/b&gt;&lt;br /&gt;
Aby nasz Upgrade można było odinstalować i wrócić do poprzedniej wersji należy wygenerować nowy &lt;i&gt;Product Code&lt;/i&gt; a także nowy &lt;i&gt;Package Code&lt;/i&gt; w &quot;&lt;i&gt;Summary Information Stream&lt;/i&gt;&quot;.&lt;br /&gt;
Nie zmieniamy Upgrade Code!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 3. Przygotowanie Instalatora do Upgrade&lt;/b&gt;&lt;br /&gt;
Na drzewie Media-&amp;gt;Upgrades rozwijamy gałąź &quot;&lt;i&gt;Upgrade Windows Installer Setup&lt;/i&gt;&quot; i dodajemy nowy &quot;&lt;i&gt;Major Upgrade Item&lt;/i&gt;&quot;.&lt;br /&gt;
W zakładce &quot;Common&quot; nowego Upgrade wybieramy dla której wersji produktu Upgrade będzie miał zastosowanie:&lt;br /&gt;
- dla każdej wcześniejszej (&lt;i&gt;Any earlier version&lt;/i&gt;), czy może dla zakresu wersji produktu albo dla wybranej wersji.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 4. Wymiana plików&lt;/b&gt;&lt;br /&gt;
W tym kroku należy wymień wszystkie pliki które mają być zaktualizowane na wersję użytą w Upgrade.&lt;br /&gt;
Ważne. Każdy plik musi posiadać zaszytą nowszą wersje, aby został upgradowany. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 5. Ustawienia Upgrade.&lt;/b&gt;&lt;br /&gt;
Klikając na drzewo &quot;&lt;i&gt;Upgrade Windows Installer Setup&lt;/i&gt;&quot; wyświetlamy właściwości instalacji Upgrade. Mamy 2 opcje do wyboru: Całkowie usunięte starej instalacji i zainstalowanie nowej lub też zainstalowanie Upgrade-u i usunięcie niepotrzebnych plików.&lt;br /&gt;
W większości przypadkach zalecana jest opcja pierwsza.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 6. Budowanie paczki&lt;/b&gt;&lt;br /&gt;
W ostatnim kroku budujemy projekt tworząc nową paczkę MSI typu &quot;&lt;i&gt;MSI Single Image&lt;/i&gt;&quot;.</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/4267970805839043126/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/06/tworzenie-upgrade-do-projektu-basic-msi.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/4267970805839043126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/4267970805839043126'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/06/tworzenie-upgrade-do-projektu-basic-msi.html' title='Tworzenie Upgrade do projektu Basic MSI w Install Shield 2008'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-867925247573905986</id><published>2012-02-16T12:16:00.001+01:00</published><updated>2012-02-16T12:16:52.470+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Konwersja IList do DataSet - IList to DataSet</title><content type='html'>Poniżej funkcja konwertująca Ilist-ę do DataSet-a&lt;br /&gt;
Param: IList&lt;br /&gt;
Return: DataSet&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
public static DataSet ConvertToDataSet&amp;lt;T&amp;gt;(IList&amp;lt;T&amp;gt; list)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; if (list == null || list.Count &amp;lt;= 0)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; DataSet ds = new DataSet();&lt;br /&gt;&amp;nbsp; DataTable dt = new DataTable(typeof(T).Name);&lt;br /&gt;&amp;nbsp; DataColumn column;&lt;br /&gt;&amp;nbsp; DataRow row;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; foreach (T t in list)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (t == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; row = dt.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp; for (int i = 0, j = myPropertyInfo.Length; i &amp;lt; j; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Reflection.PropertyInfo pInfo = myPropertyInfo[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string name = pInfo.Name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dt.Columns[name] == null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; column = new DataColumn(name, pInfo.PropertyType);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (NotSupportedException)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; column = new DataColumn(name, Nullable.GetUnderlyingType(pInfo.PropertyType));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; column = new DataColumn(name, typeof(object));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dt.Columns.Add(column);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[name] = pInfo.GetValue(t, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; dt.Rows.Add(row);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;ds.Tables.Add(dt);&lt;br /&gt;&amp;nbsp;return ds;&lt;br /&gt;}&lt;br /&gt;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/867925247573905986/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/02/konwersja-ilist-do-dataset-ilist-to.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/867925247573905986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/867925247573905986'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/02/konwersja-ilist-do-dataset-ilist-to.html' title='Konwersja IList do DataSet - IList to DataSet'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-6179826238888097981</id><published>2012-01-04T09:42:00.000+01:00</published><updated>2012-01-04T09:42:03.044+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Domyślny parametr funkcji</title><content type='html'>&lt;h3&gt;

Czasami zachodzi potrzeba ustawienie domyślnego parametru przekazywanego funkcji&lt;/h3&gt;
Aby to wykonać należy sprawdzić czy parametr został zdefiniowany przy przekazaniu np:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
function ShowSelected(bCategory)&lt;br /&gt;
{&lt;br /&gt;&amp;nbsp;&amp;nbsp;
  bCategory = typeof(bCategory) != &#39;undefined&#39; ? bCategory : true; &lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
w tym przypadku domyślny parametr jest typu &lt;b&gt;bool&lt;/b&gt; i jeżeli nie został przekazany to domyślną wartością jest &lt;i&gt;true&lt;/i&gt;;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/6179826238888097981/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2012/01/domyslny-parametr-funkcji.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/6179826238888097981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/6179826238888097981'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2012/01/domyslny-parametr-funkcji.html' title='Domyślny parametr funkcji'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-2177452104606191097</id><published>2011-06-08T13:42:00.001+02:00</published><updated>2011-06-08T13:43:06.658+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger"/><title type='text'>Jak wyświetlić ilość dodanych dzisiaj postów na blogu</title><content type='html'>W sekcji Head szablonu Blogger-a dodajemy funkcję&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;script type=&quot;text/javascript&quot; &amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;//&amp;lt;![CDATA[&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp;function GetCountPostToday(json){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var currDate = new Date();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;var CountToday = 0; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var date = currDate.getFullYear()+&#39;-&#39;+((currDate.getMonth()+1)&amp;lt;10 ? &#39;0&#39;+(currDate.getMonth()+1) : (currDate.getMonth()+1))+&#39;-&#39;+(currDate.getDate()&amp;lt;10 ? &#39;0&#39;+currDate.getDate():currDate.getDate());&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i=1; i&amp;lt;=json.feed.entry.length ; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (json.feed.entry[i].published.$t.substring(0,10)==date ) CountToday ++; else break;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; document.write(CountToday); &lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;//]]&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
W szablonie wywołujemy skrypt w miejscu w którym ma być wyświetlona ilość postów publikowanych tego dnia&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;script src=&quot;http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&amp;amp;start-index=1&amp;amp;max-results=100&amp;amp;callback=GetCountPostToday&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Pamiętają o zmianie adresu bloga :)&lt;br /&gt;
&lt;br /&gt;
Rozwiązanie to ma ograniczenie do 100 postów dziennie. Zmieniając parametr&amp;nbsp; &lt;i&gt;max-results&lt;/i&gt; określimy ilość sprawdzanych postów (max 500)</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/2177452104606191097/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2011/06/jak-wyswietlic-ilosc-dodanych-dzisiaj.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/2177452104606191097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/2177452104606191097'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2011/06/jak-wyswietlic-ilosc-dodanych-dzisiaj.html' title='Jak wyświetlić ilość dodanych dzisiaj postów na blogu'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-3508968073196888473</id><published>2011-06-08T13:16:00.004+02:00</published><updated>2011-06-08T13:22:18.891+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger"/><title type='text'>Jak używać JavaScript w szablonie Bloggera</title><content type='html'>Aby skorzystać ze skryptu JavasScript w szablonie bloggera, należy skrypt odpowiednio poprzedzić sekcją. Pamiętając o umieszczeniu definicji skryptu w sekcji HEAD&lt;br /&gt;
&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
//&amp;lt;![CDATA[&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ...skrypt...&lt;br /&gt;
i zakończyć sekwencją znaków&amp;nbsp;&lt;br /&gt;
//]]&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/3508968073196888473/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2011/06/jak-uzywac-javascipt-w-szablonie.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/3508968073196888473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/3508968073196888473'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2011/06/jak-uzywac-javascipt-w-szablonie.html' title='Jak używać JavaScript w szablonie Bloggera'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-1463268131712456006</id><published>2011-05-26T09:22:00.000+02:00</published><updated>2011-05-26T09:22:28.102+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS"/><title type='text'>Jak ustawić przezroczystość elementów w css</title><content type='html'>&lt;style type=&quot;text/css&quot;&gt;
  .test1 { opacity: .5;}
&lt;/style&gt;&lt;br /&gt;
Przezroczystość elementów na stronie w css najlepiej pokazać na przykładzie.&lt;br /&gt;
Oczywiście jest to zależne od przeglądarki. &lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;background-color: #6374ab; color: white; padding: 3px; width: 100%;&quot;&gt;Test bez użycia przezroczystość&lt;br /&gt;
&lt;/p&gt;&lt;p style=&quot;background-color: #6374ab; color: white; opacity: 0.5; padding: 3px; width: 100%;&quot;&gt;Test z użyciem przezroczystość&lt;/p&gt;&lt;br /&gt;
&lt;code&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; .test1 { opacity: .5; }&amp;nbsp; //firefox, mozilla,etc.&lt;br /&gt;
&amp;nbsp; .test2 { filter: alpha(opacity=50); } //IE 6-7&lt;br /&gt;
&amp;nbsp; .test3 { -ms-filter:&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=50)&quot;; } //IE8-9&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Do ustawienie działania w różnych wersjach IE zachowujemy kolejność&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
-ms-filter:&quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=50)&quot;;&lt;br /&gt;
filter: alpha(opacity=50);&lt;br /&gt;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/1463268131712456006/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2011/05/jak-ustawic-przezroczystosc-elementow-w.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1463268131712456006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/1463268131712456006'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2011/05/jak-ustawic-przezroczystosc-elementow-w.html' title='Jak ustawić przezroczystość elementów w css'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-5422986849047483204</id><published>2011-05-20T14:00:00.002+02:00</published><updated>2011-10-05T07:46:25.336+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger"/><title type='text'>Dynamiczna, alfabetyczna lista postów blogu jako oddzielna strona</title><content type='html'>Aby utworzyć dynamiczną, alfabetyczną listę postów na blogu należy (krok po kroku):&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;dodać widget stron do bloggera&lt;/li&gt;
&lt;li&gt;utworzyć na blogerze oddzielną stronę np: Spis alfabetyczny&lt;/li&gt;
&lt;li&gt;wprowadzić odpowiedni kod funkcji javascript, korzystający z formatu JSON&lt;/li&gt;
&lt;li&gt;wstawić skrypt pobierający posty z bloga.&lt;/li&gt;
&lt;li&gt;wykonać skrypt wyświetlający listę&lt;/li&gt;
&lt;/ol&gt;A więc do dzieła. Krok 1,2 pominę gdyż chyba zrozumiałe i pokaże krok 3 i 4&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 3 &lt;/b&gt;&lt;br /&gt;
Tworzymy skrypt js jako treść postu, w tym wypadku strony&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;script style=&quot;text/javascript&quot;&amp;gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Definiujemy tablicę, do której będziemy dodawać posty&lt;br /&gt;
&lt;code&gt;&amp;nbsp;var tabentry = new Array();&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Teraz funkcję zwrotną odczytującą posty w formacie JSON i zapisującą posty do tablicy&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; function ListaPostow(json) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (entry = json.feed.entry[i++])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tabentry.length++;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tabentry[tabentry.length-1] = entry;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Dodajemy funkcję sortującą tablicę postów po tytułach postów&lt;br /&gt;
&lt;code&gt;function SortByTitle(a,b) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (b.title.$t==a.title.$t) return 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (a.title.$t&amp;gt;b.title.$t) { return 1; } &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return -1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Na koniec funkcję, która wyświetli nam posortowaną listę postów na stronie.&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp; function ShowListEntry() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tabentry.sort(SortByTitle); //sortuj tablicę&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;table&amp;gt;&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&quot;2&quot;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;h1&amp;gt;Lista alfabetyczna&amp;lt;/h1&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#39;); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i = 0 ; i&amp;lt;tabentry.length ; i++) &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;tr&amp;gt;&amp;lt;td style=&quot;padding-right:10px;&quot;&amp;gt;&amp;lt;li&amp;gt;&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var posturl;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k = 0; k &amp;lt; tabentry[i].link.length; k++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (tabentry[i].link[k].rel == &#39;alternate&#39;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; posturl = tabentry[i].link[k].href;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;a href=&quot;&#39;+posturl+&#39;&quot;&amp;gt;&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(tabentry[i].title.$t);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/td&amp;gt;&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;td&amp;gt;(&amp;lt;i&amp;gt;&#39;+ tabentry[i].category[0].term+&#39;)&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(&#39;&amp;lt;/ul&amp;gt;&amp;lt;/table&amp;gt;&#39;);&lt;br /&gt;
}&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
W tej funkcji wyświetlam listę w postaci tabeli wraz z nazwami przypisanych etykiet do postów.&lt;br /&gt;
&lt;br /&gt;
Zamykamy znacznik skryptu&lt;br /&gt;
&lt;code&gt;&amp;lt;/script&amp;gt; &lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 4 &lt;/b&gt;&lt;br /&gt;
Wykonujemy skrypt pobierający listę postów oraz wyświetlamy ją na stronie:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;script src=&quot;http://&lt;b&gt;progbis&lt;/b&gt;.blogspot.com/feeds/posts/default?alt=json-in-script&amp;amp;start-index=1&amp;amp;max-results=500&amp;amp;callback=ListaPostow&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
Pamiętając o podmianie adresu swojego bloga.&lt;br /&gt;
&lt;br /&gt;
Skrypt ten działa do 500 postów, gdyż tyle jednorazowo można pobrać. Jeśli macie więcej to należy odpowiednio dopisać.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;script src=&quot;http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&amp;amp;start-index=501&amp;amp;max-results=500&amp;amp;callback=ListaPostow&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
i więcej...&lt;code&gt; &lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;lt;script src=&quot;http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&amp;amp;start-index=1001&amp;amp;max-results=500&amp;amp;callback=ListaPostow&quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script&amp;gt;ShowListEntry();&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Krok 5 &lt;/b&gt;&lt;br /&gt;
Wykonujemy&lt;b&gt; &lt;/b&gt;funkcję, która wyświetli nam posortowaną listę postów &lt;br /&gt;
&lt;code&gt;&amp;lt;script&amp;gt;ShowListEntry();&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Jak to działa? Sprawdźcie listę wg kategorii na moim blogu&lt;br /&gt;
Więcej informacji o formacie JSON i postów bloga znajdziesz pod adresem &lt;a href=&quot;http://beautifulbeta.wikidot.com/json-feeds&quot;&gt;http://beautifulbeta.wikidot.com/json-feeds&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/5422986849047483204/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2011/05/dynamiczna-alfabetyczna-lista-postow.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/5422986849047483204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/5422986849047483204'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2011/05/dynamiczna-alfabetyczna-lista-postow.html' title='Dynamiczna, alfabetyczna lista postów blogu jako oddzielna strona'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-5627231252392341576</id><published>2011-05-19T11:38:00.000+02:00</published><updated>2011-05-19T11:38:55.858+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger"/><title type='text'>Jak wyświetlić ilość postów i komentarzy na blogu</title><content type='html'>Jeśli chcesz aby na twoim blogu pojawiła się informacja o tym ile zmieściłeś postów oraz ile dodano komentarzy, należy posłużyć się javascipt-em i formatem JSON.&lt;br /&gt;
Skrypt najlepiej umieścić w widgecie, w którym informacji o ilości postów czy komentarzy będzie wyświetlana.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;script style=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
function numposts(json) {&lt;br /&gt;
document.write(&#39;Ten blog opublikował &#39; + json.feed.openSearch$totalResults.$t + &#39; postów&#39;);&lt;br /&gt;
}&lt;br /&gt;
function numcomments(json) {&lt;br /&gt;
document.write(&#39; oraz &#39; + json.feed.openSearch$totalResults.$t + &#39; komentarzy&#39;);&lt;br /&gt;
}&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Po czym umieścić w miejscu w którym wyświetlić informację wywołanie skryptu&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;code class=&quot;codebox&quot;&gt;&amp;lt;script src=&quot;http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&amp;amp;callback=numposts&quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script src=&quot;&lt;/code&gt;&lt;code class=&quot;codebox&quot;&gt;http://progbis.blogspot.com&lt;/code&gt;&lt;code class=&quot;codebox&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;/span&gt;/feeds/comments/default?alt=json-in-script&amp;amp;callback=numcomments&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
pamiętając o podmianie adresu twojego bloga.</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/5627231252392341576/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2011/05/jak-wyswietlic-ilosc-postow-i.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/5627231252392341576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/5627231252392341576'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2011/05/jak-wyswietlic-ilosc-postow-i.html' title='Jak wyświetlić ilość postów i komentarzy na blogu'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1707704340105849958.post-8987048702517714499</id><published>2011-04-28T15:21:00.000+02:00</published><updated>2011-04-28T15:21:05.202+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Richtextbox problem różnych czcionek w c# Net</title><content type='html'>Problem występuje w sytuacji, gdy zaczytujesz z pliku lub wklejasz ze schowka zaznaczony fragment tekstu.&lt;br /&gt;
W richtextbox-ie wyświetlane są różne czcionki o różnych wielkościach znaków, szczególnie przy polskich znaków.&lt;br /&gt;
Aby temu zapobiec należy bezpośrednio w designerze dopisać linijkę przed ustawieniem fontów.&lt;br /&gt;
&lt;br&gt;&lt;br /&gt;
&lt;code&gt;this.richTextBox1.LanguageOption = System.Windows.Forms.RichTextBoxLanguageOptions.AutoKeyboard;&lt;/code&gt;&lt;br&gt;&lt;br /&gt;
i problem znika</content><link rel='replies' type='application/atom+xml' href='http://progbis.blogspot.com/feeds/8987048702517714499/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://progbis.blogspot.com/2011/04/richtextbox-problem-roznych-czcionek-w.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/8987048702517714499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1707704340105849958/posts/default/8987048702517714499'/><link rel='alternate' type='text/html' href='http://progbis.blogspot.com/2011/04/richtextbox-problem-roznych-czcionek-w.html' title='Richtextbox problem różnych czcionek w c# Net'/><author><name>Przemas</name><uri>http://www.blogger.com/profile/14416747202328098016</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>