189 lines
6.5 KiB
Plaintext
Executable File
189 lines
6.5 KiB
Plaintext
Executable File
subroutine DC.OPENS( do.reconvert, proceed )
|
|
*******************************************************************************
|
|
*
|
|
* Convert dictionary item(s) from Pick to Uni*Verse format:
|
|
* open all necessary files
|
|
*
|
|
* Module %M% Version %I% Date %H%
|
|
*
|
|
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
|
|
* This is unpublished proprietary source code of Ardent Software Inc.
|
|
* The copyright notice above does not evidence any actual or intended
|
|
* publication of such source code.
|
|
*
|
|
*******************************************************************************
|
|
*
|
|
* Maintenence log - insert most recent change descriptions at top
|
|
*
|
|
* Date.... GTAR# WHO Description.........................................
|
|
* 10/22/98 23801 SAP Change company name to Ardent.
|
|
* 10/14/98 23801 SAP Change copyrights.
|
|
* 07/25/88 - - Maintenence log purged at 5.2.1, see release 5.1.10.
|
|
*
|
|
*******************************************************************************
|
|
*
|
|
* The basis for this Pick-to-Uni*Verse dictionary converter was a
|
|
* Microdata-to-Prime converter written by J. Michael Cannady and
|
|
* Thomas J. Rauschenbach of Fulcrum Computer Group, Inc. Ardent
|
|
* was granted permission to use that code by Infocel, Inc., a successor
|
|
* of Fulcrum.
|
|
*
|
|
*******************************************************************************
|
|
*
|
|
* Open the files for dictionary conversion.
|
|
*
|
|
* Arguments:
|
|
* do.reconvert - If "false", and both Pick and Uni*Verse
|
|
* dictionaries exist, this program alerts
|
|
* the user and requests permission to reconvert.
|
|
* If "true", the program (re)converts regardless.
|
|
*
|
|
* proceed - Returned "true" if all files opened, "false"
|
|
* otherwise.
|
|
*
|
|
* The calling program must set the FILE string to the name of the
|
|
* dictionary being converted.
|
|
*
|
|
************************************************************************
|
|
*
|
|
$options DEFAULT
|
|
$include UNIVERSE.INCLUDE DC.COMM.DECL
|
|
$include UNIVERSE.INCLUDE FILENAMES.H
|
|
*
|
|
equ true to 1 ; equ false to 0
|
|
*
|
|
********************************************************************
|
|
*
|
|
* Insure that PDICT FILE (P_FILE) holds the Pick dictionary items
|
|
* and DICT FILE (D_FILE) is open to hold the converted items.
|
|
*
|
|
********************************************************************
|
|
*
|
|
*
|
|
maintain.pick.prompt = false
|
|
no.ufv = false
|
|
no.pfv = false
|
|
NO.ERR = false
|
|
NO.UCODES = false
|
|
*
|
|
open "", "&SAVEDLISTS&" to EFV else NO.ERR = true
|
|
openpath UV.APP.PROGS to UCODE.FV else NO.UCODES = true
|
|
*
|
|
|
|
open "DICT", FILE to UFV then
|
|
u.file.type = status()
|
|
u.file.mod = inmat()
|
|
end else
|
|
no.ufv = true
|
|
end
|
|
*
|
|
open "PDICT", FILE to PFV then
|
|
p.file.type = status()
|
|
p.file.mod = inmat()
|
|
end else
|
|
no.pfv = true
|
|
end
|
|
*
|
|
errmsg1 = "Dictionary converter halting."
|
|
*
|
|
readv create.syntax from VOC, "CREATE.FILE", 5 else create.syntax = ""
|
|
*
|
|
proceed = true
|
|
begin case
|
|
case no.ufv and no.pfv
|
|
call @DC.MESSAGE( "Neither DICT " : FILE : " nor PDICT ": FILE : " can be opened.", errmsg1 )
|
|
proceed = false
|
|
return
|
|
|
|
case no.ufv = false and no.pfv
|
|
*
|
|
* << The Pick dictionary exists as DICT FILE. We must >>
|
|
* << create a PDICT FILE, move the dictionary items to it, >>
|
|
* << and clear DICT FILE, before converting the items. >>
|
|
*
|
|
maintain.pick.prompt = true
|
|
if create.syntax = "PICK" then
|
|
execute "CREATE.FILE PDICT " : FILE : " " : u.file.mod : ",4," : u.file.type
|
|
end else
|
|
execute "CREATE.FILE PDICT " : FILE : " " : u.file.type : " " : u.file.mod
|
|
end
|
|
open "PDICT", FILE to PFV else
|
|
call @DC.MESSAGE( "PDICT " : FILE : " cannot be opened.", errmsg1 )
|
|
proceed = false
|
|
return
|
|
end
|
|
|
|
select UFV to 2
|
|
eof = false
|
|
loop
|
|
readnext ID from 2 else eof = true
|
|
until eof do
|
|
read ITEM from UFV, ID then
|
|
write ITEM on PFV, ID
|
|
end else
|
|
call @DC.MESSAGE( "Unable to read SELECTed item ": ID : " from DICT " : FILE, "" )
|
|
end
|
|
repeat
|
|
clearfile UFV
|
|
*
|
|
case no.ufv and no.pfv = false
|
|
*
|
|
* << The Pick dictionary exists as PDICT FILE. We must >>
|
|
* << create an empty DICT FILE prior to converting the >>
|
|
* << dictionary items. >>
|
|
*
|
|
maintain.pick.prompt = true
|
|
if create.syntax = "PICK" then
|
|
execute "CREATE.FILE DICT " : FILE : " " : p.file.mod : ",4," : p.file.type
|
|
end else
|
|
execute "CREATE.FILE DICT " : FILE : " " : p.file.type : " " : p.file.mod
|
|
end
|
|
|
|
open "DICT", FILE to UFV else
|
|
call @DC.MESSAGE( "Cannot open DICT " : FILE, errmsg1 )
|
|
proceed = false
|
|
return
|
|
end
|
|
*
|
|
case 1
|
|
*
|
|
* << Both PDICT FILE and DICT FILE exist. Prompt for the >>
|
|
* << user's OK for converting PDICT FILE items. >>
|
|
* << Do not clearfile DICT. >>
|
|
*
|
|
if not( do.reconvert ) then
|
|
print "DICT ": FILE : " already exists. Reconvert (Y/N) ":
|
|
input ans
|
|
if ans[ 1, 1 ] <> "y" and ans[ 1, 1 ] <> "Y" then
|
|
proceed = false
|
|
end
|
|
end
|
|
*
|
|
end case
|
|
gosub 600; * Find out source machine
|
|
return
|
|
*
|
|
*
|
|
******************************************************************************
|
|
* S U B R O U T I N E S
|
|
******************************************************************************
|
|
*
|
|
**************************************************
|
|
600
|
|
* Find out what machine the dictionary came from.
|
|
**************************************************
|
|
*
|
|
if SOURCE.MACHINE <> "M" and SOURCE.MACHINE <> "O" then
|
|
readv SOURCE.MACHINE from PFV, "&PICK.SOURCE.MACHINE&", 1 else
|
|
loop
|
|
until SOURCE.MACHINE = "M" or SOURCE.MACHINE = "O" do
|
|
print "Is this dictionary in Microdata format or Other ":
|
|
print "(M/O) ":
|
|
input SOURCE.MACHINE
|
|
repeat
|
|
end
|
|
end
|
|
writev SOURCE.MACHINE on PFV, "&PICK.SOURCE.MACHINE&", 1
|
|
return
|
|
end
|