Showing posts with label ஓப்பன் ஆஃபிஸ் மேக்ரோ. Show all posts
Showing posts with label ஓப்பன் ஆஃபிஸ் மேக்ரோ. Show all posts

Saturday, September 14, 2013

ஓப்பன் ஆஃபிஸ் பேஸிக்-98




கிளைபிரிதல்(branching)   ஒரு கட்டளைத்தொடரில் குறிப்பிட்ட நிபந்தனை நிறைவுபெறும்வரை அடுத்த செயல் நடைபெறாமல் கட்டுபடுத்திட இந்த கிளைபிரிதல் எனும் கருத்தமைவு பயன்படுகின்றது
1) If..Then..Else என்பது நிரல்தொடர் எழுதிடும் பெரும்பாலானவர்களால் தம்முடைய கட்டளைவரிகளில் பயன்படுத்திடும் ஒரு கிளைபிரிதல் கட்டளையாகும்
If A>3 Then B=2 Else B=0
என்றவாறு  ஒற்றைவரிக்குள் இந்த If..Then..Else எனும் கிளைபிரிதல் கட்டளையை குறிப்பிட முடியும்  இதில் Aஇன் மதிப்பு 3 இற்கு மேல் இருக்கும் வரை  Bஇன் மதிப்பு  2 இற்கு சமமாக இருக்கும். இல்லையெனில் Bஇன் மதிப்பு 0 ஆகும் .

 2) Select ...Case என்பது மற்றொரு கிளைபிரிதல் கட்டளையாகும்

  Select Case Var
  Case Var >8 And Var <11
 '...Var is 0
 Case Else
' ...all other instances
End Select
இந்த கட்டளைவரித்தொடரில் மாறியின் மதிப்பு  8 இற்கும் 11 இற்கும் இடையிலுள்ளவரை கூற்று உண்மையாகும் இல்லையெனில் அல்லது தவறெனில் அதாவது மாறியின் மதிப்பு 0 ஆகும் .
சுற்றுகள் (Loops) இந்த கட்டளையானது நாம் குறிப்பிடும் எண்ணிக்கைவரை திரும்ப திரும்ப  அதே இடத்தில் சுற்றிக்கொண்டே இருக்கும். ஒருசிலவற்றை கணக்கற்ற நிலையில் சுற்றிடுமாறு செய்திடுவார்கள்
1 For..Next எனும் கூற்று  குறிப்பிட்ட எண்ணிக்கைவரை சுற்றிக்கொண்டே இருக்கமாறு செய்கின்றது
Dim I
 For I = 1 to 10  Step 1
   If I = 5 Then
  Exit For
 End IF
'…. Inner part of loop
Next I
இந்த நிரல் தொடரில் Iஇனுடைய மதிப்பு 1 முதல் 10  வரை ஒவ்வொன்றாக மதிப்பை கூட்டிக்கொண்டே 5 வரை சென்றிடுமாறும் 5 வந்தவுடன் வெளியேறுமாறும் இல்லையெனில் அடுத்த I இன் மதிப்பை கூட்டிகொண்டு சென்றிடுமாறு கட்டளை கொடுக்கபட்டுள்ளது
2    For ..Each  எனும் கூற்று ஆனது  For..Next எனும் கூற்று போன்று வெளிப்படையாக குறிப்பிட்ட எண்ணிக்கைவரை சுற்றிக்கொண்டே இருக்கமாறு செய்யாது ஆயினும் கட்டளையில் கொடுத்த அனைத்தையும் நிறைவேற்றும் வரை சுற்றிகொண்டே இருந்திடுமாறு செய்கின்றது
Const d1 -2
Const d2=3
Const d3=2
Dim 1
Dim a(d1,d2,d3)
For Each I In a()
'…. Inner part of loop
Next I
 இதில்  கொடுத்துள்ள அனைத்து  எண்ணிக்கையும் சேர்த்து 36 முறை சுற்றிடுமாறு செய்கின்றது
3 Do ...Loop   எனும் கூற்று ஆனது குறிப்பிட்ட நிபந்தனை நிறைவேறும் வரை சுற்றிக்கொண்டே இருக்குமாறு செய்கின்றது

Do
'….some international calculations
If A = 4 Then Exit Do
' … other instructions
Loop
இதில் Aஇன் மதிப்பு 4 ஆகும் வரை சுற்றிகொண்டிருக்குமாறும் 4ஆக மாறினால் வெளியேறிடுமாறும் செய்யபட்டுள்ளது

4 While ..Wend எனும் கூற்றில் Do While போன்று வெளியேறுவதற்கான கட்டளை இல்லை என்பதே இதனுடைய மிகமுக்கியமான குறைபாடாகும்

செயல்முறைகளும் செயலிகளும்(Procedures and Functions)

 இவை ஒரு சிக்கலான மிகநீண்ட கட்டளை தொடர்வரிகளில் சிறு சிறு செயல்களை தனித்தனியாக பிரித்து செயல்படுத்திடுமாறு செய்கின்றன அதன்பின்முக்கிய தொடருக்கு அதன் முடிவை வழங்கிடுமாறு செய்திட பயன்படுகின்றன
 இதில் செயல்முறைகளானது(Procedures) குறிப்பிட்ட செயலை வெளிப்படையாக அதனுடைய மதிப்பை குறிப்பிடாமலேயே செயல்படுமாறு செய்கின்றது
 ஆனால் செயலிகளானது(Functions) குறிப்பிட்ட செயலிற்கான தொகுப்பாக  குறிப்பிட்ட செயலை வெளிப்படையாக அதனுடைய மதிப்பை குறிப்பிடச்செய்து செயல்படுமாறு செய்கின்றது
 Sub Test
 Dim ErrorOccured As Boolean
'…..
If  ErrorOccured Then
 Exit Sub
 End If
'…..
End Sub
இந்த கட்டளை தொடரில் பிழை உருவானால்  செயல்முறையிலிருந்தும் செயலியிலிருந்தும் வெளியேறுமாறு கட்டளையிடபட்டுள்ளது
மறுசுழற்சி (Recursion)  இந்த  மறுசுழற்சி (Recursion) எனும்  செயல்முறை அல்லது செயலியானது  அடிப்படை நிபந்தனை நிறைவேறும்வரை தனக்குதானே அழைத்துகொள்ளும் திறன்கொண்டது



 Sub Main
 Masgbox CalculateFactorial ( 42 ) ' Display 1,4050061175288vE+51
Masgbox CalculateFactorial ( -42 ) ' Display “ Invalid number for factorial !”
Masgbox CalculateFactorial ( 3.14 ) ' Display “ Invalid number for factorial !”
 End Sub
 Function   CalculateFactorial( Number)
If Number < 0 or Number <> Int ( Number) Then
  CalculateFactorial = “ “ Invalid number for factorial !”
  ElseIf Number = 0 Then
   CalculateFactorial = 1
  Else
 ' This is  the recursive call:
 CalculateFactorial = Number *  CalculateFactorial ( Number  1)
EndIf
 End function
இதில் 42 இற்கான பின்ன எண்ணை  CalculateFactorial  என்ற செயலியானது    1  வரும்வரை மறு சுழற்சி செய்யுமாறு பணிக்கின்றது

 பிழைகளை கையாளுதல்(Error Handling) 
 1.On Error எனும் கட்டளையானது பிழைஏதும  ஏற்பட்டால் பிழைகளை கையாளுபவரை அழைத்து சரிசெய்து கொள்ளும்படி கட்டளை இடுகின்றது.
2 Resume Next எனும் கட்டளையானது பிழை ஏற்பட்டால் அந்த பிழையை களைந்தபின் பழையபடி தொடர்ந்து செயல்படுமாறு செய்கின்றது
  பொதுவாக நிரல் தொடர்முழுவதுமான செயலிற்கு On Error  Resume Next என்ற கட்டளைத்தொடர் பிழைகளை களைந்து தொடர்ந்து செயல்பட சிறந்ததாகும்

Thursday, April 25, 2013

ஓப்பன் ஆஃபிஸ்-89 மேக்ரோவை உருவாக்கி பயன்படுத்துதல்

பிற்காலத்தில் பயன்படுத்தலாம் என சேமித்து வைத்துள்ள வரிசையான கட்டளைவரிகள் அல்லது விசைப்பலகையின் விசையை அழுத்துவதால் செயற்படுத்தப்படும் செயல்கள் ஆகியவையே மேக்ரோ ஆகும்.  இந்த ஓப்பன் ஆஃபிஸின் மேக்ரோவானது  மிகச்சாதாரண மானதும் சிக்கலானமானதுமான தானியங்கி செயல்களை நெகிழ்வு தன்மையுடன் அனுமதிக்கின்றது. பொதுவாக ஒரேமாதிரியான திரும்ப திரும்ப செய்யக்கூடிய செயல்களை செயற்படுத்துவதற்காக மட்டும் இந்த மேக்ரோ பயன்படுகின்றது . 
  இந்த ஓப்பன் ஆஃபிஸின் மேக்ரோவானது வழக்கமாக பேஸிக்மொழி என அழைக்கபடும் ஸ்டார் பேஸிக்கின் மொழியில் எழுதபடுகின்றது புதியவர்கள் கூட இந்த  பேஸிக்மொழியை மிகச்சுலபமாக அறிந்துகொண்டு மிகஎளிதாக மேக்ரோவை எழுதமுடியும் பெரும்பாலும் புதியவர்கள் இதில் முன்கூட்டியே கட்டமைக்கப்பட்ட மேக்ரோ பதிவாளர் வாயிலாக   அல்லது விசைப்பலகையின் விசையை அழுத்துவதால் செயற்படுத்தப்படும் செயல்கள் ஆகியவைகளை பதிவுசெய்து மேக்ரோவாக  சேமித்துகொண்டு பின்னர் செயற்படுத்தமுடியும் பெரும்பாலான ஓப்பன் ஆஃபிஸின் மேக்ரோவானது கட்டளைகளை செயற்படுத்துவதற்காக அனுப்புதல் என்ற கொள்கைக்கு ஏற்ப ஒத்தியங்குகின்றது
 பொதுவாக நாம் நகலெடுத்தல் அல்லது வெட்டுதல்  பின்னர் ஒட்டுதல் ஆகிய செயல்களின் கட்டளைகள் கிளிப்போர்டு என்ற பகுதியில் சேமிக்கபட்டு பின்னர் அதேசெயலை தேவைப்படும் போதெல்லாம் செயற்படுத்துவதற்கேதுவாக தயார்நிலையில் உள்ளன  அதேபோன்றே திரும்ப திரும்ப செய்யபடும் செயல்களை முதலில் அதனை ஒருமுறை மட்டும் செயற்படுத்தி பதிவுசெய்து சேமித்துகொண்டு பின்னர் அதனை இயக்கி செயற்படுத்திடமுடியும்  அதற்காக  மேலே கட்டளை பட்டையிலுள்ள Tools => Macros => Record Macro=> என்றவாறு கட்டளைகளை செயற்படுத்துக உடன்     89.1.1                  
 
Record எனும் சிறு சாளரம் திரையில் தோன்றி

நாம் செய்யும் செயலை மேக்ரோவாக பதிவுசெய்ய தயாராக நிற்கும் உடன் .குப்பன் என்ற வாறு ஏதேனும் சில எழுத்துகளை அல்லது சொற்களை தட்டச்சு செய்து stop recording எனும் பொத்தானை தெரிவுசெய்து சொடுக்குக  பின்னர் இந்த மேக்ரோவை சேமித்து ஓப்பன் ஆஃபிஸ் பேஸிக் மேக்ரோ உரையாடல் பெட்டியை படம்-1-ல் உள்ளவாறு திரையில் பிரதிபலிக்க செய்க
படம்-1
பின்னர் save macro என்ற நூலக உள்ளடக்கங்களுக்குள் my macros என்பது இருக்கும் அதன்கீழ் standardஎன்பதும் இருக்கும்   வலதுபுறமுள்ள new moduleஎன்ற பொத்தானை தெரிவுசெய்து சொடுக்குக உடன் தோன்றிடும் new moduleஎன்ற சிறு உரையாடல்  பெட்டியில்  module1  என்று இயல்புநிலையில் இருக்கும் அதற்கு Recordedஎன்றவாறு ஒரு பெயரை உ்ள்ளீடுசெய்து  ok என்ற பொத்தானை தெரிவுசெய்து சொடுக்கி இந்த உரையாடல் பெட்டியை மூடிவிடுக அவ்வாறே   ஓப்பன் ஆஃபிஸ் பேஸிக் மேக்ரோ உரையாடல் பெட்டியின் வலதுபுறத்தில் உள்ள  macro name என்பதற்கு Enter My Name என்றவாறு ஒரு பெயரை  உ்ள்ளீடுசெய்து  Save என்ற பொத்தானை தெரிவுசெய்து சொடுக்கி இந்த மேக்ரோவை சேமித்து கொள்க. இப்போது இந்த உரையாடல் பெட்டியில் மேக்ரோவின் பெயரானது படம்-2-ல் உள்ளவாறுEnter My Name என்று இருக்கும்
படம்-2
பின்னர் மேலே கட்டளை பட்டையில் Tools => Macros => Run Macro =>என்றவாறு கட்டளைகளை செயற்படுத்தி படம்-2-ல் உள்ளவாறு ஓப்பன் ஆஃபிஸ் பேஸிக் மேக்ரோ உரையாடல் பெட்டியை தோன்றசெய்து அதில் macro name என்பதின்கீழ் இருக்கும் நாம் உருவாக்கிய  EnterMyName என்ற பெயரை தெரிவுசெய்து கொண்டு வலதுபுறமுள்ள Run என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக
இதே மேக்ரோவை வேறு வழியிலும் செயற்படுத்திடமுடியும் அதற்காக மேலே கட்டளை பட்டையில் Tools => Macros => Organize Macros  =>  OpenOffice.org Basic =>  என்றவாறு கட்டளைகளை செயற்படுத்தி படம்-2-ல் உள்ளவாறு ஓப்பன் ஆஃபிஸ் பேஸிக் மேக்ரோ உரையாடல் பெட்டியை தோன்றசெய்து அதில் macro name என்பதின்கீழ் இருக்கும் நாம் உருவாக்கிய  EnterMyName என்ற பெயரை தெரிவுசெய்து கொண்டு வலதுபுறமுள்ள Run என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக
படம்-3
பின்னர்  நாம் எழுதாமலேயே தானாகவே உருவாகியஇந்த மேக்ரோ கட்டளை தொடரானது  எவ்வாறு இருக்கும் என திரையில் நம் கண்களால் காண மேலே கட்டளை பட்டையில் Tools => Macros => Organize Macros  =>  OpenOffice.org Basic =>  என்றவாறு கட்டளைகளை செயற்படுத்தி  ஓப்பன் ஆஃபிஸ் பேஸிக் மேக்ரோ உரையாடல் பெட்டியை தோன்றசெய்து அதில் macro name என்பதின்கீழ் இருக்கும் நாம் உருவாக்கிய  EnterMyname என்ற பெயரை தெரிவுசெய்து கொண்டு வலதுபுறமுள்ள Edit என்ற பொத்தானை தெரிவுசெய்து சொடுக்குக உடன்  படம்-3-ல் உள்ளவாறு mymacros&Dialog standard openoffice.orgBasic என்ற உரையாடல் பெட்டிதிரையில் தோன்றிடும் அதில் EnterMyname எனும் மேக்ரோவின் கட்டளைவரிகளானது பின்வரும்  EnterMyname எனும் மேக்ரோ நிரல்தொடர்-1-ல் உள்ளவாறு  கட்டளைவரிகள் இருக்கும்.
 EnterMyname எனும் மேக்ரோ நிரல்தொடர்-1.
REM ***** BASIC *****
Sub Main
End Sub
sub EnterMyName
rem -------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem -------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
370 Getting Started with OpenOffice.org 3
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem -------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = ".குப்பன்"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
end sub
இந்த கட்டளைவரிகளை எழுதுவதற்காக நாம் எந்தவொரு சிறப்பு பயிற்சியும் எடுத்து கொள்ள வில்லை மிகச்சாதாரணமாக நாம் செய்யும் செயலை  Tools => Macros => Record Macro=> என்ற வாறு கட்டளைகளை செயற்படுத்தி பதிவுசெய்துகொண்டபின் இந்த மேக்ரோவிற்கு ஒரு பெயரிட்டு சேமித்தோம் அவ்வளவுதான் இதேபோன்றே நாம் விரும்பும் திரும்ப திரும்ப செய்யும் செயல்களை  மேக்ரோவாகா பதிவுசெய்து பெயரிட்டு சேமித்துகொண்டுசெயற்படுத்தி பயன்படுத்தி கொள்க .