[ Pobierz całość w formacie PDF ]
.Po utwo­rzeniu obiektu mo¿na stosowaæ jego metody.Podczas komunikacji miêdzyprocesowej w Windows istotne staj¹ siê typy danych —za³Ã³¿my na przyk³ad, ¿e mamy program napisany w C++ i chcemy skomunikowaæ siê zprogramem napisanym w Pascalu.Aby unikn¹æ tego typu problemów, pakiet PerlWin32 zawiera zestaw standardowych typów variant (jest to wygodna metodaobs³ugi danych, których typ tak naprawdê trudno okreœliæ).Typy teprzedstawiono w tabeli 11.1, która informuje, na jakie typy danych OLE s¹konwertowane typy Perla przed prze­kazaniem danych serwerowi OLE.Tabela 11.1.Typy danych OLETyp danych OLE Standardowych typ danychOLE::VT_BOOL Wartoœci logiczne OLE.OLE::VT_BSTR Tekst OLE (char* znany z jêzyka C).OLE::VT_CY Waluta OLE.OLE::VT_DATE Data OLE.OLE::VT_I2 Liczba ca³kowita ze znakiem (2 bajty).OLE::VT_I4 Liczba ca³kowita ze znakiem (4 bajty).OLE::VT_R4 Liczba zmiennoprzecinkowa (4 bajty).OLE::VT_R8 Liczba zmiennoprzecinkowa (8 bajtów).OLE::VT_UI1 Znak bez znaku.Na przyk³ad liczby ca³kowite Perla zostan¹ przekszta³cone na VT_I4, liczbyzmienno-przecinkowe podwójnej precyzji na VT_R8 i tak dalej.Pakiet Perl Win32wykonuje te konwersje automatycznie.Aby utworzyæ w programie obiekt OLE, trzeba w³¹czyæ modu³ OLE:use OLE;Nastêpnie funkcja CreateObject pozwala obiekt utworzyæ.Przyjrzyjmy siêprzyk³a­dowi.U¿yjemy Microsoft Excela, aby dodaæ do siebie dwie liczy 2, anastêpnie wyœwie­tlimy wynik.Zaczniemy od zapisania parametrów w zmiennych$operandl i $operand2:use OLE;$operandl = '2';$operand2 = '2';W kolejnym etapie za pomoc¹ funkcji CreateObject utworzymy obiekt OLE$excelobject.Funkcji tej przeka¿emy wartoœæ OLE i wska¿emy typ obiektu OLE,jaki ma zostaæ utworzony — server.class, gdzie server to zarejestrowana nazwaserwera OLE, a class to klasa tworzonego obiektu (zwykle serwery OLE obs³uguj¹wiele ró¿­nych klas —jeœli ma siê szczêœcie, w dokumentacji serwera mo¿naznaleŸæ informacjê o tym, jakich metod mo¿na u¿yæ w poszczególnych klasach).Wnaszym przypadku utworzymy arkusz Excela:use OLE;$operandl = '2';$operand2 = '2';$excelobject = CreateObject OLE 'Excel.Sheet';Teraz mo¿emy ju¿ swobodnie u¿ywaæ metod nowego obiektu.Najpierw za³adujemy$operandl do komórki (1,1) arkusza, zaœ $operand2 do komórki (2,1) i wynikwyli­czenia sumy umieœcimy w komórce (3,1):use OLE;$operandl = '2' ;$operand2 = '2' ;$excelobject = CreateObject OLE 'Excel.Sheet';$excelobject->Cells(1,1)->{Value} = $operandl;$excelobject->Cells(2,1)->{Value} = $operand2;$excelobject->Cells(1,1)->{Formula} = '=R1C1 + R2C1';W tym momencie pozosta³o ju¿ tylko wyœwietliæ wynik:use OLE;$operandl = '2';$operand2 = '2';$excelobject = CreateObject OLE 'Excel.Sheet';$excelobject->Cells(l,1)->(Value) = $operandl;$excelobject->Cells(2,1)->{Value} = $operand2;$excelobject->Cells(l,1)->{Formula) = '=R1C1 + R2C1';$sum = $excelobjact->Cells(3,l)->{Value);$excelobject->Quit();print "Microsoft Excel twierdzi, ¿e ","$operandl + $operand2 = $sum.\n";Microsoft Excel twierdzi, ¿e 2 + 2 = 4.Rozdzia³ 12.Funkcje wbudowane: obs³uga plikówW skrócieW tym rozdziale zajmiemy siê obs³ug¹ plików w Perlu, szczególnie funkcjamiu¿ywa­nymi do obs³ugi plików fizycznych (czyli znajduj¹cych siê na dysku), nazwplików i katalogów.Jest to kolejny obszerny temat w Perlu i choæ nie bêdziemo¿liwe omówie­nie go tutaj w ca³oœci, to przynajmniej poznamy go na tyle, abymóc siê w nim poruszaæ (jedn¹ z przyczyn obszemoœci tego tematu jest obecnoœæwielu powtórzeñ.Motto Perla — „da siê to zrobiæ na wiêcej ni¿ jeden sposób" —w przypadku obs³ugi plików jest wyj¹tkowo prawdziwe).Uwaga dla osób z „uniksofobi¹": obs³uga plików w Perlu by³a oparta pierwot­niena systemie plików Unix, co nadal w du¿ym stopniu jest widoczne — u¿y­wa siêuprawnieñ plików systemu Unix, odnoœników symbolicznych i tak dalej.Przydatnemo¿e byæ zrobienie kilku eksperymentów z posiadan¹ wersj¹ Perla, szczególniejeœli chodzi o ustawianie uprawnieñ do plików.Wszystko o obs³udze plikówWiêkszoœci programistów nie jest obca obs³uga plików: aby u¿yæ danych z pliku,otwie­ra siê go, pobiera jego uchwyt — wtedy jest tworzony kana³ wejœciowy lubwyjœciowy, wiêc w dalszych operacjach obs³ugi pliku, odczycie i zapisie, tegouchwytu siê u¿ywa.Po skoñczeniu u¿ywania pliku zamyka siê go.W tym rozdzialedok³adnie omówimy ca³y ten proces.Stosowaæ bêdziemy nie tylko uchwyty plików,ale te¿ bêdziemy zarz¹­dzaæ plikami i katalogami.Przyjrzymy siê te¿, jaktworzyæ i u¿ywaæ bazê DBM w sys­temie Unix, gdy¿ bazy takie s¹ powszechniestosowane przy programowaniu CGI.Trzeba tu przypomnieæ o pewnych konwencjach [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • luska.pev.pl
  •