programming in isis an introduction (by e. de smet, univ. of antwerp)

11
Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

Upload: kory-harmon

Post on 25-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

Programming in ISIS

an introduction(by E. de Smet, Univ. of Antwerp)

Page 2: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

Why programming in a database ?

Extension of functions which are lacking, e.g. in ISIS/DOS : printing first occurrence only, limiting length of output etc.

Solving problems which are a-typical, e.g. GMOD : global changes in database, changing tags of fields, adding subfields in all records etc.

Adding ‘interface’ e.g. more user-friendly ways of dealing with the software

Page 3: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

3 types of ISIS-programming

1. ISIS/Pascal : as ‘format exits’ or as ‘menu exits’– format exits : ISIS/DOS and WinISIS, no ‘interface’– menu exits : only ISIS/DOS

2. ISISDLL : GUI applications based on pre-programmed ISIS-functions in DLL, running (in- or) outside WinISIS

3. ISIS-plugins : GUI applications based on any language but with links to running ISIS-environment (open database, PFT..), running within WinISIS (not yet fully implemented)

Page 4: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

ISIS/Pascal : Format Exits

small functions for processing not available in Formatting Language, mostly processing database values, e.g.

– lenlim : limit output of field to max. length– occ1 : take only first occurrence

simple example : hello.pasProgram HELLO(s1:string, lw,occ:real, s2:string)[FORMAT];Begins2:=s1;End.

calling in PFT : &hello(‘Hello !’)

Page 5: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

ISIS/Pascal : Menu Exits

small, upto full-fledged programs to be run as an option in an ISIS/DOS menu or as ‘R’ in the ‘Advanced Programming Services’ main-menu item (not WinISIS)

e.g. : GMOD (global changes), ODIN (data entry), IRIS (searching), Heurisko…

example : Program HELLO[MENU];Begin {very beginning of program}Clear; {clears the screen in DOS-window)Cursor(11,11); {puts cursor at position x=11 y=11}Writeln(‘HELLO !'); {writes text at cursorposition}End. {very end of program}(does not run in WinISIS because of ‘interface’)

Page 6: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

Exercise : your own ‘hello’ program

3 steps :– Writing the ‘source’ with text-editor– Compiling the source to ‘binary’ with WinISIS– Running the program from a format

Writing source : beware of small things, esp. interpunction ! E.g. :=, ;, “ vs. ‘ ‘ etc.

Compiling (not on NTFS-disks..) and debugging, using debug-info from WinISIS

Run in PFT : &HELLO(‘your text’)

Page 7: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

ISISDLL Programming

ISISDLL : a ‘library’, dynamically linked into other programmes invoking standard functions pre-programmed in the DLL, taking away the need to deal with most complicated ISIS-input/output operations

most used programming environments :– C++ - JAVA– Visual Basic– Delphi (Pascal)

modern programming is ‘object’-based : all parts are objects with properties and ‘methods’

– e.g. PFTText.text is the ‘text’property of the input-object PFTText)– srcMFN.MFN = MFN part of the ‘structure’ srcMFN in which all MFN’s are put by

function call IsisSrcMfnMap(a,0,0,i,i,srcMFN)

Page 8: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

ISISDLL : the components

programmed and provided for free by : BIREME (and UNESCO) at http://www.bireme.br/isis/l/isisdll.htm

ISISDLL.DLL : the real library file ISIS001.* (.PAS for Delphi) : constants and structure

declarations ISIS32.* (.PAS for Delphi) : declarations for all DLL

functions current release : v.7 (fall 2001)

Page 9: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

ISISDLL Programming (2)

e.g. functions to open a database, read and format a record (in Delphi) :

– a:= IsisAppNew; {creates a temporary memory space for an ISIS-application}

– h:= IsisSpaNew(a); {creates a new ISIS_DLL space}

– r:= IsisSpaMf(h, PChar(PChar(dbText.Text))); {organises memory to contain one record of the database given in dbText and all necessary database-elements}

– r:= IsisRecRead(h, 0, srcMfn.mfn); {reads MFN into memory}

– r:= IsisSpaPft(h, PChar(pftText.Text)); {puts the whole Formatting Language in memory to work with the PFT as given in pftText}

– r:=IsisRecFormat(h, 0, Area, 60000); {actually formats the current record according to the current selected format and puts the output in the memoryspace Area}

Page 10: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

ISISDLL programming example

WinIRIS : simple searching in Windows features :

– database selection and PFT selection (file or actual formatting statements)

– about box– dictionary consultation while typing search terms with Windows-

style Ctrl or Shift-click for multiple selection– immediate results display

only 260 lines of code, thanks to ISISDLL ! Most of them generated by ‘rapid graphical programming environment’

WinIRIS Delphi project

Page 11: Programming in ISIS an introduction (by E. de Smet, Univ. of Antwerp)

WinISIS plugins

WinISIS plug-in : executable softwares, inserted in WinISIS-menu’s, knowing how to read the actual database and configuration (PFT, record, IF etc.)

adding into menu (= database MSENDF.MST)

FreeText search[CALL freetext.exe] will allow ‘FreeText’ plugin to be invoked from the menu

waiting for the specs (’API’)… still not officially released