1 / 11

Programming in ISIS

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.

nariko
Download Presentation

Programming in ISIS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 3 types of ISIS-programming • ISIS/Pascal : as ‘format exits’ or as ‘menu exits’ • format exits : ISIS/DOS and WinISIS, no ‘interface’ • menu exits : only ISIS/DOS • ISISDLL : GUI applications based on pre-programmed ISIS-functions in DLL, running (in- or) outside WinISIS • 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)

  4. 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.pas Program HELLO(s1:string, lw,occ:real, s2:string)[FORMAT]; Begin s2:=s1; End. • calling in PFT : &hello(‘Hello !’)

  5. 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’)

  6. 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’)

  7. 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)

  8. 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.* (.PASfor Delphi) : declarations for all DLL functions • current release : v.7 (fall 2001)

  9. 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}

  10. 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

  11. 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

More Related