Wednesday, December 4, 2013

විවිධ පරිඝණක භාෂා වලදී වාක්‍ය එකට ඇමිණීම හෙවත් String Concatenation



                   මාතෘකාවෙදි මම දන්න සිංහලෙන් කිව්වවගේ නෙමෙයි ඊලගට තියෙන ඉංග්‍රීසි නමින් නම් හැමෝම මේ ගැන දන්නව, අහල තියෙනව. කෙනෙකුට හිතෙන්න පුළුවන් මේකත් blog එකේ දාන්න දෙයක්ද කියල, ඇත්ත හරිම සරල දෙයක් තමයි, මම හිතනව අපි හැමෝම එදිනෙදා programming කරන කොට දහස් වාරයකට වඩා යොදා ගෙන ඇති. ඉතින් මෙතනදි මගේ අරමුණ අපිට සමීප programming හා scripting භාෂා කිහිපයකදී කොහොමද යෙදෙන්නේ කියල ඒක තැනකදී පැහැදිලි කිරීමයි.

අපි පිළිවෙලින් ඒවා බලාගෙන යමු......
     
C#
String str = "Coding" + "Sinhalen";


Visual Basic
Dim str As String = "Coding" + "Sinhalen"
Dim str As String = "Coding" & "Sinhalen"


Microsoft Access/MSSQL Server
Select 'Coding' + 'Sinhalen'


Oracle
Select 'Coding' || 'Sinhalen'


MySQL/MSSQL Server 2012
Select CONCAT('Coding','Sinhalen')


php
$Str = "Coding" . "Sinhalen";


JavaScript
var Str = "Coding" + "Sinhalen";


Java
String str = "Coding" + "Sinhalen";

මට මතක් උන ටික දැම්ම කට්ටියට තව මතක් වෙනවනම් කියන්න මම ඒවත් දාන්නම්... ආයෙත් දවසක හමු වෙමු...
Read More

Friday, November 8, 2013

කව්ද කැමති Microsoft Certified Solutions Developer (MCSD) කෙනෙක් වෙන්න ? - හැඳින්වීම


                  කොඩින් සිංහලෙන් කණ්ඩායමේ තවත් එක් ප්‍රයත්නයක් විදිහට අද සිට අපි ගෙන එන නවතම පාඩම් මාලාව ගැන කියන්නයි මේ හඳන්නේ. ගොඩක් අය MCSD ගැන අහල ඇති, ඒ වගේම කරපු අයත් ඇති, තවත් පිරිසක් ඉන්නම මේ ගැන මුකුත්ම දන්නේ නැති. ඉතින් මේ හැම කොටසමට මම ආරාධනා කරනව අපිත් එක්ක මේ දැණුම බෙදා හදා ගෙන ඉදිරියට යමු කියල.
                  හරි අපි දැන් බලමු කව්ද මේ Microsoft Certified Solutions Developer කෙනෙක් කියන්නේ කියල, Software industry එකත් එක්ක ඉන්න අය දන්නව අද වන විට මෘදුකාංග ලෝකයේ එක් ප්‍රධාන කොටස් කරුවෙක් වන්නේ Microsoft සමාගමයි. මේ සමාගමට අයත් පරිඝණක භාෂා උපයොගී කරගෙන විවිධාකරයේ මෘදුකාංග ලියවෙනව. අපි හැමොම වගේ දන්න Visual Basic.Net වගේම C#.Net, ASP.Net ද අයත් වන්නේ මේ සමාගමටයි. අපි මේ භාෂා විවිධාකාරයේ ක්‍රමමගින් ඉගෙන ගන්නව. සමහර අයෙක් තනිවම පොතක් කියවල හෝ වෙනත් ආකාරයේ tutorial එකක් ආධාරයෙන් ඒ හැකියාව ලබා ගනිද්දි තවත් අයෙක් උපකාරක පන්තියක ආධාරය සහිතව හෝ වෙනත් ආයතනයකින් එය ලබා ගන්නව. මේ මොන ක්‍රමයට දැනුම ලබා ගත්ත් මේ හැම දෙනාම ඉල්ලුම් කරන්නේ ඒකම රැකියාවකටයි. මෙ හැමොගෙම දැනුම මට්ටම ආයතනික වශයෙන් මැන ගැනීම අත්‍යවශ්‍යයි. මෙන්න මේ කාර්යය පහසුකර ගැනීමට හා තම තමන්ගේ පෞද්ගලික දැනුම් මට්ටම හා හැකියාව සඳහා සහතියක ලබා ගැනීමේ අරමුණින් Microsoft සමාගම හඳුන්වාදී ඇති වැඩසටහනකි මේ. මෙහි වටිනාකම වන්නේ මෙය ජාත්‍යන්තර වශායෙන් පිළිගැනීමක් ඇති සහතිකයක් වීමයි. 
                        මම මේ පාඩම් මාළාව තුළීන් බලාපොරොත්තු වන්නේ ඔබට MCSD : Web Applications යන සහතිකය ලබා ගැනීමට අවශ්‍ය දැනුම ලබා දීමටයි. මේ සඳහා ඔබ විභාග 3ක් සම්පූර්ණ කල යුතු වෙනවා.


                       මම හිතුව Exam 486 - Developing ASP.NET 4.5 MVC Web Applications කියන විභාගයෙන් මේ පටන් ගන්න මොකද මේ දවස් වල MVC ඉතාමත් උණුසුම් මාතෘකාවක් වෙලා තියෙන නිසා. මේ සඳහා Microsoft සමාගම විසින්ම උපකාරක පොතක් නිකුත් කරල තියෙනව,


                  පුළුවන් නම් හොයා ගෙන කියවන්න. මිලදී ගන්නවානම් Ebay හෝ Amerson වෙබ් අඩවිවලින් ගන්න පුළුවන්. (වෙනත් ක්‍රම වලිනුත් හොයා ගන්න පුළුවන් වේවි සමහර විට) අපි මීළග පාඩමේ ඉදල සවිස්තරාත්මකව පාඩම් ඉගෙන ගමු. යන්න කලින් මතක් කරන්න ඕන මේ exam ලංකාවේදී පවත්වන ආයතන තියෙනව ඒ අයත් එක්ක සම්බන්ධ වෙලා ඔයාලට මේ විභාග වලට අයදුම් කරන්න පුළුවන්. මුදලනම් ඉතින් වෙනස් වන සුළුයි.  එහෙනම් අපි ඊලග පාඩමෙන හමු වෙමු.



                              
Read More

Friday, August 2, 2013

Java ඉතිහාසයෙන් බිඳක්

අද Java තාක්ෂණයෙන් සවිබල ගැන්වෙන එදිනෙදා ජීවිතයේ අත්‍යවශ්‍ය අංග අති විශාලය. ඔබේ Smart phone යේ සිට සෑම අස්සක් මුල්ලක් නෑරම විවිධ අයිතමයන් පණගැන්වෙන්නෙ Java මගිනි. මෙසේ අද වන විට Java තාක්ෂණය එදිනෙදා දිවියට නැතිවම බැරි අංගයක් වන්නට ප්‍රථම එහි ආගමනය ගැන සැකෙවින් බලමු.

90 දශකයේ ආරම්භය වන විට ලෝකය තාක්ෂණික අතින් විශාල වෙනස්කම් රැසකට මුහුණපාමින් සිටියා. ඇත්තෙන්ම 90 දශකය වන විට ලෝකය පරිගණක ජාලකරණය මගින් එකිනෙකා සම්බන්ද වීම විප්ලවීය වෙනසක් කරමින් මිනිසුන්ගේ එදිනෙදා සමබදතාවයන් කරාම පැමිනෙමින් පැවතියා.

මේ අතර 1991 දී Sun microsystem  ආයතනයේ ඉන්ජිනේරුවන් පිරිසක් Green Team ලෙස හදුන්වන ලදුව විශවාස කරනු ලැබුවා ලෝකයේ පරිගණක තාක්ෂණයේ මීලග රැල්ල වන්නෙ පාරිභෝගික ඩිජිටල් අයිතමයන් (ජංගම දුරකථන වැනි) සහ පරිගණක අතර ඒකතුව බව. ජේම්ස් ගැසලින් (James Gosling)  නමැත්තා විසින් මෙහෙයවනු ලැබූ මෙම කණ්ඩායම ලොව විශාල පෙරලියක් කළ JAVA පරිගණක භාෂාව සහ එහි තාක්ෂණය ලොවට දායාද කිරිමෙහි වෙහෙසුනා. එහි ප්‍රථිලයක් ලෙස අද ලොව තාක්ෂණික පෙරලියක් කරමින් Java පරිගණක භාෂාව වැජඹෙනවා..

Green team එක මගින් මුලින්ම ඔවුන්ගේ නව පරිගණක භාෂාව ඉදිරිපත් කලේ Cable TV කරාමාන්තය ඉලක්ක කර ගත් සිත්ගන්නාසුලු කුඩා ප්‍රමාණයේ නිවසේ භාවිතාකල හැකි පරිපාලක උපකරණයක් සමගින්. නමුත් මෙම සංකල්පය ඔවුන්ට එදා හැටියට අතිශය සංකීර්ණ දෙයක් වුනා. නමුත් එය ඉතා හොදින් ගැලපුනා 1995සිට අරඹුන අන්තර්ජාල තාක්ෂණයත් සමග. මෙම කණ්ඩායම නිවේදනය කලා Java, Netscape Navigator browser ය සමග අන්තර්ගත කරන බව.

අද Java අන්තර්ජාලයට සීමාවූ දෙයක් නෙමෙයි. අත එදිනෙදා අපි භාවිතා කරන ජංගම දුරකථනයේ සිට බොහෝමයක් අයිතමයන්ගේ සැගවුන බලකාය ලෙස සිටින්නෙ Java. ඇත්තෙන්ම අද ජාවා හැමතැනම, හැම දේකම තියනවා.

Java time line එක නැරමීමට පිවිසෙන්න. 

ජාවා රස විඳින්න!

Java සහ .Net අතර විරසකය!
















ජාවා නවතා දැමුනු ලෝකය!!



Java Programmers RAP
















ඉතින් Coding සිංහලෙන් අපි සමග සිට ජාවා අලුත් මුහුණුවරකින් ඉගෙන ගනිමු... එතෙක් ඔබට ජය!!!
Read More

Saturday, June 29, 2013

9. C නවවන පාඩම - C හි ශ්‍රිත භාවිතය (Functions/Methods in C)



ශ්‍රිත (Function) යනු කේත කොටසකි(Block of code). මෙය සෑම පරිගණක භාෂාවකදිම දැකිය හැකි තවත් වැදගත් අංගයකි. අනෙක් සැමගේ මෙන්ම C හිදීද Function ප්‍රධාන ආකාර දෙකක් පවති. ඒවා නම් C හි පවතින Built-in function සහ පරිශීලකයා විසින් හඳුන්වාදෙන ලද (User define) function ලෙසයි. අප function භාවිතා කරනු ලබන්නේ ක්‍රමාලේඛයක යම් කොටසක් නැවත නැවත යොදාගැනීම (re-usability) පහසු කරගැනීමට සහ programming structure එක ගොඩනගාගැනීමටය.

දැනටමත් අපි C භාවිතයේදි මෙවැනි function භාවිතා කර ඇත්තෙමු. ඔබ මෙතෙක් ලියූ සෑම කේතයකදීම main() ලෙස function එකක් ලියා ඇත. මෙම main() function එක පාඩම ආරම්භයේදි විස්තර කල ආකාරයටම functions කීපයක් ඇති ක්‍රමලේඛයකදි වුවත් මුලින්ම ධාවනය වන function එකයි.

අපි දැන් User define functions ගැන සලකා බලමු.

Function එකක් define කිරීමේදි පහත සඳහන් ව්‍යුහය එක අනුගමනය කල යුතුය.

return-type function_name ( arg_type arg1, ..., arg_type argN )
{
    //Function body
}

උදාහරණයක් මගින් එය පැහැදිලිකරගනිමු.

int calc(int a, int b){
  int result; 
  result = a + b; 
  return result;
}
ඉහත උදාහරණයක සලකන්න. එහිදි calc ලෙස user define function එකක් ඇති අතර එම function එක තුලට a සහ b ලෙස integer විචල්‍ය argument දෙකක් ලබාදී ඇත. Function එක තුලදී මෙම a සහ b අගයන් එකට එකතු වී පිළිතුර result යන විචල්‍ය තුල ගබඩා කරගෙන එය return කර ඇත. මෙහි return යන keyword එක භාවිතා කිරීමෙන් සිදුවන්නෙ මෙම function එක අමතන (call) තැනදී එහි අගය ලබාගැනීමයි. එනම් මෙහිදී, a හා b හි අගයන් එකතු වී ලැබෙන පිලිතුර මෙම function එක call කරන ස්ථානයේදි ලබාගත හැකියි. මෙහිදී සැලකිළිමත් විය යුතු කරුණ වන්නේ අප function එකක return කල හැක්කෙ එහි return type එකේම අගයක් පමණි. මෙම උදාහරණයේදී calc function එකෙහි return  type එක int (Integer) ය. එනම් මෙම function එකෙන් integer අගයක් return කළ හැකිය.

දැන් මෙලෙස ක්‍රමලේඛ කල function එකක් යම් තැනක භාවිතා කරන්නේ කෙසේදැයි බලමු. එනම් අප මෙලෙස ක්‍රමලේඛ කරගත් function එකක ක්‍රියාවලියට ආමන්ත්‍රණය කල යුතුය. නොඑසේනම් call කළ යුතුය. පහත සරළ උදාහරණය මගින් එය පැහැදිලි කර ගනිමු.

void main(){
 int x;
 x = calc(2,3);
 printf("%d",x);
}

මෙහිදී කර ඇත්තෙ ඉහතදී හඳුන්වා දුන් calc() නම් function එකට main() function එක තුලදී ආමන්ත්‍රණය කර එයට 2 සහ 3 යන අගයන් ලබා දීමයි. එහිදී පිලිවෙලින් a හා b සඳහා 2 සහ 3 අගයන් ලැබේ එවිට calc() තුලදි එහි result හි පිළිතුර ලෙස 5 ලැබෙන අතර එය එහි return අගය බැවින් main() තුළ x = calc(2,3) ලෙස ඇති බැවින් x සඳහා calc() හි return අගය ලැබේ. එනම් x සඳහා 5 යන අගය ලැබේ. printf මගින් එම x අගය මුද්‍රණය කර දක්වා ඇත.

යම් function එකක් තුලින් return අගයක් නැත්නම් එය void යන return type එකෙන් හඳුන්වාදිය හැකිය. එවිට එම function එක මගින් අගයක් return නොවන අතර එවැනි අවස්ථාවක එවැනි function එකකට call කිරීමෙදි එහි නම සහ ඇත්නම් argument pass කිරීම ප්‍රමාණවත්ය.

functionName();

Built-in functions යනු ක්‍රමලේඛ භාෂාවේ ඇති function වන අතර අපට ඒවායේ නාමකරණ අපේ function නැතිනම් user define function සඳහා භාවිතා කළ නොහැක. මෙහි අප භාවිතා කළ printf(). scanf() යනාදිය මෙන්ම තවත් නොයේකුත් අවශ්‍යතාවයන් සඳහා ක්‍රමලේඛ භාෂාව මගින් ලබාදී ඇති functions බොහෝමයක් ඇත.

Read More

Friday, June 14, 2013

ජාවා සිංහලෙන්


ලගදීම නවතම ජාවා පාඩම් මාලාවක් කොඩින් සිංහලෙන් අඩවියෙන් බලාපොරොත්තු වන්න....
Read More

Monday, June 3, 2013

HTML සිංහලෙන් පාඩම 14 - HTML Images

       
                       ගොඩක් කාලෙකින් තමයි අපි අද HTML පාඩමකින් හමුවෙන්නේ,  අද පාඩමෙන් අපි  HTML වලදී පින්තූර භාවිතා කරන්නේ කොහොමද කියල බලමු. මේ සඳහා අපිට උදව් වෙන්නේ <img> කියන HTML tag  එක තමයි. මේ tag එකේ අපිට ඉතාමත්ම වැදගත් වෙන attributes දෙකක් තියෙනව. ඒ "src" හා "alt" attributes දෙකයි. මෙයින් "src" attribute එක අපි භාවිතා කරන්නේ ආපේ  image file එකේ path එක ලබා දෙන්නයි. අපි භාවිතා කරන image එක තියෙන්නේ HTML file එක තිබෙන folder එක තුලමනම්, image file එකේ නම extension එක සමගින් ලබා දීම ප්‍රමාණත්.  එතකොට "alt" attribute එක ඕන වෙන්නේ alternate text එකක් ලබා දෙන්නයි. යම් කිසි හේතුවක් නිසා සමහර විට image එක load නොවෙන්න පුළුවන් අන්න ඒ වගේ වෙලාවකදී මේ alternate text එකට  user පෙන්න පටන් ගන්නව. 

<img src="path to image.jpg" alt="some text">

තව අපිට image එකේ දිග, පළල සඳහා අගයන් දෙන්න පුළුවන්,

<img src="path to image.jpg" alt="some text" height="480" width = "640">

අපි වෙබ් පිටුවකට Image එකක් එකතු කරනවා නම් එහි දිග, පළල සඳහන් කිරීම ඉතා වැදගත් එසේ කිරීමෙන් අපිට වෙබ් පිටුව සෑම විටකදී වගේම සෑම web broඅser එකකදීද නිසි ආකාරව දර්ශනය වීමට හැකියාව ලබා දෙනවා....

අපි තවත් පාඩමකින් හමු මෙමු............
Read More

Tuesday, May 28, 2013

Android Transaction App - SQLite Database in Android App - 3

Android Transaction App

SQLite Database in Android App - 3





       මාසයකට ආසන්න කාලයක් ලිපි පල කිරීමට නොහැකි වීම ගැන ඔයාල හැමෝගෙන්ම මම සමාව ඉල්ලනවා. මම ටිකක් කාර්ය බහුල වීම නිසා ඒ අතපසුවීම සිදුවුනා. එහෙනම් අපි නවත්වපු තැන් ඉදන් පටන්ගමු.

                     අපි අලුතින් App එකක් හදන්න පටන් ගත්තා. ඒ SQLite Database එකක් Android App එකක් ඇතුලේ භාවිතා කරන්නේ කොහොමද කියල ඉගෙන ගන්න. අපි හදමින් හිටිය App එකේ interfaces දෙකක් ගැන කතා කලා. එහි එකක්  App එකේ menu එක, අනිත් එක database එකට record එකක් ඇතුල් කිරීම සඳහා වූ  interface එකයි. අපි ඉතිරි ඒවා හා code එක ගැන අද ඉදන් බලමු.




1. remove_trasaction.xml


 ඉහත  interface එක සකස් කරල තියෙන්නේ, ඔයාලගෙ App එකේ Database record එකක් ඉවත් කරන්න භාවිතා කරන  interface එකයි. බලන්නකො එම interface එකේ අලුත් කොටසක් තියෙනවා නේද? අපි කලින් interface එකේ දැක්ක වගේම radio button දෙකක් එහිත් ඇතුලත් වෙනවා නේද? එම radio button වල අරමුන තමයි, record එක ඉවත් කරන්නේ කුමන පදනම මතද යන්න පෙන්නලා දෙන එකයි. මෙහි ඔයාලට record එකේ නම හෝ record එකේ id එක හරහා record එක ඉවත් කරන්න පුළුවන්.

දැන් අපිට පුළුවන් record add කරන්න වගේම delete කරන්නත්. නමුත් අපි database එකේ තියෙන records පෙන්වන්නත් ඕනි නේද? ඒ සඳහා අපි මෙහෙම වැඩක් කරනවා. 

බලන්නකො ඔයාලට මම කලින් ලිපියේ පෙන්නලා තිබුන project structure එකේ transaction_list.xml හා trc_row_view.xml කියල .xml දෙකක් තියෙනවා. සරලවම කියනවා නම්, trc_row_view.xml එකෙන් අපේ එක  record එකක් පෙන්වනවා. ඒ වගේ records list එකක් transaction_list.xml මඟින් පෙන්වනවා. පහත රූපය බලන්නකො එතකොට තේරේවි අපි මොකද්ද කරන්න යන්නේ කියල.

ඔයාල .xml දෙක හදලා දාගන්නකො අපි ඒක වැඩ කරන්නේ කොහොමද කියලා පසුවට කතා කරමු.

2. trc_row_view.xml


ඉහත  .xml එකට මට screen shot එකක් පෙන්වන්න අමරුයි. ඒව ඇතුලත් වෙන්නේත් transaction_list.xml එකේම තමයි. මේ .xml content එක බැලුවොත් ඔයාලට දැක ගන්න පුළුවන් වෙවි, එහි කලින් interface වල වගේ layout tag එකක් නැති බව. එහි තියෙන්නේ <TextView> tag එකක් නේද? එතකොට අපි මේ කරන්නේ, අපේ Database එකෙන්  record එකක් අරගෙන මේ TextView එකකට set කරනවා. එම TextViews එකින් එක, transaction_list.xml interface එකේදී list එකක් විදියට load කරනවා.

බලන්නකෝ පහත තියෙන transaction_list.xml එක, එහි තියෙන්නේ <ListView> කියලා tag එකක්.

3. transaction_list.xml




දැන් අපේ App එකේ interface වල වැඩ ඉවරයි. අපි දැන්  code එක කරලා ඉහත interface වල තියෙන දේවල් වැඩ කරන්න සකස් කරන්න ඕනි. අපි මීලඟ ලිපියෙන් code එක ගැන කතා කරමු.

ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 


Read More

Wednesday, May 8, 2013

Tips #3 - අපේම Proxy Server එකක් හඳාගමු.

                              Proxy server එකක් තමන්ටම කියල හඳාගන්න පළුවන් ක්‍රමයක් ගැන කියන්නයි අද මම හදන්නේ. මේ සඳහා අපිට Google Account එකක් සහ Internet Connection එකක් විතරයි ඕන කරන්නේ. 

  • මුලින්ම අපි කරන්න ඕන  appengine.google.com එකට අපේ Google log in එකෙන් log වෙන එක. දැන් මෙන්න මේ වගේ screen එකක් ලැබේවි.
  •  දැන් Create Application click කරල ඊලග screen එකට යමු. Application Identifier එකට ඔයාල කැමති නමක් දෙන්නග ඒත් මතක ඇතුව Availability check කරන්න. ඒකත් හරි නම් දැන් අපි ඊලග පියවරට යමු.
  • දැන් ඔයාල කැමති නමක් Application Title එක විදිහට දෙන්න.
  • වෙන මුකුත් වෙනස් කරන්න ඕන නෑ. ඒ ලගට Create Application කියන button එක click කරන්න.

  • දැනට පියවර ටික හරි නම් පහත Screen එක ඔයාලට ලැබේවි.

  • ඔයා මේක කරන්නේ පළමුවෙනි වතාවට නම්, Google එකෙන් ඔයාගේ mobile එකට verification code එකක් එවාවි.
  • දැන් මේ link එකෙන් python.org, Python 2.6.4 MSI Installer එක download කරගෙන install කරගන්න. 
  • ඊට පස්සේ දැන් code.google.com, එකෙන්  Google App Engine SDK for Python download කරගෙන install කරන්න.
  • දැන් මේ file එක download කරගන්න. 
  • ඒ හැමදේම හරි නම් අපි ඉදිරිපියටර වලටත් යමු.
  • දැන් මේ Zip file එක unzip කරගන්න ඔයාල කැමති තැනකට.
  • ඊට පස්සේ Google App Engine Launcher එක open කර ගන්න.
  • දැන් Edit --> Preferences හරහා Preferences window එක open කරගන්න. ඊට පස්සේ පහත විදිහට ඔයාලට අදාල වෙන විදිහට ඒකේ values වෙනස් කරන්න.
  • දැන් අපි File --> Add Existing Application හරහා Add Existing Application window එක open කර ගෙන එකේ application path එකට ඔයාල unzip කර ගත්ත folder එකේ path එක දෙන්න.
  • දැන් Add කරගන්න. ඊට පස්සේ එක select කරල Edit button එක press කරන්න. දැන් wordpad එකෙන් file එකක් open වෙයි. එකේ mypagewebpass කියන name එක වෙනුවට ඔයාලගේ application id එක දාන්න.
  • දැන් Deploy press කරන්න ඊට පස්සේ ඔයාගේ Google email එකයි password එකයි දෙන්න.
  • ඔයාල කරපු දේවල් ඔක්කොම හරි නම් Deployment Successful කියල window එකේ වැටේවි. අන්තිමටම you can close this window now කියාවි. දැන් ඒක close කරන්න.
  • දැන් ඔයාලය පුළුන් "your_app_id".appspot.com විදිහට ඔයාලගෙම proxy server එක access කරන්න.
Read More

Tuesday, April 2, 2013

Tips #2 - WAMP Server එකේ PHP Curl Activate කරගන්න හැටි.


             හැමෝම දන්නවනේ PHP කියන්නේ server side scripting language එකක් කියල. අද මම කියන්නේ PHP සමඟ ලැබෙන CURL කියන පහසුකම අපේ WAMP Server එකේදි කොහොමද activate කරගන්නේ කියල. ඊට කලින් කියන්නම් ඇයි අපිට CURL ඕන කියල, සරලව කියනවානම් CURL කියන්නේ Library එකක් අපිට PHP වලදි HTTP requests කරන්න පහසුකම් සලසා දෙන. මේ මගින් ඔබට වවිධ වූ Servers සමග වවිධ වූ protocols භාවිතා කරමින් සන්නිවේදනය කල හැකියි. වැඩි විස්තර සඳහා මේ ලින්ක් එකෙන් PHP නිල වෙබ් පිටුවට පිවිසෙන්න.

http://www.php.net/manual/en/intro.curl.php

දැන් අපි බලමු මෙයා කොහොමද local server එකට දා ගන්නේ කියල,

පියවර 1

          මුලින්ම අපි කරන්න ඕන C:\wamp\bin\php\php5.4.3 කියන පාත් එකේ (ඔබට අදාලව මෙම පාත් එක සුළු වශයෙන් වෙනස් විය හැක) php.ini කියන file එක text editor එකක් භාවිතා කරල open කර ගන්න.

පියවර 2

             දැන් එකේ තියෙන extension=php_curl.dll කියන line එක හොයා ගෙන ඒක uncomment කරන්න.

පියවර 3

            ඊලගට ඒ විදිහටම මේ C:\wamp\bin\apache\apache2.4.2\bin පාත් එකේ තියෙන php.ini, file එකෙත්  extension=php_curl.dll කියන line එක හොයා ගෙන ඒකත් uncomment කරන්න.

පියවර 4

             දැන් මේ link එකෙන් ඔයාලට අදාල Fixed Curl versions යටතේ තියෙන Curl version එක download කරගන්න. පළමුව VC version එක try කරන්න. 

පියවර 5

             ඊලගට මේ C:\wamp\bin\php\php5.4.3\ext folder එකේ තියෙන file එක ඔබ download කරගත්ත file එකෙන් replace කර ගෙන WAMP server එක restart කරල බලන්න.
Read More

Wednesday, March 20, 2013

Tips #1 - C# වලින් Serial Port එකත් එක්ක Communicate කිරීම



                මම අද කතා කරන්න යන්නේ අපේ මූළික පාඩම් මාලා වලින් පොඩ්ඩකට මිදිල ඔයාලට වැදගත් වේවි කියල හිතෙන codes ගැන කතා කරන්නයි. මටත් මේ ගැන යොයන්න වුනේ මගේ යාළුවෙකුගේ අවශ්‍ය තාවයකට program එකක් ලියන්න වුන නිසියි. ඉතින් මම හිතුවා ඔයාලත් එක්කත් ඒ දේවල් බෙදා ගන්න.

ඇයි අපිට Port Programming අවශ්‍යය


                සමහර programs වලදි අපිට අපේ computer  එකට පිටතින් ඇති hardware එකකින් data ගන්න සහ ඒවාට data යවන්න  අවශ්‍ය වෙනව. මේ සඳහා අපිට computer එකේ තිබෙන විවිධ වූ ports භාවිතා කරන්න පුළුවන් වුනත් අපි අතර ජනප්‍රිය වුන port එකක් තියෙනව ඒ සඳහා, ඒ තමයි Serial Port එක. නමුත් දැන් නම් ගොඩක් computers වල මේ port එක එන්නේ නෑ. නමුත් භාවිතයේ සරල බව නිසාම (USB වලට සාපේක්ෂව) අදටත් භාවිතා වෙනව. ඒ නිසා මම හිතුව ඒ ගැන කතා කරන්න.

Program එක ගැන


                   මම code කරන්න තෝර ගත්තේ C#.Net කියන  programming language එක, ඒ සඳහා විශේෂ හේතුවක් නැති වුවත් C# කියන්නේ මගේ ප්‍රියතම programming language එක නිසා තොරගත්ත. .Net වලදි නම් මෙය ඉතා පහසු කරල තියෙනව Framework එක මගින්. 

අපි මුලින්ම කරන්න ඕන අවශ්‍ය කරන system classes ටික import කර ගන්න ඒක,

using System.IO.Ports;
using System.Threading;

දැන් අපි serial port object එකක් අවශ්‍ය කරන parameters දීල හදාගන්න ඕන.

SerialPort myserialPort = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
myserialPort.Handshake = Handshake.None;

ඊළගට අපි event handler එකක් හඳා ගන්න ඕන serial port එකට data ලැබුනම run වෙන්න,

myserialPort.DataReceived += new SerialDataReceivedEventHandler(SP_DataReceived);

දැන් අපි හදා ගත්ත serial port එක open කරන්න ඕන ඒක භාවිතා කරන්න කලින්.

myserialPort.Open();

දැන් අපි අපේ  computer එකේ serial port එක හරහා data ලබා ගන්න සහ යවන්න සූදානම්. අපිට serial port එකෙන් ලැබෙන data, UI එකට ගන්න delegate භාවිතා කරන්න වෙනව. ඒ .Net framework එක cross-thread actions වලට ඉඩ ලබා නොදෙන නිසා. අපි delegate භාවිතා කරන්නෙ Non-UI Thread එකක ඉදල UI Thread එකට data ලියන්නයි.

private delegate void SetTextDeleg(string text);

දැන් අපි කලින් හදා ගත්ත event handler එකට ලබා දුන්න method එක code කරන්න ඕන data ලැබුනම run වෙන්න.

void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    Thread.Sleep(500);
    string data = _serialPort.ReadLine();
    this.BeginInvoke(new SetTextDeleg(SI_DataReceived), new object[] { data });
}

දැන් SI_DataReceived method එක code කරන්න ඕන අපිට ලැබෙව data UI එකට ලියන්න.

private void si_DataReceived(string data) 
{
  textBox1.Text = data.Trim(); 
}

Data ගන්න වැඩේ හරි දැන්, අපි බලමු කොහොමද data යවන්නේ කියල, ඒ සඳහාත් අපි පොඩි method එකක් ලියමු. data ලියන්න කලින් අනිවාර්යයෙන්ම port එක open කරල තියෙන්න ඕන.

try
{
  if(!(myserialPort.IsOpen))
        myserialPort.Open();
        myserialPort.Write("SI\r\n");
}
catch (Exception ex)
{
  MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
}

දැන් ඔක්කොම වැඩ ටික හරි. අවසානයටම ඔයාලගේ program එක close වෙන කොට port එක close කරන්න.

myserialPort.Close();

මම මේ code එක ඉතාමත් සරල අන්දමින් කලේ ඔයාලට අවශ්‍ය නම් මේක තව සංකීර්ණ ලෙස ඔයාලගේ අවශ්‍යතාවවය අනුව යොදාගන්න පුළුවන්.
Read More

Monday, March 18, 2013

HTML සිංහලෙන් පාඩම 13 - HTML CSS

                              අපේ Blog එකේ වෙනම CSS පාඩමක් යනව වුනත් මම අද හිතුවා පොඩ්ඩක් CSS ගැන කියන්න ඕන කියල. පොඩි හැඳින් වීමක් වගේ, නැත්තම් මේ පාඩම් ටික සම්පූර්ණ නැති වෙනව. අපි හැමොම දන්නවනේ CSS කියල අපි කෙටියෙන් අඳුන් වන්නේ Cascading Style Sheets කියල. ඉතින් මේ CSS වලින් අපිට කරන්න පුළුවන් දේවල් ඉතාමත් පුදුමාකාරයි. හිතාගන්නවත් බැරි වැඩ CSS වලින් web sites වල කරල තියෙනව. මේ වැඩ තවත් පහසු කරගන්න ලගදී CSS 3 කියන සංස්කරණය නිකුත් වුනා. මේ දේවල් ගැන වැඩි විස්තර ඔයාලට අපේ CSS පාඩම් මාලාව අධ්‍යයනයෙන් දැන ගන්න පුළුවන්.

              ඔයාල දන්නවනේ CSS හඳුන්වල දුන්නේ HTML elements වලට වඩාත් හොඳ විදිහකට styles දාන්න පුළුවන් වෙන්නනේ. අපිට මේ වැඩේ කරන්න පුළුවන් ආකාර තුනක් තියෙනව.

  1. Inline
  2. Internal
  3. External
අපි දැන් මේ එකින් එක විස්තර කරමු.

Inline 

අපි මේ විදිහට styles යොදන්න එක් HTML element එකකට විතරක් යම් කිසි style එකක් යොදන වෙලාවකදි තමයි. මේ සඳහා අපි ඒ element එකේ style කියන attribute එක යොදා ගන්නව. මෙහි ඕනෑම CSS property එකක් සඳහන් කළ හැකියි.

<p style="color:red;margin-left:45px;">This is my first paragraph</p>

Internal

අපි මේ විදිහට styles යොදන්නේ එක් වෙබ් පිටුවකට විතරක් අදාල වන පරිදි යම් කිසි elements කිහිපයකටම එකම style එක යොඳන විටදියි. මම පෙර පාඩමේදී සඳහන් කල පරිදිම මේ styles අපි ලියන්නේ HEAD එක තුලයි.  මේ සඳහා අපි <style> කියන tag එක පාවිච්චි කරනව.

<head>
     <style type="text/css">
         body {background-color:blue;}
         p {color:red;}
     </style>
</head>

External

අපිට එකම style එක විවිධ web pages සඳහා යොදා ගැනීමට අවශ්‍ය වෙන වෙලාවට අපිට external style sheet එකක් භාවිතා කිරීමට සිදුවෙනව. ඒ external style sheets අපේ වෙබ් පිටුවට link කරන්න අවශ්‍යයි. මේ code එකත් අපි ලියන්නේ HEAT එක තුලමයි, ඒ සඳහා අපි <link> කියන tag එකයි.

<head>
      <link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

අපි අයෙත් තවත් පාඩමකින් හමුවෙමු. ඊලග පාඩමේදී අපි HTML වලදී Images හසුරවන ආකාරය ගැන කතා කරමු.
Read More

Sunday, March 17, 2013

Android Transaction App - SQLite Database in Android App - 2


Android Transaction App

SQLite Database in Android App - 2


    ඔයාල පෙර ලිපිය කියවලා, ඒක කලා නම් errors එන්න ඇති. එයට හේතුව තමයි. අපේ main.xml එකේ තියෙන image buttons වලට උවමනා කරනා images මම සපයලා තිබුන නැති එක. ඇත්තෙන්ම ඔයාලට කැමති විදියක images භාවිතා කරන්න පුළුවන් ඒ සඳහා. මම මුලින්ම පෙන්නලා දෙන්නම්, ඒ images දාන්න ඕනෙ කොහෙටද, හා ඒවා code එකේ define කරලා තියෙන්නේ කොහොමද කියන එක.


ඉහත රූපයේ තියෙන්නේ අපේ App එකේ res directory එක. බලන්නකො එතන, අලුත් directory එකක් තියෙනවා නේද drawable කියලා. අන්න එතනට තමයි, අපි භාවිතා කරන images දාන්න ඕනි. 

ඔයාලට පේනවා ඇති මගෙ උදාහරනයේ images 7ක් භාවිතා කරලා තියෙනවා. ඒවා තියෙන්නේ මගෙ main.xml එකේ. ඒ buttons වලට හා main.xml එකේ පසුබිමට.



අපි දැන් බලමු, අපේ main.xml එකේ අලුතින් කරලා තියෙන දේවල් මොනවද කියලා.

   මෙහිදී අපි සාමාන්‍ය විදියට RelativeLayout එකක් භාවිතා කරලා තියෙනවා. නමුත් හොඳට බැලුවොත් දැක ගන්න පුළුවන් වේවි, අපි කලින් කතා කරපු App එකක තිබුනාට වඩා අලුත් attribute එකක් එහි තියෙනවා. ඒ තමයි

android:background="@drawable/menu_background"

මෙන්න මේ හරහා තමයි මගේ App එකේ main.xml එකට පසුබිම් රූපයක් දාල තියෙන්නේ.

දැන් බලන්නකෝ අපි තව අලුත් tag එකක් යොදාගෙන තියෙනවා. ඒ තමයි <ImageButton> tag එක. මෙයත් සාමාන්‍ය Button එකක්ම තමයි, නමුත් එහි ඇති විශේෂය වන්නේ එයට රූපයක් ඇතුලත් කරන්න හැකිවීමයි. මම එක කොටසක් විස්තර කරන්නම්.

<ImageButton
  android:layout_width="90dp"
  android:layout_height="85dp"
  android:id="@+id/payment_list_button
  android:src="@drawable/list"
  android:scaleType="fitCenter"
  android:background="@color/grey"
  android:layout_centerHorizontal="true" 
 android:layout_alignTop="@+id/add_payment_button"
/>

    මේ Button එකේ තියෙන sizes වෙනස්. ඒක නිසා තමයි, android:layout_width හා android:layout_height කියන ඒවා dp ලෙස අගයන් දීලා තියෙන්නේ. මෙහි android:src කියන attribute එක හරහා තමයි, අපේ Button එකේ පෙන්විය යුතු Image එක ලබා දෙන්නේ. බලන්නකො ඒක define කරල තියෙන කොහොමද කියලා. 

@drawable/list මේ drawable කියලා කියන්නේ අපේ images තියෙන directory එක. එතකොට  list කියලා කියන්නේ අපි පෙන්වන්න බලාපොරොත්තු වෙන image එක. 

android:scaleType="fitCenter" කියන කොටස හරහා අපේ image එක Button එකේ මැද කොටසට සමබර වෙන විදියට ස්ථාන ගත කරලා තියෙන්නේ. android:background="@color/grey" කොටසින් මම මගේ Button එකට පසුබිම් වර්ණයක් දීලා තියෙනවා.


දැන් අපි add_transactions.xml එක ගැන සලකලා බලමු.
බලන්නකො එහි අලුත් දේවල් කිහිපයක්ම තියෙනවා නේද?

එක මුලින්ම බලනකොට සාමාන්‍ය විදියේ linearlayout එකක් තියෙනවා. එහි තුල <ScrollView> කියල tag එකක් ඔයාලට දැක ගන්න පුළුවන් වේවි. ඔයාල මේ interface එක හදලා බැලුවනම් ඔයාල අත් දකින්න ඇති, එක උඩට හා පහලට තල්ලු (Scroll) කරන්න පුළුවන් බව. අන්න ඒ හැකියාව ලැබිල තියෙන්නේ මෙන්න මේ <ScrollView> එක නිසා. 

ඉන් පසුව තවත් පහලට එනකොට, ඔයාලට දැක ගන්න පුළුවන් 
<DatePicker> හා <TimePicker> කියලා tags දෙකක්. මේවා අපිට දිනයක් හා කාලයක් ලබා ගැනීමට, යොදා ගන්න පුළුවන්.

ඉන් පසුව තවත් වැදගත් කොටසක් තියෙනවා. ඒ තමයි RadioButton කියන එක. අපි RadioButton භාවිතා කරන්නේ කිසියම් එක තෝරා ගැනීමක් සඳහා. අපගේ උදාහරනයේ ඒ වගේ තෝරාගැනීම් දෙකක් තියෙනවා. ඒ තමයි  Payments හා  Income කියන ඒවා. එකවර තෝරා ගත හැකිවිය යුත්තේ එකක් පමණයි. එම නිසා අපගේ RadioButton දෙක, එක RadioGroup එකක් තුලට ගොනු කර තියෙනවා ඔයාලට බලා ගන්න පුළුවන්.

පහතින් වෙන කොටස් වල තිබෙන්නේ අපි මීට පෙර විස්තර ඇතිව කතා කල කොටස්, වෙන වෙන ආකාර වලින් යොදා ගැනීම් කිහිපයක්.

අපි මීලඟ ලිපියෙන් අනිකුත් interfaces ගැන කතා කරමු.


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 

Read More

Wednesday, March 13, 2013

HTML සිංහලෙන් පාඩම 12 - Head Tag එක


                   මම අද පාඩමෙන් කතා කරන්න බලාපොරොත්තු වෙන්නේ, අපි හැම වෙලාවෙම භාවිතා කරන tag එකක් ගැන‍යි. ඒ තමයි <head> Tag එක. මේ tag එක ඉතාමත් විශේෂ tag එකක් මොකද මේ Tag එක නැති වෙබ් පිටුවක් හොයා ගන්නවත් නැති තරම් නිසා. ඒ තරමටම මේ tag එක භාවිතා වෙනව. 

                      මේ tag එක ඇත්තටම තනිව කාර්යයක් නොකලාට, මෙය තුල අඩංගු කල හැකි head elements භාවිතා කරල අපි කරගන්න දේවල් නම් ඉතා විශාලයි. දැන් මොනවද මේ head elements කියන්නේ? අපි දැනටමත් දන්නවනේ වෙබ් පිටු නිර්මාණය කිරීමේදී JavaScript, CSS වගේ තාක්ෂණ භාවිතා කරනව කියල, ඉතින් ඒ වගේ අපේ වෙබ් පිටුවට අවශ්‍ය වෙන වෙනත් files හොයාගන්න browser එකට ඒවා ගැන කියන්න මේවා භාවිතා වෙනව තව scripts ආදිය වගේ අපේ වෙබ් පිටුවට අදාල meta dataද ඇතුලත් කල හැකියි. ඒ වගේ තව බොහෝ දේවල් තියෙනව. දැන් අපි වැදගත් වෙන head elements කිහිපයක් ගැන කතා කරමු.

<title> head element

මේ head element එක අපි භාවිතා කරන්නේ  අපේ වෙබ් පිටුවට title එකක් ලබා දෙන්නයි. ඒක කරන්නේ මෙන්න මේ විදිහටයි.

<html>
      <head>
      <title>THIS IS MY FIRST WEB PAGE</title>
      </head>
<html/>

ඒක පේන්නේ මෙන්න මේ වගේ


ඔයාල කැමති විදිහකට ඔයාලගේ වෙබ් පිටු වලට titles එකතු කර ගන්න පුළුවන්. ඒ වගේම කව්රුහරි අපේ වෙබ් පිටුව bookmark කරන කොට එතන නම විදිහට එන්නෙත්, search engine වලදි පෙන්වන්නෙත් මේ Title එකම තමයි

<base> head element

මේ tag එකෙන් අපි කරන්නේ අපේ වෙබ් පිටුව තුලදී මින් ඉදිරියට භාවිතා කරන URL සඳහා අවශ්‍ය වන මූලික ටික ලබා දෙන එකයි. ඒ කියන්නේ URL එකේ පොදු කොටස ලබා දෙන එක, එතකොට හැම තිස්සෙම ඒ ටික ලියන්න ඕන නෑනේ. මේක ඉතා වැදගත් images වලට වගේ URL දෙන කොට. syntax එක පහතින්,

<html>
      <head>
           <base href="http://codingsihalen.blogspot.com/2013/01/" target="_blank"/>
      </head>
</html>

<link> head element

මේ tag එක නම් ගොඩක් අය භාවිතා කරල ඇති. අපි මේක භාවිතා කරන්නේ අපේ වෙබ් පිටුව හා වෙනත් බාහිර document එකක් අතර සම්බන්ධයක් ඇති කරන්නයි. සරලම උදාහරණය තමයි අපේ වෙබ් පිටු වලට භාහිර stylesheet සම්බන්ද කර ගැනීම. ඒ ගැන වැඩි විස්තර අපේ CSS පාඩම් මාලාවෙන් ඔයාලට ඉගෙන ගන්න පුළුවන්.

<html>
      <head>
           <link rel="stylesheet" type="text/css" href="style.css"/>
      </head>
</html>

<style> head element

මේ Tag එක අපි යොදා ගන්නවා අපේ HTML elements වලට head එක තුලදී CSS styles ලියන්න. මේ tag එකත් හරිම ජනප්‍රිය එකක්.

<html>
     <head>
          <style type="text/css">
              body 
              {
                background-color:yellow
              }
              p 
              {
                color:blue
              }
          </style>
     </head>
</html>

<meta> head element

මේ tag එකෙන් අපි කරන්නේ අපේ වෙබ් පිටුවට අදාල දත්ත සඳහන් කරන එකයි. Search engine වලට මේ දත්ත වැදගත්. මේවා වෙබ් පිටුව බලන අයට පේන්නේ නෑ. අපිට පුළුවන් පේ වෙබ් පිටුවට අදාල keywords, description, author වගේ දේවල් සඳහන් කරන්න. අපි පොඩි උදාහරණයක් බලමු.

<html>
<head>

KEYWORDS සඳහන් කරන හැටි
    <meta name="keywords" content="HTML, CSS, XML, XHTML,  JavaScript">

වෙබ් පිටුවේ description එක සඳහන් කරන හැටි

    <meta name="description" content="Free Web tutorials on HTML and CSS">

වෙබ් පිටුවේ කතෘ සඳහන් කරන හැටි

    <meta name="author" content="Hege Refsnes">

වෙබි පිටුව ඉබේම refresh කරන හැටි.

    <meta http-equiv="refresh" content="30">

</head>
</html>

<script> head element

මේක ඉතින් අපි භාවිතා කරන්නේ client side scripts ලියන්න තමයි, JavaScripts වගේ. අපි මේ tag එක ගැන වැඩි විස්තර පසු පාඩමකින් කතා කරමු. අයෙත් අපි තවත් පාඩමකින් හමුවෙන තුරු ගිහින් එන්නම්.......
Read More

Wednesday, March 6, 2013

8. C අටවන පාඩම - Pointers (දර්ශකයන්)


මෙම ලිපියෙන් මම බලාපොරොත්තු වෙන්නෙ C භාෂාවේ භාවිතා වන වැදගත් යෙදුමක් වන දර්ශක (Pointers) පිළිබදව විස්තර කිරීමටයි. 

Pointer (දර්ශක) යනු මතක ගබඩාවේ ලිපිනයන් (Memory location address) සමග ගනුදෙනු කිරීමට C හි භාවිතා වන යෙදුමයි. මෙය භාවිතයෙන් ඉතා පහසුවෙන් memory location වෙත ගමන් කල හැකි අතර ඒවායෙහි ගබඩා කර ඇති values කියවීම, වෙනස් කිරීම ආදිය pointers භාවිතයෙන් පහසුවෙන් සිදු කර ගත හැක. 


දර්ශක භාවිතයේදී පෙරදී භාවිතා නොකල අලුත් කාරක රීති (Syntax) භාවිතා කිරීමට සිදුවේ. මන්ද මෙහිදි අපට මතක ගබඩාවේ ලිපිනයටත්, ගබඩා වී ඇති දත්ත අගයටත් (Memory location address and Value) යන දෙකම ලබාගත යුතු බැවින්. 

දර්ශක හදුන්වාදීමේදී එය pointer ආකාරයේ විචල්‍යක් බවත් එහි ගබඩා කළ හැකි දත්ත ආකාරය (Data type) කුමක්ද යන වගත් compiler එකට දැන්විය යුතුය. පහත දැක්වෙන්නෙ pointer variable එකක් declare කරන ආකාරයයි. 

<variable_type> *<name>; 

උදාහරණයක් ලෙස Integer ආකාරයේ විචළ්‍ය දර්ශකයක් හදුන්වාදෙන ආකාරය සලකා බලමු.

int *Number; 

මෙහි දැකිය හැකි * (තරු/star) ලකුණින් හැගවෙන්නේ මෙම විචල්‍ය දර්ශකයක් බවයි.

සාමාන්‍ය විචල්‍යකින් මතක ගබඩා ලිපිනය(Memory location address) එක ලබා ගැනීම.

සමාන්‍ය විචල්‍යකින් memory location address එක ලබාගැනීමට C ක්‍රමලේඛනයේදී '&' සංකේතය භාවිතා කරයි.

int Number= 5;
int *p = &Number; 

ඉහත උදාහරණය සලකන්න එහි මුලින්ම Integer ආකාරයේ Number විචල්‍යට අගය 5ක් ලෙස යොදා ඇත. දෙවනිව Integer ආකාරයේ p නම් පොයින්ටර් විචල්‍යකට &Number අගය ඇතුලු කර ඇත. මෙහිදී සිදුවන්නේ p හි අගය ලෙස Number විදල්‍යයේ Memory location address එක assign වේ. 

පොයින්ටර් විචල්‍යකින් එහි මතක ගබඩාවේ අගය ලබා ගැනීම.

පොයින්ටර් විචල්‍යක් භාවිතයෙන් එහි ගබඩා කර ඇති ලිපිනයේ අඩංගු අගය ලබාගන්නා ආකරය දැන් අපි බලමු.



printf("%d", *p);


ඉහත උදාහරණයේ ආකාරයට *p ලෙස භාවිතා කිරීමෙන් අපට පොයින්ටරයේ අඩංගු අගය කෙලින්ම ලබාගත හැක.

ඉහත සාකඡ්චාකල දෑ සැකෙවින් පහදා ගැනීමට පහත උදාහරණය උත්සාහ කරන්න.


#include <stdio.h>

void main(){
    int x;            /* A normal integer*/
    int *p;           /* A pointer to an integer ("*p" is an integer, so p
                       must be a pointer to an integer) */

    p = &x;           /* Read it, "assign the address of x to p" */
    printf("Enter value:");
    scanf( "%d", &x );          /* Put a value in x, we could also use p here */
    printf( "Value of pointer is %d\n", *p ); /* Note the use of the * to get the value */
    printf( "Memory address is %d\n", p ); /*Display memory address from pointer */
    printf( "Memory address of x is %d\n", &x ); /*Use of & to get memory address */
    printf( "Value of x is %d\n", x ); 
}

මෙමගින් Pointer (දර්ශක) විචල්‍ය ගැන අවබෝධයක් ලබාගන්නට හැකිවන්නට ඇතැයි සිතමි. දර්ශක විචල්‍යද C හි භාවිතා වන තවත් විචල්‍ය ආකාරයකි.C හිදී එමගින් Memory location එක සමග ගණුදෙනු කිරීමට ක්‍රමලේඛකයාට අවකාශය ලබාදෙයි.
Read More

Tuesday, February 26, 2013

Android Transaction App - SQLite Database in Android App - 1




Android Transaction App



SQLite Database in 

Android App - 1





      අපි ගිය සතියේ කතා කරපු විදියට, මේ සතියේ සිට Android වල අලුත් කොටසක් කතා කරන්න තමයි සූදානම් වෙන්නේ. ඒ තමයි Android App එකක් ඇතුලේ Database එකක් භාවිතා කරන්නේ කොහොමද කියන එක. මම ඒ කොටස ඉදිරිපත් කරන්න බලාපොරොත්තු වෙන්නේත් කලින් වතාවෙ වගේම App එකක් හදන ගමන් ම තමයි. අපි අපේ ආදායම් හා වියදම් සටහන් කරන්න පුළුවන්, ඒවා වාර්තා විදියට තියා ගන්න පුළුවන් පොඩි App එකක් හදමු.

       එහිදී අපි කතා කරනවා, කොහොමද  Android App එක ඇතුලේ Database එක හදන්නේ, ඒ Database එකට Data ඇතුල් කරන්න (insert), ඉවත් කරන්න (remove) හා අන්තර්ගතය බලා ගන්න (select) විදියවල් ගැන.

   ඒවගේම මම භාවිතා කරන IDE එක IntelliJ IDEA එකත් අලුත් වෙලා තියෙනවා. Android වලට ලොකු support එකක් දීලා තියෙනවා IDEA 12 එක්ක. මම මේ App එක හදන්නේ IDEA 12 එකෙන්. ඔයාලට බලන්න පුළුවන් වෙවි එතන තියෙන අලුත් දේවල් මොනවද කියලත්.

අපි මුලින්ම අපේ App එකේ project structure එක බලලා ඉමු.



ඔයාල දකින්න ඇති. මේක අපේ කලින් App වගේ ගොඩක් ම සරල නෑ. නමුත් අපි හෙමිහිට, සරලව එකින් එක කතා කරමු.


    මම කීවානේ IntelliJ IDEA 12 එක ගැනත් කියනවා කියලා. බලන්නකෝ එහෙනම් පහත රූපය. මෙහි Android App එකක interface නැතිනම් UI එක සකස් කර ගැනීම සඳහා අගනා designing environment එකක් සපයලා දීලා තියෙනවා. 










     
     මීට කලින් කිසිම Java IDE එකක් Android සඳහා මෙතරම් පහසු  designing environment එකක් ලබාදීලා නැහැ. නමුත් දැන්  App-Inventor කියල IDE එකක් ඇවිල්ල තියෙනවා. මට නම් තවම එය අත්හදා බලන්න බැරි උනා. ඔයාල මේ link එක හරහා ඒක උත්සහ කරලා බලන්න පුළුවන්.

http://beta.appinventor.mit.edu/


අපි ඒක ගැන පසුවට විස්තර ඇතිව කතා කරමු. පහත  link එකෙන් මම භාවිතා කරන, අලුත්ම IntelliJ IDEA 12 එක download කරගන්න පුළුවන් ඔයාලට.

http://www.jetbrains.com/idea/download/index.html

ඔයාලට ඒක සඳහා වූ keygen එක පහත  link එකෙන්  download කර ගන්න පුළුවන්.

http://www.ziddu.com/download/21674317/keygen_linux.rar



හරි අපි දැන් මුලින්ම බලමු, මොනවද අපේ resource files කියලා. string.xml එකත් colors.xml එක මේ App තියෙනවා නේද? ඒවා මම කලිනුත් කීවා වගේ ගොඩක් Android App වලට පොදු දේවල්.


1.) colors.xml

2.) strings.xml



බලන්නකෝ අපේ  App එකේ interface 5ක් තියෙනවා. ඒවා, main.xml,add_transactions.xml,remove_transactions.xml, transaction_list.xml, controller.xml කියන ඒවා. මෙම ලිපිය තුලින් අපි  main.xml හා  add_transactions.xml එක ගැන අවධානය යොමු කරමු.




3.) main.xml

     ඔය තියෙන්නේ අපේ App එකේ menu මෙතනින් තමයි අනිකුත් තැන් වලට යන්න buttons දීලා තියෙන්නේ. එම buttons වල අපි කලින් වතාවෙ භාවිතා කරමු ඒවට වඩා විශේෂත්වයක් තියෙනවා නේද? එනම් එම button පින්තූර ඇතුලත් කරලා තියෙන එක. ඔයාල .xml code එක බලුවොත් ඔයාලට පෙනේවි, ඒව සඳහා අපි භාවිතා කරල තියෙන්නේ නිකම්ම <Button> tag එක නෙවෙයි  <ImageButton> කියල අලුත් tag එකක්. ඒ වගේම අපි interface එකට background image එකක් එකතු කරලා තියෙනවා. (ඇත්තටම කියන්න ඕනි මගේ designs නම් ලස්සන නැහැ)





4.) add_transactions.xml



      මේ තමයි අපි අද කතා කරන්න බලාපොරොතුවෙන අනිත් interface එක. මේකෙන් තමයි, අපේ App එකේ Data insert කොටස කරන්නේ. ඒ කියන්නෙ අපි අපේ මුදල් ගනු දෙනුවක තොරතුරු ඇතුලත් කරන්නේ මෙතනින්. බලන්නකො අපි එහි අලුත්  tag කිහිපයක්ම භාවිතා කරලා තියෙනවා. ඒවගේම interface එක scroll කරන්න පුළුවන්.

අපි මීළඟ ලිපියෙන් මේ interface දේකේ content එක ගැන, අපි භාවිතා කරල තියෙන අලුත්  tags ගැන විස්තර ඇතිව කතා කරමු. 


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 
Read More