ŠĻą”±į>ž’ ž’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’ ½<ž’’’" !#$%&ž’’’()*+,-.801234567'9Ć;ž’’’bž’’’?@AGSDEFTHIJ\LMNWPQRUž’’’ž’’’VjXYZ[>ž’’’^_`acBdž’’’’’’’ghikĖlmno]’’’’’’’’stuvwxy„{|}~Root Entry’’’’’’’’  —įbĪŖć`ŒĢ%®€p U)@Ą€&Headers.SRC’’’’’’’’˜+Headers.DES’’’’]:Interface.SRC’’’’’’’’OĖž’’’  !"#$%&'()*+,-./0123456789:;<=>ž’’’@ž’’’BCDEFGHIJKLMNOPQRSTUVWXYZ[\`ž’’’ž’’’ž’’’abcdefghijklmnopqrstuvwž’’’yz{|}~ž’’’Exporting to LIBS+ workaround using macros, cut and paste' MacroName: UpdateFileMake ' MacroDescription: Make a file of OCLC numbers of records to have OCLC holdings updated ' Macro created by: Joel Hahn, Niles Public Library District sub main '! Add the OCLC number of the current record to a file to be updated in OCLC. Dim CS as Session Set CS = CurrentSession Agency$="KAJA" Dim nContinue as Integer Dim nTimeOut as Integer ' The default timeout for each command is 1 minute. ' Increase this value if your host requires more time ' for each command. nTimeOut = 60 CS.GetTextInRegion CheckScreen, 3, 30, 3, 59 'CheckScreen=Session.ScreenText(3, 30, 1, 30) If InStr(1,CheckScreen,"Brief Titles")<1 Then MsgBox "Please go the Brief Titles screen, select the record, and try again." Goto Done End if CS.Send Chr(1)+"g" '[S-F7] CS.Receive nTimeOut, chr(27) + "[?25h" CS.GetTextInRegion CheckScreen, 12, 12, 12, 44 'CheckScreen=Session.ScreenText(12, 12, 1, 33) If InStr(1,CheckScreen, "You must make a selection before") Then MsgBox "Please select the record, and try again." CS.Send " " Goto Done End If CS.GetTextInRegion CheckScreen, 10, 24, 10, 60 'CheckScreen=Session.ScreenText(10, 24, 1, 37) If InStr(1,CheckScreen, "This record is currently locked by") Then MsgBox "Someone else is using the record; please try again later." CS.Send " " Goto Done End If CS.GetTextInRegion CheckTag, 7, 17, 7, 19 'CheckTag=Session.ScreenText(7,17,1,3) If CheckTag<>"001" Then Goto BadRec End If CS.GetTextInRegion OCLCNum$, 7, 27, 7, 56 OCLCNum$=Trim(OCLCNum$) 'OCLCNum$=Trim(Session.ScreenText(7,27,1,30)) If InStr(1,OCLCNum$, "Fix me") Then Goto BadRec End If If Left(OCLCNum$,3)="cls" Then Goto BadRec ElseIf Left(OCLCNum$,3)="ocm" Then OCLCNum$=Right(OCLCNum$, Len(OCLCNum$)-3) End If If Len(OCLCNum$)<>8 Then Goto BadRec End If If Val(Left(OCLCNum$,3))>300 Then i=9 Do CS.GetTextInRegion CheckTag, i, 17, i, 19 'CheckTag=Session.ScreenText(i,17,1,3) If CheckTag="010" Then CS.GetTextInRegion CheckLN$, i, 30, i, 56 CheckLN$=Trim(CheckLN$) 'CheckLN$=Trim(Session.ScreenText(i,30,1,27)) Exit Do End If i=i+9 Loop While i<15 If OCLCNum$=CheckLN$ Then Goto BadRec End If ElseIf Val(Left(OCLCNum$,3))>600 Then Goto BadRec End If NumSessions%=GetNumSessions() If NumSessions%>1 Then Dim OCLC as Session Dim CCS as Session FoundOCLC=0 CurrentSession.GetName CurSession$ For i=1 to NumSessions% Set CCS=GetSession(i) CCS.GetName SessionName$ If SessionName$="Telnet to OCLC" Then Set OCLC=CCS FoundOCLC=1 ElseIf SessionName$="Telnet to CCS" Then Set CS=CCS End If Next i If FoundOCLC=1 Then Set CurrentSession=OCLC OCLC.PutText "#"+OCLCNum$, 1, 1 RunMacro "PRSMUTIL!SendCommand" OCLC.PutText "tag 049" RunMacro "PRSMUTIL!SendCommand" OCLC.PutText "KAJA", 6, 16 OCLC.ToggleEdit OCLC.PutText "u", 1, 1 RunMacro "PRSMUTIL!SendCommand" Set CurrentSession=CS Else filename$="G:\UPDATE.TXT" filenum%=FreeFile Open filename$ For Append As filenum% Print #filenum%, OCLCNum$ Close filenum% CS.Send chr(1)+"C" '[F3] CS.Receive nTimeOut, chr(27) + "[?25h" End If Else filename$="G:\UPDATE.TXT" filenum%=FreeFile Open filename$ For Append As filenum% Print #filenum%, OCLCNum$ Close filenum% CS.Send chr(1)+"C" '[F3] CS.Receive nTimeOut, chr(27) + "[?25h" End If Goto Done BadRec: MsgBox "Please put the printout aside, to be updated manually." CS.Send chr(1)+"C" '[F3] CS.Receive nTimeOut, chr(27) + "[?25h" Done: End Sub Make a file of OCLC numbers of records to have OCLC holdings updatedķž]Qpäź$9Š ” #„ ĄKAJAĄČ Brief TitlesDPlease go the Brief Titles screen, select the record, and try again.g ĄČ[?25hĄČ You must make a selection before(Please select the record, and try again. "This record is currently locked by9Someone else is using the record; please try again later.001Fix meclsocm010Ą ĄČ ĄTelnet to OCLC Telnet to CCS Ą#ĄČPRSMUTIL!SendCommand ĄČtag 049 Ąu G:\UPDATE.TXTC6Please put the printout aside, to be updated manually.Š-]§#”’’’’V F€&6FVfv†€–˜ ¬¼ ĢF( ŅF0€ŲCSAgencynTimeOutCheckScreen_____CheckTagOCLCNum_iCheckLNNumSessionsFoundOCLCCurSession__CCSSessionNameOCLCfilenamefilenummain 5 €   #F Fm„K+Passport—,~u2\[Ų5 œ <8q”;‘2\ ö&æ&‘5 ö6śFüśV’l’šµ‘5 &©j€q&’l“5 mö6Fļ2\qq&¬l“5 wö6Fļ‘2\qļ,‘2\ ö&æ&‘5 ‡ö6śFüśV’lµ‘'5 Ŗ©jq5 Õ©2\qÆq›<‘2\ ö&æ!&‘5 Łö6śFüśV’lµ‘'"5 ž©j#q5 Õ©2\q$/%'qfļ˜¢˜¤‘2\ ö&fæ)üf6 :ö&µ‘*|+-q˜¬˜8‘2\ .›i¬œ0&‘6 @ö6śFöVśv’lµ‘Get the info for CLSI's 001, 003, and 008 fields from OCLCTest elements of future macrosTransfer a selected OCLC line into a CCS recordInterface.DES’’’’’’’’’’’’^Headers.BIN’’’’’’’’/ž-Transfer.SRC’’’’Kō#Transfer.DES ’’’’’’’’_/$+" Used: 19961009"+"\r" 'b$=b$+CHR$(220)+" Type: a ELvl: I Srce: d Audn:" 'b$=b$+" Ctrl: Lang: eng"+"\r" 'b$=b$+" BLvl: m Form: Conf: 0 Biog:" 'b$=b$+" MRec: Ctry: nyu"+"\r" 'b$=b$+" Cont: b GPub: Fict:" 'b$=b$+" 0 Indx: 1"+"\r" 'b$=b$+" Desc: a Ills: a Fest: 0 DtSt:" 'b$=b$+" s Dates: 1996, "+CHR$(221) 'Get Leader info place=InStr(b$, "Rec stat") lead$=Mid(b$, place+13, 1) place=InStr(b$, "Type") lead$=lead$+Mid(b$, place+7, 1) place=InStr(b$, "BLvl") lead$=lead$+Mid(b$, place+7, 1) place=InStr(b$, "ELvl") lead$=lead$+Mid(b$, place+7, 1) place=InStr(b$, "Desc") lead$=lead$+Mid(b$, place+7, 1) 'Send a Sh-F7, then send the leader info, then send Sh-F10 CCSSession.Send "\x1B[32~" CCSSession.Send lead$ CCSSession.Send "\x1B[21~" OneX=0 '0=doesn't need to be added; 1=needs to be added ThreeX=0 '0=doesn't need to be added; 1=needs to be added CCSSession.GetTextInRegion InsOvr$, 21, 70, 21, 75 If InsOvr$="OVERST" Then CCSSession.Send "\x1B[K" CCSSession.Receive 3, "INSERT" End If CCSSession.GetTextInRegion One$, 7, 17, 7, 19 CCSSession.GetTextInRegion Three$, 8, 17, 8, 19 If One$<>"001" Then OneX=1 If (One$<>"003") and (Three$<>"003") Then ThreeX=1 a$="001ocm" place=0 place=InStr(b$, "OCLC") o$=RTrim(Mid(b$, place+7, 8)) If 8-Len(o$)<>0 Then For i=1 to (8-Len(o$)) o$="0"+o$ Next i End if a$=a$+o$ If OneX=0 Then CCSSession.Send "\x1B[2~" End If If ThreeX=0 Then CCSSession.Send "\x1B[2~" End If CCSSession.Send "\x1B[B" CCSSession.Send "1\x1B[2~" CCSSession.Send "\x1B[A" CCSSession.Send "\r" CCSSession.Send a$ CCSSession.Send "\r" CCSSession.Send "003OCoLC" CCSSession.Send "\r" 'Start Header info; get info for first 18 positions a$="008" place=InStr(b$, "Entered") a$=a$+Mid(b$, place+14, 6) place=InStr(b$, "DtSt") a$=a$+Mid(b$, place+7, 1) plaž’’’‚ƒ„…†‡ˆ‰Š‹ž’’’Žž’’’ž’’’“”•–—˜™ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ce=InStr(b$, "Dates") a$=a$+Mid(b$, place+7, 4)+Mid(b$, place+12, 4) place=InStr(b$, "Ctry") a$=a$+Mid(b$, place+7, 3) 'Get Type, goto Fixed Fields set for the appropriate format place=InStr(b$, "Type") typ=ASC(Mid(b$, place+7, 1)) TwoFifty: Select Case typ Case 97 'Type="a" If InStr(b$, "SrTp")=0 then Goto Bks Else Goto Ser Case 99 'Type="c" Goto Sco Case 101 'Type="e" Goto Map Case 103, 107, 111 'Type="g", "k", or "o" Goto Vis Case 105, 106 'Type="i" or "j" Goto Rec Case 109 'Type="m" Goto Com End Select Bks: place=InStr(b$, "Ills") a$=a$+Mid(b$, place+7, 4) place=InStr(b$, "Audn") 'aka Int Lvl a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Cont") a$=a$+Mid(b$, place+7, 4) place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Conf") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Fest") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Indx") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka MEBE place=InStr(b$, "LitF") 'aka Fict a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Biog") a$=a$+Mid(b$, place+7, 1) Goto End008 Ser: place=InStr(b$, "Freq") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Regl") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "ISSN") 'aka ISDS a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "SrTp") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Orig") 'aka Phys.Med. ThreeH: a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "EntW") 'aka 1st character of Cont a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Cont") 'aka 2nd-4th char's of Cont a$=a$+Mid(b$, place+7, 3) place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Conf") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka Titl page a$=a$+" " 'aka Index a$=a$+" " 'aka Cum Index place=InStr(b$, "Alph") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "S/L") a$=a$+Mid(b$, pl' MacroName: Headers ' MacroDescription: Get the info for CLSI's 001, 003, and 008 ' fields from OCLC and insert it into CLSI Declare function CheckMessage(Text$, Beginning$, Ending$) Declare function CheckLine(Tag$) '*************************************************** function CheckMessage(Text$, Beginning$, Ending$) bRetVal = FALSE Temp$ = Left$(Text$, Len(Beginning$)) if StrComp(Beginning$, Temp$) = 0 then Temp$ = Right$(Text$, Len(Ending$)) if StrComp(Ending$, Temp$) = 0 then bRetVal = TRUE end if end if CheckMessage = bRetVal end function '*************************************************** function CheckLine(Tag$) tRetVal=FALSE Dim CCSTest as Session Set CCSTest = CurrentSession Crow%=(CCSTest.CursorRow) CCSTest.GetTextInRegion CheckTag$, Crow%, 17, Crow%, 19 'MsgBox CheckTag$ & "|" & Tag$ If CheckTag$=Tag$ Then tRetVal=TRUE CheckLine=tRetVal end function '*************************************************** sub main Dim CS as Session Set CS = CurrentSession Dim CCS as Session Dim CCSSession as Session 'Set up Session names 'CurSession [also CS] is OCLC; find the next open non-OCLC 'session and make it CCSSession. Commands may then be sent 'to either session by choosing the proper preface. CurrentSession.GetName CurSession$ NumSessions%=GetNumSessions() For i=1 to NumSessions% Set CCS=GetSession(i) CCS.GetName SessionName$ If (SessionName$<>CurSession$) Then Set CCSSession=CCS End if Next i CCSSession.GetTextInRegion MarcTest$, 3, 32, 3, 37 If Left(Trim(MarcTest$), 4)<>"MARC" Then MsgBox "CLSI display is not in a MARC record. Aborting..." Goto Done End If 'If the cursor is not currently in the Tag column of the 'MARC display, move it there cc=CCSSession.CursorColumn If cc=21 or cc=22 Then CCSSession.Send "\x09\x09\x09" CCSSession.Receive 5, "[?25l" ElseIf cc=25 Then CCSSession.Send "\x09\x09" CCSSession.Receive 5, "[?25l" ElseIf cc>=27 Then CCSSession.Send "\x09" CCSSession.Receive 5, "[?25l" End If 'Make sure cursor is at the first available line of the MARC 'display, moving it there if necessary ccr=CCSSession.CursorRow CCSSession.GetTextInRegion LinNums$, 3, 1, 3, 80 LNplace=Instr(LinNums$, "Line") LinNums$=Right(LinNums$, Len(LinNums$)-LNplace) LNplace2=Instr(LinNums$, "of") CurLin=Val(Mid(LinNums$, 4, LNplace2-4)) If CurLin<>3 Then UpLine=CurLin Do CCSSession.Send "\x1B[A" CCSSession.Receive 5, "[?25l" UpLine=UpLine-1 Loop while UpLine>3 CCSSession.Send "\x1B[17~" '[F6] End If ' Determine how many columns are in the record if CS.CommMode = BLOCK then Columns% = CS.BlockColumns else Columns% = CS.FDXColumns end if ' Make sure we are at the top of the record CS.GetTextInRegion Text$, 2, 1, 2, Columns% ' Check for "Entire --- displayed." if CheckMessage(Text$, "Entire ", " displayed.") = FALSE then ' Check for "Beginning of --- displayed." if CheckMessage(Text$, "Beginning of ", " displayed.") = FALSE then ' Check for "You are already at beginning of the ---" if CheckMessage(Text$, "You are already at beginning of the ", "") = FALSE then ' Check for "You are already viewing the entire ---" if CheckMessage(Text$, "You are already viewing the entire ", "") = FALSE then ' Move position to the beginning of the record CS.PutText "HOME", 1, 1 RunMacro "PRSMUTIL!SendCommand" end if end if end if end if ' Get text to be printed Row% = CS.GetLastRowUsed CS.GetTextInRegion Temp$, 6, 1, Row%, Columns%, TRUE Buffer$ = Buffer$ + Temp$ wraps=0 For g=1 to LEN(Buffer$) If mid(Buffer$, g, 1)=CHR$(13) then wraps=wraps+1 Next g crlf=CHR$(13)+CHR$(10) for g=1 to wraps place=InStr(Buffer$, crlf) l$=Left(Buffer$, place-1) r$=Right(Buffer$, (Len(Buffer$)-(place+1))) '*** Buffer$=l$+r$ next g Set CurrentSession = CCSSession '*************************************************** FixedFields: '001, 003, 008 dim a$ dim b$ dim o$ dim z$ EOL=CHR$(221) b$=GetField(Buffer$, 1, EOL) 'b$=" OCLC: 34939432 Rec stat: c"+"\r" 'b$=b$+" Entered: 19960617 Replaced: 19960617" 'b$=bace+7, 1) Goto End008 Sco: place=InStr(b$, "Comp") a$=a$+Mid(b$, place+7, 2) place=InStr(b$, "FMus") 'aka Format a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka Prts place=InStr(b$, "Audn") 'aka Int lvl a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "AccM") a$=a$+Mid(b$, place+7, 6) place=InStr(b$, "LTxt") a$=a$+Mid(b$, place+7, 2) a$=a$+" " 'aka MEBE a$=a$+" " 'aka ??? a$=a$+" " Goto End008 Com: a$=a$+" " 'aka ??? a$=a$+" " '(3) place=InStr(b$, "Audn") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'Form, aka Repr [not used for COM in OCLC] a$=a$+" " '(2) place=InStr(b$, "File") a$=a$+Mid(b$, place+7, 1) a$=a$+" " a$=a$+" " 'aka GPub? ThreeFifty: a$=a$+" " '(6) Goto End008 Vis: place=InStr(b$, "Time") 'aka Leng a$=a$+Mid(b$, place+7, 3) a$=a$+" " 'aka InLC place=InStr(b$, "Audn") 'aka Int Lvl a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'Mid(b$, place+7, 5) 'aka AccM place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") a$=a$+Mid(b$, place+7, 1) a$=a$+" " '(2) [previously 3] a$=a$+" " 'aka MEBE place=InStr(b$, "TMat") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Tech") a$=a$+Mid(b$, place+7, 1) Goto End008 Rec: place=InStr(b$, "Comp") a$=a$+Mid(b$, place+7, 2) place=InStr(b$, "FMus") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka Prts place=InStr(b$, "Audn") 'aka Int Lvl a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "AccM") a$=a$+Mid(b$, place+7, 6) place=InStr(b$, "LTxt") a$=a$+Mid(b$, place+7, 2) a$=a$+" " 'aka MEBE a$=a$+" " '(2) Goto End008 Map: place=InStr(b$, "Relf") a$=a$+Mid(b$, place+7, 4) a$=a$+" " 'Mid(b$, place+7, 1) 'aka 1st character of Base; aka Prme place=InStr(b$, "Proj") 'aka 2nd-3rd char's of Base a$=a$+Mid(b$, place+7, 2) place=InStr(b$, "CrTp") 'aka RecG a$=a$+Mid(b$, place+7, 1) a$=a$+" " '(2) place=InStr(b$, "GPub") FourH: a$=a$+Mid(b$, place+7, 1) a$=a$+" " '(2) a$=a$+" " 'aka Indx? a$=a$+" " place=InStr(b$, "SpFm") 'aka Form a$=a$+Mid(b$, place+7, 2) Goto End008 End008: place=InStr(b$, "Lang") a$=a$+Mid(b$, place+7, 3) place=InStr(b$, "MRec") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Srce") a$=a$+Mid(b$, place+7, 1) 'a$=a$+"\x09" DoIt: CCSSession.Send a$ CCSSession.Send "\x09" Done: end sub N»²‘.™qH6NÄ©2\zšqH”6NĶ©‘2\ˆ›qHx˜¢˜¤‘2\žqH€™¢™¤‘2\ x6NÖ±‘  ’šŖ”x6Nܱ€6ܱU‘ ”’šŗ£6Nāˆœ¤‘šŠ„v‘6Nėö†ū–`ö¦ū¶lŽŠ¦H››™żŠ˜š vé`© ii œ§  f G ˆ‘SØŹj’š  f Gń’šcĪŽ$©6NņšœŖiŹĪŽÜ’«¬ˆšˆœ®żŖ‘𵑯qH6Nö©2\z°²żŗ‘𵑳qH6Nö©2\z“¶qH6N©2\z·qH6N ©2\zøqH5N®©2\z¹qH6N©2\zŗqHˆ2\z»qH6N©2\z¼qH6N©2\z½qH6N©2\zĄ6N$ˆœĮv‘6N*ö†ū–`ö¦ū¶lŽŠĀˆ›—żŠŸš vé`© išHˆœĆv‘6N4ö†ū–`ö¦ū¶lŽŠÄˆ›’żŠ˜š vé`© išHˆœÅv‘6N;ö†ū–`ö¦ū¶lŽŠĘˆ›•żŠ˜š vé`© išH˜›•żŠš †é`® išØˆœĒv‘6NCö†ū–`ö¦ū¶lŽŠČˆ›”żŠ˜š vé`© išHˆœĖv‘6N‰ö†ū–`ö¦ū¶lŽŠĢ‘›’żŠ˜š vé`© iešīĻżīžŠ8Šżžašé‘NŃv‘6NJö†ū–`ö¦ū¶lŽ‘šµ‘эėээ‰ŅÖŅżžcšé‘Ӎ Ō“Ōżžešé‘Սü֍’Öżžgšé"żžkšéżžošé‘׍¤ ŲNŲżžišéżžjšé‘ŁŚŚżžmšé‘Ūå ßv‘6NQö†ū–`ö¦ū¶lŽŠąˆ›•żŠ˜š vé`© išHˆœįv‘6NXö†ū–`ö¦ū¶lŽŠāˆ›’żŠ˜š vé`© išHˆœćv‘6N_ö†ū–`ö¦ū¶lŽŠäˆ›’żŠ˜š vé`© išHˆœåv‘6Nfö†ū–`ö¦ū¶lŽŠęˆ›•żŠ˜š vé`© išHˆœēv‘6Nmö†ū–`ö¦ū¶lŽŠčˆ›’żŠ˜š vé`© išHˆœév‘6Ntö†ū–`ö¦ū¶lŽŠźˆ›’żŠ˜š vé`© išHˆœėv‘6N{ö†ū–`ö¦ū¶lŽŠģˆ›’żŠ˜š vé`© išHˆœķv‘6N‚ö†ū–`ö¦ū¶lŽŠīˆ›’żŠ˜š vé`© išHˆœļˆ6N‰šˆœšv‘6Nö†ū–`ö¦ū¶lŽŠńˆ›’żŠ˜š vé`© išHˆœņv‘6N”ö†ū–`ö¦ū¶lŽŠóˆ›’żŠ˜š vé`© išHˆœō÷v‘6N›ö†ū–`ö¦ū¶lŽŠųˆ›’żŠ˜š vé`© išHˆœłv‘6N¢ö†ū–`ö¦ū¶lŽŠśˆ›’żŠ˜š vé`© išHˆœūv‘6N©ö†ū–`ö¦ū¶lŽŠüˆ›’żŠ˜š vé`© išHˆœżv‘6NJö†ū–`ö¦ū¶lŽŠžˆ›’żŠ˜š vé`© išHˆœ’v‘6N°ö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœv‘6N_ö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœv‘6N·ö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœv‘6Nfö†ū–`ö¦ū¶lŽŠˆ›”żŠ˜š vé`© išHˆœv‘6Nmö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœ v‘6Ntö†ū–`ö¦ū¶lŽŠ ˆ›’żŠ˜š vé`© išHˆœ ˆ6N‰šˆœ ˆ6N‰šˆœ ˆ6N‰šˆœv‘6N¾ö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœv‘6NÅö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœe v‘6NĖö†ū–`ö¦ū¶lŽŠˆ›“żŠ˜š vé`© išHˆœv‘6NŅö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœˆ6N‰šˆœv‘6NXö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœv‘6N_ö†ū–`ö¦ū¶lŽŠˆ›’żŠ˜š vé`© išHˆœv‘6NŁö†ū–`ö¦ū¶lŽŠķžQP”Ur$ä‰ī,w-#{-ĄĄĄČ ĄČĄ ĄMARC2CLSI display is not in a MARC record. Aborting...Ą \x09\x09\x09 ĄČ[?25lĄČ\x09\x09\x09Lineof\x1B[A\x1B[17~ Ą Ą Ą displayed.Entire Beginning of $You are already at beginning of the #You are already viewing the entire HOME ĄČPRSMUTIL!SendCommand ĄČĄ ĄRec statTypeBLvlELvlDesc\x1B[32~\x1B[21~OVERST\x1B[KINSERT001003001ocmOCLC0\x1B[2~\x1B[B1\x1B[2~\r003OCoLC008EnteredDtStDatesCtrySrTpIllsAudnFormContGPubConfFestIndx LitFBiogFreqReglISSNOrigEntWAlphS/LCompFMusAccMLTxt  File Time TMatTechRelfProjCrTpSpFmLangMRecSrce Ģ]VœŅ’’’’(†Ō±er’’’’-§”#Z §#”’’’’ 0@PbRetValTemp______V F€tRetValCCSTestCrowCheckTag8V F€ "2 BF HF Vf(v†–¦¶ĘÖęö€0€8@"6FHVjzŠPXš`hŖŗpx€ˆĪŽ˜ ØīCSCurSessionNumSessionsi__CCSSessionNameCCSSessionMarcTest__ccccrLinNums_____LNplaceLNplace2CurLinUpLineColumnsTextRowTempBufferwrapsg___crlf__placelrEOLbleadOneXThreeXInsOvrOneThreeao_____typCheckMessageCheckLinemain€5 € €€-€+€  6€F Fm„K+Passport—Š ‘š› £Śf É£Žiœ‘ö ś0£Śö@śPl­‘šµ‘Y› £Öf É£Žiœ‘ö ś0£Öö@śPl­‘𵑠 ’š   ü£Ņ˜—0 ‘š~u2\[Ų‘q2\ 8q¢¤‘2\ £Ž²‘  ’š ü£Ś ˜—Ų~u2\[Ų ~u2\n2\ ‘u2\ 8 j’š š’šc"2V~uüé2\$[BŲqB2\±‘ SBHŲi"2Ŗ’qH” ”%‘2\›• ›i¬i5N*±‘5N1©jy"‘qH2\fšVüV¦šüV§šµ‘1qH5Nk©2\z qH–5N€©‘2\ˆ!!üVŖšµ‘1"qH5N©2\z#qH–5N€©‘2\ˆ$<$üV¬šµ‘*%qH5N›©2\z&qH–5N€©‘2\ˆ'+‘qH2\ šf,qH(”’”P‘2\-v‘5N¢ö†ū–(ö¦ū¶lŽĘ.› (f ńżĘé(i(œ/v‘5N©ö†ū–(ö¦ū¶lŽÖ0›żÖ•šé•(© ih óę1żę”šµ‘s2żęö34qH5N®©2\z5qH–5N€©‘2\ˆ6żö’šö7żö”šµ­’8qH5N·©2\z9<‘q2\Ā’‚‘=‘q2\Ē8>?‘q2\Ģ8@Cq0“’“‘2\Fv5NŃ©6ß© 0’‘𵑱Iv5NŃ©6é© 0’‘𵑄Lv7©5Nł© 0’‘šµ‘[Ov7©6N © 0’‘šµ‘0Rq6NF©’’‘2\MSu6NV©2\mTUVWZ‘q2\s8[q8—’’2\\@8š@œ^‘š_2j"’š @f ń’šc6FK`›’ż"é@© iH›ži²‘`ż’š vai26Fµ’c›ži ››išHövVdfj"’šż’šcjz‘ev‘żVū†@ö–ū¦lŽŠf›żŠ’šé@iPœg› @f ńżŠ’š vé@iXœhPXš@œiifjzo’kuSH2\xt›Żiövšu›šļ ’@i`œ„v‘6N~ö†ū–`ö¦ū¶lŽŠ…›’żŠžš vé`© ihœ†v‘6N‰ö†ū–`ö¦ū¶lŽŠ‡h›’żŠ˜š vé`© išHhœˆv‘6Nö†ū–`ö¦ū¶lŽŠ‰h›’żŠ˜š vé`© išHhœŠv‘6N—ö†ū–`ö¦ū¶lŽŠ‹h›’żŠ˜š vé`© išHhœŒv‘6Nžö†ū–`ö¦ū¶lŽŠh›’żŠ˜š vé`© išHhœqH6N„©2\z‘qHh2\z’qH6N°©2\z”‘šŖ•‘šŗ—qHp¦F¦K‘2\˜p6ˆ›—żŠ˜š vé`© išHˆœ v‘6Nąö†ū–`ö¦ū¶lŽŠ!ˆ›“żŠ˜š vé`© išHˆœ"ˆ6N‰šˆœ#ˆ6N‰šˆœ$ˆ6N‰šˆœ%Ļ(ˆ6N‰šˆœ)ˆ6Nēšˆœ*v‘6NXö†ū–`ö¦ū¶lŽŠ+ˆ›’żŠ˜š vé`© išHˆœ,ˆ6N‰šˆœ-ˆ6Nķšˆœ.v‘6Nņö†ū–`ö¦ū¶lŽŠ/ˆ›’żŠ˜š vé`© išHˆœ0ˆ6N‰šˆœ1ˆ6N‰šˆœ2ˆ6Nłšˆœ3e6v‘6Nö†ū–`ö¦ū¶lŽŠ7ˆ›”żŠ˜š vé`© išHˆœ8ˆ6N‰šˆœ9v‘6NXö†ū–`ö¦ū¶lŽŠ:ˆ›’żŠ˜š vé`© išHˆœ;ˆ6N šˆœ<v‘6Nmö†ū–`ö¦ū¶lŽŠ=ˆ›’żŠ˜š vé`© išHˆœ>v‘6N_ö†ū–`ö¦ū¶lŽŠ?ˆ›’żŠ˜š vé`© išHˆœ@ˆ6Nķšˆ$=Message$ + String(Extra," ")+Chr(13)+Chr(10) PrintBuffer Message$ Goto Done ErrHand: ErrMsg$="Interface Macro failed to complete successfully."+chr(10) ErrMsg$=ErrMsg$+"This record needs to be re-sent."+chr(10)+chr(10) MsgBox ErrMsg$+"Error(" & Err & ") on line #" & Erl & ": " & Error If Expo=1 Then Kill "C:\OCLCAPPS\PASSPORT\EXPORT.DAT" End If If Backup=1 Then FileCopy Direc$+MsgFile$+".BAK", Direc$+MsgFile$+".DAT" FileCopy Direc$+SvFl$+".BAK", Direc$+SvFl$+".DAT" directory=Dir ("X:\CLSI\ONLINE\OCLC\*.*") Do While directory<>"" If directory=CStr(NFileNum) Then Kill "X:\CLSI\ONLINE\OCLC\"+CStr(NFileNum) directory=Dir Loop End If Resume Done Done: end sub Interface.BIN’’’’’’’’ĻJExport-by-Paste.SRC(’’’’’’’’’’’’zāQExport-by-Paste.DES( ’’’’9Transfer.BIN’’’’’’’’’’’’f:²³ü’šµ‘Ö“@0šP6ģCšX@0š60Jšjéµ@HšP6ģCšX@Hš60Jšjé¶8‘50ŗ©l¹Œ·żŒ7ö8µ‘KøżŒż¼ļö8µ‘ø60ż¼ļšj:¹8lŗŒŗ ’»¼”æ˜  !SessionApplication SubfieldLoop2: subc=1 del1=0 Do c$=GetField(b$, subc, CHR$(223)) If subc=1 Then del2=1 d$=Mid(c$, 16, 1) ' Len(c$)-16) Else del2=ASC(Mid(c$, 1, 1))-96 d$=Mid(c$, 3, 1) ' Len(c$)-3) End if If del2<>del1+1 Then If del2=4 Then a$=a$+"u" Else dash=del2-(del1+1) For k=1 to dash a$=a$+"-" Next k End If End If a$=a$+d$ del1=del2 subc=subc+1 Loop While subc<=subf End If : subf=1 Goto Retn '*************************************************** LCCN: dim lc$ dim ln$ If Mid(b$, 16, 1)<>delim Then a$=Mid(b$, 8, 3)+" a" 'Get Marc tag de=0 Else de=1 End If SubfieldCountLCCN: For i=16 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 If subf=0 Then subf=1 Next i If de=1 then subf=subf+1 ' lc$=RTrim(Mid(b$, 16, Len(b$)-16)) ' asci=ASC(Left(lc$, 1)) ' If ASC(Left(lc$, 1))>97 and ASC(Left(lc$, 1))<123 Then ' a$=a$+Left(lc$, 2)+" " ' lc$=Right(lc$, Len(lc$)-2) ' Else ' a$=a$+" " ' End If ' a$=a$+Left(lc$, 2) ' ' lc$=Right(lc$, Len(lc$)-3) ' j=1 ' Do While j<=Len(lc$) ' check=ASC(Mid(lc$, j, 1)) ' If check<48 or check>57 Then ' ln$=LTrim(Mid(lc$, j, Len(lc$)-(j-1))) ' lc$=Left(lc$, j-1) ' Exit Do ' End If ' j=j+1 ' Loop ' ' If 6-Len(lc$)<>0 Then ' For i=1 to (6-Len(lc$)) ' lc$="0"+lc$ ' Next i ' End if ' subf=1 ' a$=a$+lc$+" "+ln$ SubfieldLoopLCCN: ' Dim subx as Integer ' Dim lenD as Integer subx=0 subc=1 Do lc$="" : ln$="" c$=GetField(b$, subc, CHR$(223)) If (subc<>1) or (de=1) Then d$=Mid(c$, 3, Len(c$)-3) If subc<>1 Then a$=a$+Mid(c$, 1, 1) If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If Else If de=1 Then Goto LooperLCCN Else d$=RTrim(Mid(c$,Save-xpo-Save.SRC$’’’’xĮSave-xpo-Save.DES$’’’’’’’’’’’’€Save-xpo-Save.BIN$’’’’‡xpo.SRC’’’’’’’’’’’’Œ ' MacroName: Save-xpo-Save ' MacroDescription: Save record, Export record, then re-save sub main dim CS as session set CS = CurrentSession CS.PutText "s",1,1 RunMacro "PRSMUTIL!SendCommand" CS.GetTextInRegion SaveNum$,2,34,2,37 CS.PutText "/"+CStr(SaveNum),1,1 RunMacro "PRSMUTIL!SendCommand" CS.PutText "xpo", 1, 1 RunMacro "PRSMUTIL!SendCommand" CS.Receive 20, "USMARC" CS.PutText "s", 1, 1 RunMacro "PRSMUTIL!SendCommand" end sub Export record, then saveķž=QU¦īō$I`#dĄsĄČPRSMUTIL!SendCommand ĄČĄČ/xpoUSMARCĄČ =§#”’’’’V FCS_SaveNummain  5F Fm„K+Passport—. ~u2\[Ųq5 ©’’‘2\ u5 ©2\)q“"“%‘2\/q5 :š’’‘2\ u5 ©2\)q5 >©’’‘2\  u5 ©2\) q„5 D©‘2\M q5 ©’’‘2\  u5 ©2\) ˜ SessionApplication' MacroName: xport ' MacroDescription: Export record, then save sub main dim CS as session set CS = CurrentSession CS.PutText "xpo", 1, 1 RunMacro "PRSMUTIL!SendCommand" CS.Receive 20, "USMARC" CS.PutText "s", 1, 1 RunMacro "PRSMUTIL!SendCommand" end sub Export record, then saveķžQF—ĻÕ$ó¬Ć#ĒĄxpoĄČPRSMUTIL!SendCommand ĄČUSMARCĄČs •§#”’’’’V FCS_main  F Fm„K+Passport—& ~u2\[Ųq5 ©’’‘2\ u5 ©2\+q„5 1©‘2\:q 16, Len(c$)-16)) If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If End if End if lc$=d$ 'RTrim(Mid(b$, 16, Len(b$)-16)) asci=ASC(Left(lc$, 1)) If ASC(Left(lc$, 1))>96 and ASC(Left(lc$, 1))<123 Then If ASC(Mid(lc$, 2, 1))>96 and ASC(Mid(lc$, 2, 1))<123 Then a$=a$+Left(lc$, 2)+" " lc$=Right(lc$, Len(lc$)-2) Else a$=a$+Left(lc$, 1)+" " lc$=Right(lc$, Len(lc$)-1) End If Else a$=a$+" " End If a$=a$+Left(lc$, 2) lc$=Right(lc$, Len(lc$)-3) j=1 Do While j<=Len(lc$) check=ASC(Mid(lc$, j, 1)) If check<48 or check>57 Then ln$=LTrim(Mid(lc$, j, Len(lc$)-(j-1))) lc$=Left(lc$, j-1) Exit Do End If j=j+1 Loop If 6-Len(lc$)<>0 Then For i=1 to (6-Len(lc$)) lc$="0"+lc$ Next i End if 'subf=1 a$=a$+lc$+" "+ln$ If subc<>subf Then a$=a$+"\r" LooperLCCN: subc=subc+1 Loop While subc<=subf Goto Retn '*************************************************** FiveOhFive: 'Used only for "[1] 505", "[2] 505", etc. If Mid(b$, 20, 1)<>delim Then a$=Mid(b$, 12, 3)+Mid(b$, 16, 2)+"a" c$=Mid(b$, 20, Len(b$)-20) If Len(c$)>50 Then lenC=Len(c$) subx=lenC\50 If (lenC MOD 50)=0 Then subx=subx-1 End If End If a$=a$+c$ subf=1 de=0 Else SubfieldCount505: For i=19 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 If subf=0 Then subf=1 Next i subf=subf+1 SubfieldLoop505: 'Dim subx as Integer 'Dim lenD as Integer subx=0 subc=1 Do c$=GetField(b$, subc, CHR$(223)) If subc<>1 Then d$=Mid(c$, 3, Len(c$)-3) a$=a$+Mid(c$, 1, 1) If Len(d$)>50 Then lenD=Len(d$) subx=lenD \ 50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=su' MacroName: Transfer ' MacroDescription: Transfer selected OCLC lines into a CCS record '***will now handle multiple LCCN's in a single 010*** '***should handle enhanced 505's ($t, $r, etc.) and multiple*** '***505's ([1] 505, etc.)*** sub main Dim CS as Session ' Set CS = CurrentSession Dim CCS as Session Dim CCSSession as Session 'Set up Session names 'CurSession [also CS] is OCLC; CCSSession is the local telnet. 'Commands may then be sent to either session by choosing the 'proper preface. CurrentSession.GetName CurSession$ NumSessions%=GetNumSessions() For i=1 to NumSessions% Set CCS=GetSession(i) CCS.GetName SessionName$ ' If (SessionName$<>CurSession$) Then ' Set CCSSession=CCS ' End if If SessionName$="Telnet to OCLC" Then Set CS=CCS ElseIf SessionName$="Telnet to CCS" Then Set CCSSession=CCS End If Next i 'get text from OCLC Attr=0 AttrEnd=0 i=1 j=1 Do Do CS.GetChar Testr$, Attrib%, i, j ' MsgBox Str(Attrib%) & "--" & i & " x " & j If Attr=0 Then If Attrib%<>NORMAL Then Attr=1 StartRow%=i StartCol%=j Exit Do End If ElseIf Attr=1 Then If Attrib%=NORMAL Then EndRow%=i EndCol%=j-1 AttrEnd=1 Exit Do End If End If j=j+1 Loop While j<=80 If AttrEnd=1 Then Exit Do End If i=i+1 j=1 Loop While i<=29 If EndCol%=0 Then EndRow%=EndRow%-1 EndCol%=80 End If 'MsgBox StartRow% & "-" & StartCol% & "-" & EndRow% & "-" & EndCol% CS.GetTextInRegion Buffer$, StartRow%, StartCol%, EndRow%, EndCol%, TRUE wraps=0 For g=1 to LEN(Buffer$) If mid(Buffer$, g, 1)=CHR$(13) then wraps=wraps+1 Next g crlf=CHR$(13)+CHR$(10) for g=1 to wraps place=InStr(Buffer$, crlf) l$=Left(Buffer$, place-1) r$=Right(Buffer$, (Len(Buffer$)-(place+1))) '*** Buffer$=l$+r$ next g '*************************************************** Body: Set CurrentSe' MacroName: Interface ' MacroDescription: Export a recort and manipulate Libs+ ' Save & Message Files sub main Dim CS as Session Set CS=CurrentSession Dim C() 'Count for # of existing export files Expo=0 : Backup=0 On Error Goto ErrHand 'Warning: 'Warn$="Make sure the attached printer is turned on. Macro " 'Warn$=Warn$+"will not work properly unless printer is " 'Warn$=Warn$+"ready to print." 'MsgBox Warn$, 48, " " GetOCLCNumAndTitle: CS.GetTextInRegion ONum$, 6, 10, 6, 17 SRow%=1 : SCol%=1 If CS.Find(" 245 ", SRow%, SCol%) Then CS.GetTextInRegion Title$, SRow%, 16, SRow%, 53 Else CS.PutText "PDN", 1, 1 RunMacro "PRSMUTIL!SendCommand" SRow%=1 : SCol%=1 CS.Find " 245 ", SRow%, SCol% CS.GetTextInRegion Title$, SRow%, 16, SRow%, 53 CS.PutText "HOME", 1, 1 RunMacro "PRSMUTIL!SendCommand" End If CS.PutText Chr$(0), 1, 1 Delim%=InStr(Title$, Chr(223)) EndLine%=InStr(Title$, Chr(221)) If Delim%>0 Then Title$=RTrim(Left(Title$, Delim%-1)) End If If EndLine%>0 Then Title$=RTrim(Left(Title$, EndLine%-1)) End If Exporter: directory=Dir ("C:\OCLCAPPS\PASSPORT\*.*") Do While directory<>"" If directory="EXPORT.DAT" Then Kill "C:\OCLCAPPS\PASSPORT\EXPORT.DAT" directory=Dir Loop CS.PutText "xpo", 1, 1 RunMacro "PRSMUTIL!SendCommand" Expo=1 CS.Receive 30, "USMARC" CS.PutText "s", 1, 1 RunMacro "PRSMUTIL!SendCommand" 'CS.Receive 30, "Under" 'CS.Receive 10, "." 'SR%=1 : SC%=1 'CS.Find " ", SR%, SC% 'CS.PutText " ", 1, 1 'CS.MoveCursor 1, 1 CS.PutText Chr$(0), 1, 1 GetXpoData: XpoFile$="C:\OCLCAPPS\PASSPORT\EXPORT.DAT" GetNextFileNum: count=1 ReDim C(1004) directory=Dir ("X:\CLSI\ONLINE\OCLC\*.*") Do While directory<>"" C(count)=directory count=count+1 directory=Dir Loop count2=1 : NFileNum=0 Do While count2<=count v=Val(C(count2)) If v>NFileNum then NFileNum=v count2=count2+1 Loop NFileNum=NFileNum+1 ' If NFileNum=99 Then ' If NFileNum=999 Then ' MsgBxpo.DES’’’’‘xpo.BIN’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’’’’’5 B©’’‘2\ u5 ©2\+˜ SessionApplicationox "You must transfer records and clear the interface save file before sending another record." ' End If MakeBackups: MsgFile$="X:\CLSI\ONLINE\OCLC\OCMSG.DAT" MsgYes=0 directory=Dir ("X:\CLSI\ONLINE\OCLC\*.*") Do While directory<>"" If directory="OCMSG.DAT" Then MsgYes=1 directory=Dir Loop If MsgYes=0 Then OcMsgBackup$="X:\CLSI\ONLINE\OCMSG.DAT" FileCopy OcMsgBackup$, MsgFile$ End If Direc$="X:\CLSI\ONLINE\OCLC\" MsgFile$="OCMSG" SvFl$="OCSAVE" FileCopy Direc$+MsgFile$+".DAT", Direc$+MsgFile$+".BAK" FileCopy Direc$+SvFl$+".DAT", Direc$+SvFl$+".BAK" Backup=1 MakeNewXpoFile: OutFile$="X:\CLSI\ONLINE\OCLC\"+CStr(NFileNum) FileCopy XpoFile$, OutFile$ Kill "C:\OCLCAPPS\PASSPORT\EXPORT.DAT" Expo=0 OpenMsgFile: MsgFile$="X:\CLSI\ONLINE\OCLC\OCMSG.DAT" filenum%=FreeFile Open MsgFile$ For Append as filenum% ' Lock #filenum% ' "-- OC --" in following line originally "-- J2 --" Message$=" "+ONum$+" -- OC -- ssion = CCSSession CCSSession.GetTextInRegion InsOvr$, 21, 70, 21, 75 If InsOvr$="OVERST" Then CCSSession.Send "\x1B[K" CCSSession.Receive 30, "INSERT" End If Lines=0 For h=1 to LEN(Buffer$) if mid(Buffer$, h, 1)=CHR$(221) then Lines=Lines+1 Next h li=1 '2 Do While li<=Lines CCSSession.Send "\r" b$=GetField(Buffer$, li, CHR$(221)) GetLine: dim c$ dim d$ dim delim as String delim=CHR$(223) subf=0 '# of subfields subc=0 'subfield progress counter de=0 '0=1st subfield is $a; 1=1st subfield is not $a 'Get tag & indicators; jump to special line handler for 'lines not handled in the standard way If Mid(b$, 8, 2)="00" Then Goto DoubleO ElseIf Mid(b$, 8, 3)="010" Then Goto LCCN ElseIf Mid(b$, 7, 1)="[" Then Goto FiveOhFive ElseIf Mid(b$, 8, 3)="910" Then Goto NineTen Else a$=Mid(b$, 8, 3)+Mid(b$, 12, 2) End If If Mid(b$, 16, 1)<>delim Then a$=a$+"a" de=0 Else de=1 End If SubfieldCount: For i=16 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 If subf=0 Then subf=1 Next i If de=1 then subf=subf+1 SubfieldLoop: Dim subx as Integer Dim lenD as Integer subx=0 subc=1 Do c$=GetField(b$, subc, CHR$(223)) If (subc<>1) or (de=1) Then d$=Mid(c$, 3, Len(c$)-3) If subc<>1 Then a$=a$+Mid(c$, 1, 1) If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If Else If de=1 Then Goto Looper Else d$=RTrim(Mid(c$, 16, Len(c$)-16)) If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If End if End if a$=a$+d$ If subc<>subf Then a$=a$+"\r" Looper: subc=subc+1 Loop While subc<=subf Retn: CCSSession.Send a$ If li<=Lines Then If de=1 then subf=subf-1 For i=1 to (subf+subx) CCSSession.Send "\x1B[A" Next CCSSession.Send "\x09" End If li=li+1 Loop Goto Done '*************************************************** DoubleO: b$=RTrim(b$) a$=Mid(b$, 8, 3) If Mid(b$, 8, 3)="006" Then c$=Right(Left(b$, Len(b$)-1), Len(b$)-17) a$=a$+c$ subf=1 Else SubfieldCount2: delim=Chr$(223) subf=1 For i=16 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 Next ibx-1 End If End If Else Goto Looper505 End if a$=a$+d$ If subc<>subf Then a$=a$+"\r" Looper505: subc=subc+1 Loop While subc‘ ›’“ˆ©(ie`s‘0›’“ˆ©`ie{nU‘W?p ›“ˆiš(5B¾š0pœ@ › ˆf GɈiˆœAOBp ›’ˆiš(5Bš0pœC › ˆf GɈiˆœDEFp5Bǚ pœGHp ›“ˆiš(pœJ › ˆf GɈiˆœK’švLüv ˆf ńµ‘ŠM‘ ›’üv鈩(iešäNżä0šżä9šµ‘gO0› › ˆf ńüv’šéüv鈩(ii œP ›üv’šéˆiˆœQ RSüv’š vT’V  ˆf G ˆ‘TWōj’š  ˆf Gń’šcų$X5BĶˆš ˆœYiōųÜ’Z\pˆš 5B¾š(š0pœ^ż¼ż¬µ‘^p5B|š pœ`ż¼’𠐼aż¼ż¬µWścJõh ›’„P©(iX±‘i ›”P©(i0›“”P©`išh5B–š˜pœj › Pf GÉ„P©(ixœk xf 2t‘\l xf ńmż2šé8nż2š‘šµ‘o’F8pqrpxš pœs’š¬t‘šĢu4x(j¤š Pf ń’šc,<hy ›’üéP©(iX²‘yż¬’𠐬zż¬‘šµ‘z’š¬{i(,<˜’|ż¬’𠐬‘8‚’š¼ƒ„ ›(›ßiż¼éPixœ…ż¼’šµ‘ʆ › xf Export-by-Paste.BIN(’’’’’’’’’’’’¤‘KUpdateFileMake.SRC& ’’’’}UpdateFileMake.DES&’’’’’’’’’’’’?DUpdateFileMake.BIN&’’’’’’’’AČ Gɔx©(i€œ‡p ›’’x©(iš0pœˆ €f 2t‘S‰ €f É8Š2N8‹2R‘‚‘Œ’F8Ž@‘’p€š pœ“ż¼ż¬µ‘“p5B|š pœ•ż¼’𠐼–ż¼ż¬µ‹ž—™Ųń ›”™P©(i5Bњ0pœž0› › Pf GÉ”P©(ii xœŸpxš 5Bך(pœ ’š¬”Qńؘ - €@ € NORMALTRUE1SessionApplicationBš© 2\e³ią’“qP5ķž[QŻB.šö$78¼ō#ųĄ ĄČĄ ĄTelnet to OCLC Telnet to CCSĄČĄ€ĄČ ĄOVERST\x1B[K ĄČINSERTĄČ\r00010[910a\x1B[A\x09006u- a   000a000°a[§#”’’’’NV€, <F JF PFVfv€†€ˆ€Š€Œ€Ž °ÄŌ (0äų(8H8@HXh|ŒœPX¬¼Ģ`hpąš€x€€,<L\l| “ĈŌäų˜,<CurSessionNumSessionsi__CCSSessionNameCSCCSSessionAttrAttrEndjTestrAttribStartRowStartColEndRowEndCol_Bufferwrapsg_____crlf_____placelrInsOvrLinesh__libdelimsubfsubcde__a__subxcdlenD____del1del2dashk____lclnascicheck___lenC__main  €  5F Fm„K+Passport— ~u2\n2\ ‘u2\ 8 j’šš’šc,z~uüé2\[<Ųq<2\5B²‘S<JŲ5B'²‘ S<PŲi,†’‘šV‘šf’š’šv !qJ†üéüvé2\7#üV‘šµ‘I$†€‡‘/%’šV&üéˆ8'üvéŠ8()*Z*üV’šµ‘H+†€‚‘5,üéŒ8-üv’šéŽ8.’šf/,012üv’š v3üvPšµ’4üf’šµ‘5467ü’š 8’šv9ü®šµ²ž;Ž‘‚‘<Œ’FŒ8=PŽ8>AqJˆŠŒŽ’2\BC‘š received "+Title$ Print #filenum%, Message$ ' Unlock #filenum% Close filenum% MakeSaveData: 'Date TodayDate=Date : TodayDate=Right("0"+TodayDate, 8) Lef=Left(TodayDate, 3) Rig=Right(TodayDate, Len(TodayDate)-3) : Rig=Right("0"+Rig, 5) TodayDate=Lef+Rig 'Time Tm=Time : PM=Right(Tm, 2) : h=InStr(Tm, ":") Hr=Val(Left(Tm, h-1)) : MinSec=Mid(Tm, h+1, 5) If PM="PM" and Hr<12 Then Hr=Hr+12 End If Hhr=CStr(Hr) Hhr=Right("0"+Hhr, 2) Tm=Hhr+":"+MinSec 'Specia DĄj°’š f ń’šcÄŌKE ›’ż°é©(i0›ži²‘Eż ’𠐠FiĄÄŌµ’H ›ži(››iš0öäIōj°’šż ’šcų’J‘żäūö(ū8lŽHK ›żH’šéi8œL › f ńżH’š éi@œM8@š œNiōųn’RuSP2\MSqPH¦F¦K‘2\BTH5BS²‘*UqP5B\© 2\eVqPÆ5Bk© ‘2\tWY‘šXZxjh’š f ń’šc|ŒL[ ›’żhé©(i0›Żi²‘[żX’š X\ix|Œ“’^’šœ_żœżXµ‘s`qP5B|© 2\ea ›(›ŻiżœéiPœg ›ßiXœi‘š¬j‘š¼k‘šĢo ›“™P©(i5B²‘pćq·q ›”™P©(i5B†²‘rĮsŠs ›’˜P©(i5BŒ²‘ttu]u ›”™P©(i5B²‘v¹w0x ›”™P©(i0›“P©`išhpœyz ›’”P©(iX±‘'{p5B–š pœ|‘šĢ} ~’šĢ‚Üj”š Pf ń’šcąšcƒ ›’üéP©(iX²‘ƒż¬’𠐬„ż¬‘𵑠„’š¬…iÜąš’†żĢ’𵑆ż¬’𠐬‹‘8Œ’š¼Ž ›(›ßiż¼éPixœż¼’šżĢ’šµ‘+ › xf Gɔx©(i€œż¼’𵑑‘p ›’’x©(iš0pœ’ €f 2t‘N“ €f É8”2N8•2R‘‚‘–’F8—˜™ĄšżĢ’𵑛āœœ0› › xf GÉ”x©(ii €œž €f 2t‘NŸ €f É8 2N8”2R‘‚‘¢’F8£¤„¦§p€š pœØż¼ż¬µ‘Øp5B|š pœŖż¼’𠐼«ż¼ż¬µĒż®qPp2\eÆżœżXµ‘ƒ°żĢ’𵑰ż¬’š¬±j’šż¬š ’šc ²qP5Bš© 2\e³ią’“qP5B£© 2\eµ¶żœ’š œ·zśøä ¼ ›Pi Pœ½ ›”™P©(ipœæ ›”™P©(i5BŖ²‘eĄ › Pf GÉ(› Pf GÉPiixœĮpxš pœĀ’š¬ƍCĘ ›ßiXœĒ’š¬Č(j”š Pf ń’šc,<CÉ ›’üéP©(iX²‘Éż¬’𠐬Źi(,<½’Ķ’š¼Ī‘šLĻŠ ›(›ßiż¼éPixœŃż¼’šµ‘/Ņ’š\Ó ›’”x©(i€œŌBՑ ›’’x©(ie`Fš\Ö ›’”x©(i€œ×Ųż\żL’𠐵‘ŒŁż\•šµ‘(i0›Żi²‘[żX’š X\ix|Œ“’^’šœ_żœżXµ‘s`qP5B|© 2\ea ›(›ŻiżœéiPœg ›ßiXœi‘š¬j‘š¼k‘šĢo ›“™P©(i5B²‘pćq·q ›”™P©(i5B†²‘rĮsŠs ›’˜P©(i5BŒ²‘ttu]u ›”™P©(i5B²‘v¹w0x ›”™P©(i0›“P©`išhpœyz ›’”P©(iX±‘'{p5B–š pœ|‘šĢ} ~’šĢ‚Üj”š Pf ń’šcąšcƒ ›’üéP©(iX²‘ƒż¬’𠐬„ż¬‘𵑠„’š¬…iÜąš’†żĢ’𵑆ż¬’𠐬‹‘8Œ’š¼Ž ›(›ßiż¼éPixœż¼’šżĢ’šµ‘+ › xf Gɔx©(i€œż¼’𵑑‘p ›’’x©(iš0pœ’ €f 2t‘N“ €f É8”2N8•2R‘‚‘–’F8—˜™ĄšżĢ’𵑛āœr$ + Temp$ ' Get message at the top of the record CS.GetTextInRegion Text$, 2, 1, 2, Columns% bLoop% = FALSE bAtTop% = FALSE ' Check for "Entire --- displayed." if CheckMessage(Text$, "Entire ", " displayed.") = TRUE then bAtTop% = TRUE else ' Check for "End of --- displayed." if CheckMessage(Text$, "End of ", " displayed.") = FALSE then ' Check for "You are already at end of the ---" if CheckMessage(Text$, "You are already at end of the ", "") = FALSE then ' Check for "You are already viewing the entire ---" if CheckMessage(Text$, "You are already viewing the entire ", "") = TRUE then bAtTop% = TRUE else ' Move to the next page RunMacro "PRSMUTIL!PageDown" nPages = nPages + 1 ' Allow only 15 pages to print if nPages < 15 then bLoop% = TRUE end if end if end if end if end if Loop ' Move position to the beginning of the record if bAtTop% = FALSE then CS.PutText "HOME", 1, 1 RunMacro "PRSMUTIL!SendCommand" end if wraps=0 For g=1 to LEN(Buffer$) If mid(Buffer$, g, 1)=CHR$(13) then wraps=wraps+1 Next g crlf=CHR$(13)+CHR$(10) for g=1 to wraps place=InStr(Buffer$, crlf) l$=Left(Buffer$, place-1) r$=Right(Buffer$, (Len(Buffer$)-(place+1))) '*** Buffer$=l$+r$ next g '*************************************************** FixedFields: '001, 003, 008 dim a$ dim b$ Call FixedFields(a$, b$) '*************************************************** Body: '!!! must make check for all additional lines (949, 965, 999, etc.) !!! 'On Error Goto Done2 Do While CheckLine("9")=FALSE CCSSession.Send "\x1B[2~" CCSSession.Receive 50, "[?25l" '" " '...Receive 5,... Loop Do While CheckLine("9")=TRUE CCSSession.Send "\x1B[2~" CCSSession.Receive 50, "[?25l" '" " '...Receive 5,... Loop 'Do While (CheckLine("910")=FALSE) '999 ' If (CheckLine("777")=TRUE) Then Exit Do ' CCSSession.Send "\x1B[2~" ' CCSSession.Receive 20, " " '...Receive 2,... 'Loop 'If (CheckLine("999")=TRUE) Then CCSSession.Send "\x1B[2~" Lines=0 For h=1 to LEN(Buffer$) if mid(Buffer$, h, 1)=CHR$(221) then Lines=Lines+1 Next h li=2 Do While li<=Lines CCSSession.Send "\r" b$=GetField(Buffer$, li, CHR$(221)) GetLine: dim c$ dim d$ dim delim as String delim=CHR$(223) subf=0 '# of subfields subc=0 'subfield progress counter de=0 '0=1st subfield is $a; 1=1st subfield is not $a 'Get tag & indicators; jump to special line handler for 'lines not handled in the standard way If Mid(b$, 8, 2)="00" Then Call DoubleO(a$, b$) Goto Retn ElseIf Mid(b$, 7, 1)="[" Then Call FiveOhFive(a$, b$) Goto Retn ElseIf Mid(b$, 8, 3)="910" Then Call NineTen(a$, b$) Goto Retn Else a$=Mid(b$, 8, 3)+Mid(b$, 12, 2) End If '*************************************************** Call Mainhandler (a$, b$) '*************************************************** Retn: CCSSession.Send a$ li=li+1 Loop '*************************************************** 'Done2: ' If Err=102 Then Resume Next Done: end sub '*************************************************** Sub MainHandler(a$, b$) delim=Chr$(223) If Mid(b$, 16, 1)<>delim Then a$=a$+"a" de=0 Else de=1 End If SubfieldCount: For i=16 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 If subf=0 Then subf=1 Next i If de=1 then subf=subf+1 SubfieldLoop: Dim subx as Integer Dim lenD as Integer subx=0 subc=1 Do c$=GetField(b$, subc, CHR$(223)) If (subc<>1) or (de=1) Then d$=Mid(c$, 3, Len(c$)-3) If subc<>1 Then a$=a$+Left(c$, 1) '***Does 015 g' MacroName: Export-by-Paste ' MacroDescription: Exporting to LIBS+ workaround using macros, ' cut and paste Declare Function CheckMessage(Text$, Beginning$, Ending$) Declare Function CheckLine(Tag$) Declare Function LCCN(lc$) As String Declare Sub FixedFields(a$, b$) Declare Sub MainHandler(a$, b$) Declare Sub DoubleO(a$, b$) Declare Sub FiveOhFive(a$, b$) Declare Sub NineTen(a$, b$) Dim CCSSession as Session '*************************************************** function CheckMessage(Text$, Beginning$, Ending$) bRetVal = FALSE Temp$ = Left$(Text$, Len(Beginning$)) if StrComp(Beginning$, Temp$) = 0 then Temp$ = Right$(Text$, Len(Ending$)) if StrComp(Ending$, Temp$) = 0 then bRetVal = TRUE end if end if CheckMessage = bRetVal end function '*************************************************** function CheckLine(Tag$) tRetVal=FALSE Dim CCST as Session Dim CCSTest as Session CurrentSession.GetName CurSession$ NumSessions%=GetNumSessions() For i=1 to NumSessions% Set CCST=GetSession(i) CCST.GetName SessionName$ If (SessionName$="Telnet to CCS") Then Set CCSTest=CCST End if Next i Digits%=Len(Tag$) Crow%=(CCSTest.CursorRow) CCSTest.GetTextInRegion CheckTag$,Crow%,17,Crow%,(16+Digits%) 'If Tag$="999" Then MsgBox CheckTag$ & "|" & Tag$ If CheckTag$=Tag$ Then tRetVal=TRUE CheckLine=tRetVal end function '*************************************************** sub main Dim CS as Session Set CS = CurrentSession Dim CCS as Session 'Set up Session names 'CurSession [also CS] is OCLC; find the next open non-OCLC 'session and make it CCSSession. Commands may then be sent 'to either session by choosing the proper preface. CurrentSession.GetName CurSession$ NumSessions%=GetNumSessions() For i=1 to NumSessions% Set CCS=GetSession(i) CCS.GetName SessionName$ If (SessionName$<>CurSession$) Then Set CCSSession=CCS End if Next i CCSSession.GetTextInRegion MarcTest$, 3, 32, 3, 37 If Left(Trim(MarcTest$), 4)<>"MARC" Then MsgBox "CLSI display is not in a MARC record. Aborting..." Goto Done End If 'If the cursor is not currently in the Tag column of the 'MARC display, move it there cc=CCSSession.CursorColumn If cc=21 or cc=22 Then CCSSession.Send "\x09\x09\x09" CCSSession.Receive 5, "[?25l" ElseIf cc=25 Then CCSSession.Send "\x09\x09" CCSSession.Receive 5, "[?25l" ElseIf cc>=27 Then CCSSession.Send "\x09" CCSSession.Receive 5, "[?25l" End If 'Make sure cursor is at the first available line of the MARC 'display, moving it there if necessary ccr=CCSSession.CursorRow CCSSession.GetTextInRegion LinNums$, 3, 1, 3, 80 LNplace=Instr(LinNums$, "Line") LinNums$=Right(LinNums$, Len(LinNums$)-LNplace) LNplace2=Instr(LinNums$, "of") CurLin=Val(Mid(LinNż’’’‚ƒr…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›ž’’’žŸ ”¢£­„¦§Ø©Ŗ«¬œ®Æ°±²³“µ¶·ø¹ŗ»¼Ą¾æCĮĀÄĘÅž’’’ĒČž’’’’’’’’’’’Ģ:’’’’’’’’ŠŃŅÓŌÕÖ×=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ums$, 4, LNplace2-4)) If CurLin<>3 Then UpLine=CurLin Do CCSSession.Send "\x1B[A" CCSSession.Receive 5, "[?25l" UpLine=UpLine-1 Loop while UpLine>3 CCSSession.Send "\x1B[17~" '[F6] End If ' Determine how many columns are in the OCLC record if CS.CommMode = BLOCK then Columns% = CS.BlockColumns else Columns% = CS.FDXColumns end if ' Make sure we are at the top of the record CS.GetTextInRegion Text$, 2, 1, 2, Columns% ' Check for "Entire --- displayed." if CheckMessage(Text$, "Entire ", " displayed.") = FALSE then ' Check for "Beginning of --- displayed." if CheckMessage(Text$, "Beginning of ", " displayed.") = FALSE then ' Check for "You are already at beginning of the ---" if CheckMessage(Text$, "You are already at beginning of the ", "") = FALSE then ' Check for "You are already viewing the entire ---" if CheckMessage(Text$, "You are already viewing the entire ", "") = FALSE then ' Move position to the beginning of the record CS.PutText "HOME", 1, 1 RunMacro "PRSMUTIL!SendCommand" end if end if end if end if bLoop% = TRUE nPages = 0 ' Get text to be printed Do While bLoop% = TRUE Row% = CS.GetLastRowUsed CS.GetTextInRegion Temp$, 6, 1, Row%, Columns%, TRUE Buffer$ = Buffeet translated like 010 by MarcParms?? If Left(a$, 3)="010" Then d$=LCCN(d$) End If If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If Else If de=1 Then Goto Looper Else d$=RTrim(Mid(c$, 16, Len(c$)-16)) If Left(a$, 3)="010" Then d$=LCCN(d$) End If If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If End if End if a$=a$+d$ If subc<>subf Then a$=a$+"\r" Looper: subc=subc+1 Loop While subc<=subf If de=1 then subf=subf-1 For i=1 to (subf+subx) a$=a$+"\x1B[A" Next a$=a$+"\x09" End Sub '*************************************************** Sub DoubleO(a$, b$) DoubleO: b$=RTrim(b$) a$=Mid(b$, 8, 3) If Mid(b$, 8, 3)="006" Then c$=Right(Left(b$, Len(b$)-1), Len(b$)-17) a$=a$+c$ subf=1 Else SubfieldCount2: delim=Chr$(223) subf=1 For i=16 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 Next i SubfieldLoop2: subc=1 del1=0 Do c$=GetField(b$, subc, CHR$(223)) If subc=1 Then del2=1 d$=Mid(c$, 16, 1) ' Len(c$)-16) Else del2=ASC(Mid(c$, 1, 1))-96 d$=Mid(c$, 3, 1) ' Len(c$)-3) End if If del2<>del1+1 Then If del2=4 Then a$=a$+"u" Else dash=del2-(del1+1) For k=1 to dash a$=a$+"-" Next k End If End If a$=a$+d$ del1=del2 subc=subc+1 Loop While subc<=subf End If : subf=1 End Sub '*************************************************** Function LCCN(lc$) dim ln$ If Mid(b$, 16, 1)<>delim Then a$=Mid(b$, 8, 3)+" a" 'Get Marc tag de=0 Else de=1 End If SubfieldCountLCCN: For i=16 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 If subf=0 Then subf=1 Next i If de=1 then subf=subf+1 ' lc$=RTrim(Mid(b$, 16, Len(b$)-16)) ' asci=ASC(Left(lc$, 1)) ' If ASC(Left(lc$, 1))>97 and ASC(Left(lc$, 1))<123 Then ' a$=a$+Left(lc$, 2)+" " ' lc$=Right(lc$, Len(lc$)-2) ' Else ' a$=a$+" " ' End If ' a$=a$+Left(lc$, 2) ' ' lc$=Right(lc$, Len(lc$)-3) ' j=1 ' Do While j<=Len(lc$) ' check=ASC(Mid(lc$, j, 1)) ' If check<48 or check>57 Then ' ln$=LTrim(Mid(lc$, j, Len(lc$)-(j-1))) ' lc$=Left(lc$, j-1) ' Exit Do ' End If ' j=j+1 ' Loop ' ' If 6-Len(lc$)<>0 Then ' For i=1 to (6-Len(lc$)) ' lc$="0"+lc$ ' Next i ' End if ' subf=1 ' a$=a$+lc$+" "+ln$ SubfieldLoopLCCN: ' Dim subx as Integer ' Dim lenD as Integer subx=0 subc=1 Do lc$="" : ln$="" c$=GetField(b$, subc, CHR$(223)) If (subc<>1) or (de=1) Then d$=Mid(c$, 3, Len(c$)-3) If subc<>1 Then a$=a$+Mid(c$, 1, 1) If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If Else If de=1 Then Goto LooperLCCN Else d$=RTrim(Mid(c$, 16, Len(c$)-16)) If Len(d$)>50 Then lenD=Len(d$) subx=lenD\50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If End if End if lc$=d$ 'RTrim(Mid(b$, 16, Len(b$)-16)) asci=ASC(Left(lc$, 1)) If ASC(Left(lc$, 1))>97 and ASC(Left(lc$, 1))<123 Then a$=a$+Left(lc$, 2)+" " lc$=Right(lc$, Len(lc$)-2) Else a$=a$+" " End If a$=a$+Left(lc$, 2) lc$=Right(lc$, Len(lc$)-3) j=1 Do While j<=Len(lc$) check=ASC(Mid(lc$, j, 1)) If check<48 or check>57 Then ln$=LTrim(Mid(lc$, j, Len(lc$)-(j-1))) lc$=Left(lc$, j-1) Exit Do End If j=j+1 Loop If 6-Len(lc$)<>0 Then For i=1 to (6-Len(lc$)) lc$="0"+lc$ Next i End if 'subf=1 a$=a$+lc$+" "+ln$ If subc<>subf Then a$=a$+"\r" LooperLCCN: subc=subc+1 Loop While subc<=subf LCCN=lcn$ End Function '*************************************************** Sub FiveOhFive(a$, b$) FiveOhFive: 'Used only for "[1] 505", "[2] 505", etc. If Mid(b$, 20, 1)<>delim Then a$=Mid(b$, 12, 3)+Mid(b$, 16, 2)+"a" c$=Mid(b$, 20, Len(b$)-20) If Len(c$)>50 Then lenC=Len(c$) subx=lenC\50 If (lenC MOD 50)=0 Then subx=subx-1 End If End If a$=a$+c$ subf=1 de=0 Else SubfieldCount505: For i=19 to Len(b$) If Mid(b$, i, 1)=delim Then subf=subf+1 If subf=0 Then subf=1 Next i subf=subf+1 SubfieldLoop505: 'Dim subx as Integer 'Dim lenD as Integer subx=0 subc=1 Do c$=GetField(b$, subc, CHR$(223)) If subc<>1 Then d$=Mid(c$, 3, Len(c$)-3) a$=a$+Mid(c$, 1, 1) If Len(d$)>50 Then lenD=Len(d$) subx=lenD \ 50 'should be same as Int(.../50) If (lenD MOD 50)=0 Then subx=subx-1 End If End If Else Goto Looper505 End if a$=a$+d$ If subc<>subf Then a$=a$+"\r" Looper505: subc=subc+1 Loop While subc"001" Then OneX=1 If (One$<>"003") and (Three$<>"003") Then ThreeX=1 'Goto Done a$="001ocm" place=0 place=InStr(b$, "OCLC") o$=RTrim(Mid(b$, place+7, 8)) If 8-Len(o$)<>0 Then For i=1 to (8-Len(o$)) o$="0"+o$ Next i End if a$=a$+o$ If OneX=0 Then CCSFF.Send "\x1B[2~" End If If ThreeX=0 Then CCSFF.Send "\x1B[2~" End If ' CCSFF.Send "\x1B[B" ' Do While (CheckLine("00")=TRUE) ' CCSFF.Send "\x1B[2~" ' Loop ' CCSFF.Send "\x1B[A" CCSFF.Send "\r" CCSFF.Send a$ CCSFF.Send "\r" CCSFF.Send "003OCoLC" CCSFF.Send "\r" 'Start Header info; get info for first 18 positions a$="008" place=InStr(b$, "Entered") a$=a$+Mid(b$, place+14, 6) place=InStr(b$, "DtSt") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Dates") a$=a$+Mid(b$, place+7, 4)+Mid(b$, place+12, 4) place=InStr(b$, "Ctry") a$=a$+Mid(b$, place+7, 3) 'Get Type, goto Fixed Fields set for the appropriate format place=InStr(b$, "Type") typ=ASC(Mid(b$, place+7, 1)) Select Case typ Case 97 'Type="a" If InStr(b$, "SrTp")=0 then Goto Bks Else Goto Ser Case 99 'Type="c" Goto Sco Case 101 'Type="e" Goto Map Case 103, 107, 111 'Type="g", "k", or "o" Goto Vis Case 105, 106 'Type="i" or "j" Goto Rec Case 109 'Type="m" Goto Com End Select Bks: place=InStr(b$, "Ills") a$=a$+Mid(b$, place+7, 4) place=InStr(b$, "Audn") 'aka Int Lvl a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Cont") a$=a$+Mid(b$, place+7, 4) place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Conf") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Fest") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Indx") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka MEBE place=InStr(b$, "LitF") 'aka Fict a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Biog") a$=a$+Mid(b$, place+7, 1) Goto End008 Ser: place=InStr(b$, "Freq") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Regl") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "ISSN") 'aka ISDS a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "SrTp") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Orig") 'aka Phys.Med. a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "EntW") 'aka 1st character of Cont a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Cont") 'aka 2nd-4th char's of Cont a$=a$+Mid(b$, place+7, 3) place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Conf") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka Titl page a$=a$+" " 'aka Index a$=a$+" " 'aka Cum Index place=InStr(b$, "Alph") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "S/L") a$=a$+Mid(b$, place+7, 1) Goto End008 Sco: place=InStr(b$, "Comp") a$=a$+Mid(b$, place+7, 2) place=InStr(b$, "FMus") 'aka Format a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka Prts place=InStr(b$, "Audn") 'aka Int lvl a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "AccM") a$=a$+Mid(b$, place+7, 6) place=InStr(b$, "LTxt") a$=a$+Mid(b$, place+7, 2) a$=a$+" " 'aka MEBE a$=a$+" " 'aka ??? a$=a$+" " Goto End008 Com: a$=a$+" " 'aka ??? a$=a$+" " '(3) place=InStr(b$, "Audn") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'Form, aka Repr [not used for COM in OCLC] a$=a$+" " '(2) place=InStr(b$, "File") a$=a$+Mid(b$, place+7, 1) a$=a$+" " a$=a$+" " 'aka GPub? a$=a$+" " '(6) Goto End008 Vis: place=InStr(b$, "Time") 'aka Leng a$=a$+Mid(b$, place+7, 3) a$=a$+" " 'aka InLC place=InStr(b$, "Audn") 'aka Int Lvl a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'Mid(b$, place+7, 5) 'aka AccM place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") a$=a$+Mid(b$, place+7, 1) a$=a$+" " '(2) [previously 3] a$=a$+" " 'aka MEBE place=InStr(b$, "TMat") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Tech") a$=a$+Mid(b$, place+7, 1) Goto End008 Rec: place=InStr(b$, "Comp") a$=a$+Mid(b$, place+7, 2) place=InStr(b$, "FMus") a$=a$+Mid(b$, place+7, 1) a$=a$+" " 'aka Prts place=InStr(b$, "Audn") 'aka Int Lvl a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Form") 'aka Repr a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "AccM") a$=a$+Mid(b$, place+7, 6) place=InStr(b$, "LTxt") a$=a$+Mid(b$, place+7, 2) a$=a$+" " 'aka MEBE a$=a$+" " '(2) Goto End008 Map: place=InStr(b$, "Relf") a$=a$+Mid(b$, place+7, 4) a$=a$+" " 'Mid(b$, place+7, 1) 'aka 1st character of Base; aka Prme place=InStr(b$, "Proj") 'aka 2nd-3rd char's of Base a$=a$+Mid(b$, place+7, 2) place=InStr(b$, "CrTp") 'aka RecG a$=a$+Mid(b$, place+7, 1) a$=a$+" " '(2) place=InStr(b$, "GPub") a$=a$+Mid(b$, place+7, 1) a$=a$+" " '(2) a$=a$+" " 'aka Indx? a$=a$+" " place=InStr(b$, "SpFm") 'aka Form a$=a$+Mid(b$, place+7, 2) Goto End008 End008: place=InStr(b$, "Lang") a$=a$+Mid(b$, place+7, 3) place=InStr(b$, "MRec") a$=a$+Mid(b$, place+7, 1) place=InStr(b$, "Srce") a$=a$+Mid(b$, place+7, 1) 'a$=a$+"\x09" DoIt: CCSFF.Send a$ CCSFF.Send "\r777\x09\x09\x09" CCSFF.Send "\r777\x09\x09\x09" End Sub • ›i¬i5H:±‘5HA©jĆ ‘s2\všPüP¦šüP§šµ‘1s5H{©2\Šs–5H©‘2\˜  üPŖšµ‘1!s5H ©2\Š"s–5H©‘2\˜#<#üP¬šµ‘*$s5H«©2\Š%s–5H©‘2\˜&*‘s2\*š`+s(”’”P‘2\/,p‘5H²ö€ū(ö ū°lŽĄ-› (f ńżĄé(i(œ.p‘5H¹ö€ū(ö ū°lŽŠ/›żŠ•šé•(© ih óą0żą”šµ‘s1żąš23s5H¾©2\Š4s–5H©‘2\˜5żš’šš6żš”šµ­’7s5HĒ©2\Š8;‘q2\Ņ’‚‘<‘q2\×8=>‘q2\Ü8?Bq0“’“‘2\/Ep5Hį©6ļ© 0’‘𵑳Hp5Hį©6ł© 0’‘𵑆Kp7©6H © 0’‘šµ‘[Np7©6H0© 0’‘šµ‘0Qq6HV©’’‘2\]Ru6Hf©2\}STUVX’ 8Y‘š \ ’‚‘š]‘q2\ƒ8_q8—’’2\/a@8š@œdq0“’“‘2\/f‘ 8g‘8jp5Hį©6ļ© 0’’šµ‘k’8ląnp5Hį©6ˆ© 0’‘𵑳qp7©6H’© 0’‘šµ‘ˆtp7©6H0© 0’’šµ‘u’8vKxu6H³©2\}zż ’š p }ż  šµ‘ ~’ 8€‚ƒ„Wž‡‘‚‘0ˆq6HV©’’‘2\]‰u6Hf©2\}ŠŒ‘š @j0’š @f ń’šcDTKŽ›’ż0é@© iH›ži²‘Žż ’š p i@DTµ’‘›ži ››išHöpd’tj0’šż ’šcxˆ‘“p‘żdū€@öū lŽ˜”›ż˜’šé@iPœ•› @f ńż˜’š pé@iXœ–PXš@œ—itxˆo’žh`’£p6HĒ©’‘šµ‘4¤s6HĖ©2\Š„s25H©‘2\˜¦¬’§p6HĒ©’’šµ‘4Øs6HĖ©2\Š©s25H©‘2\˜Ŗ¬’³‘šØ“Čjø’š @f ń’šcĢÜLµ›’żøé@© iH›Żi²‘µżØ’š pضiČĢÜ“’ø“šģ¹żģżØµ‘Žŗs6HÕ©2\Š»› ›Żiżģé@ihœĮ›ßipœƑšüđš őšÉ›“™h© i6Hڲ‘Źh`’Ė¼Ģ¦Ģ›’˜h© i6Hß²‘Ķh`’ĪĻkĻ›”™h© i6H㲑Šh`’эFŅ0Ó›”™h© iH›“h©xiš€`œŌ×h`’Üs`2\ŠŻżģ’š pģߍ_žꘗ¶~u2\n2\ ‘u2\8j’šš’šc,W~uüé2\[<Ųq<2\ 5B²‘  S<JŲ  i,©’›Żiö`P›Pļ ’i£Śœ`‘6B!öpū€£Śöū lް›’ż°žš `é£Ś© i(œ`‘6B,öpū€£Śöū lް(›’ż°˜š `é£Ś© iš0(œ`‘6B3öpū€£Śöū lް(›’ż°˜š `é£Ś© iš0(œ`‘6B:öpū€£Śöū lް(›’ż°˜š `é£Ś© iš0(œ`‘6BAöpū€£Śöū lް(›’ż°˜š `é£Ś© iš0(œqJ6BH©2\ŠqJÆ6BS©‘2\˜qJ(2\Š qJ6Ba©2\Š"‘šĄ#‘šŠ$qJÆ6Bl©‘2\˜%qJ8¦F¦K‘2\/&86Bw²‘.'qJ6B€©2\Š(qJÆ6B‰©‘2\˜)+qJ@˜¢˜¤‘2\/,qJH™¢™¤‘2\/.@6B’±‘ .’šĄ/@6B˜±H6ą˜±U‘ /’šŠ16Bž£Žœ2‘š°3`‘6B§öpū€£Śöū lް40››™ż°˜š `é£Ś© ii Pœ5  Pf G ˆ‘P6čj’š  Pf Gń’šcģü"76BPšPœ8ičģüŽ’9:£ŽPš£Žœ<żĄ‘šµ‘=qJ6BĖ©2\Š>@żŠ‘šµ‘AqJ6BĖ©2\ŠBIqJ6BÕ©2\ŠJqJ£Ž2\ŠKqJ6BÕ©2\ŠLqJ6B®©2\ŠMqJ6BÕ©2\ŠP6B¹£ŽœQ`‘6Bæöpū€£Śöū lްR£Ž›—ż°Ÿš `é£Ś© iš0ķž$Qļ@1†•$-=JjK#nKĄ ĄČĄ Ą Telnet to CCSĄĄČMARC2CLSI display is not in a MARC record. Aborting...Ą \x09\x09\x09 ĄČ[?25lĄČ\x09\x09\x09Lineof\x1B[A\x1B[17~ Ą Ą Ą displayed.Entire Beginning of $You are already at beginning of the #You are already viewing the entire HOME ĄČPRSMUTIL!SendCommand ĄČĄEnd of You are already at end of the PRSMUTIL!PageDown9\x1B[2~\r00[910a010006u- a  000a000Rec statTypeBLvlELvlDesc\x1B[32~ FIXED FIELD\x1B[21~changes.OVERST\x1B[KINSERT001003001ocmOCLC003OCoLC008EnteredDtStDatesCtrySrTpIllsAudnFormContGPubConfFestIndxLitFBiogFreqReglISSNOrigEntWAlphS/LCompFMusAccMLTxt File Time TMatTechRelfProjCrTpSpFmLangMRecSrce\r777\x09\x09\x09 !Ģ$]VœŅ’’’’$;*š±er’’’’@&Ż §#”’’’’W^ņ÷ 51b’’’’n›é8Ól š’’’’JPų;õŃ&’’’’MTH?čóF—’’’’)kSÕ?}V­‡’’’’ž(DTčp’’’’ 0@PbRetValTemp______ V€,< LF ZF€`€btRetValCurSessionNumSessionsi__CCSTSessionNameCCSTestDigitsCrowCheckTag7V F€ "2 BF P`(p€ °ĄŠąš€0€  €8@€ 0DTHdxˆ˜PX`hØøĢÜģpü x€CSCurSessionNumSessionsi__CCSSessionNameMarcTest__ccccrLinNums_____LNplaceLNplace2CurLinUpLineColumnsTextbLoopnPagesRowTempBufferbAtTopwrapsg___crlf__placelrabLinesh__lidelimsubfsubcde__ V€, <F JFP` p€ °(0ĄŠ8@HPģüX`h CurSessionNumSessionsi__CCSFSessionNameCCSFFEOL__Buffer_____placelead_OneXThreeXInsOvrOneThreeo_____typ(8L\l|Œœ¬ĄŠ__csubfdelim_i__subcdel1del2ddashk__ (0(8HXh|Œœ8¬__delim_____clenCsubxsubfdei__subcdlenD___csubf(8L\l€|~€Ž ”¤delim___dei__subfsubxsubccdlenD___ (8L\l|Œ(08œ¬¼Ģąš@b__delim__adei__subfsubxsubclncdlenDascijcheck__lcnCheckMessageCheckLinemainFixedFieldsDoubleOFiveOhFiveNineTenMainHandlerLCCNSubfieldCount € €5€€-€+€  6€F Fm„K+Passport—Š ‘š› £Śf É£Žiœ‘ö ś0£Śö@śPl­‘šµ‘Y› £Öf É£Žiœ‘ö ś0£Öö@śPl­‘𵑠 ’š   ü£Ņ˜—† ‘š~u2\n2\ ‘u2\8(j’šš’šc,<W~uüé2\[LŲqL2\  5R²‘  SLZŲ  i(,<©’ £Žf É`8‘qZ2\*b8qZb¢b”`B‘2\/£Ž²‘ ’šü£Ś˜—Ī~u2\[Ų ~u2\n2\  ‘u2\ 8 j’š š’šc"2V ~uüé2\[BŲqB2\ ±‘ SB#Ųi"2Ŗ’s” ”%‘2\/›£ŽœS`‘6BÉöpū€£Śöū lްT£Ž›’ż°˜š `é£Ś© iš0£ŽœU`‘6BŠöpū€£Śöū lްV£Ž›•ż°˜š `é£Ś© iš0X›•ż°š pé£Ś©`išh£ŽœW`‘6BŲöpū€£Śöū lްX£Ž›”ż°˜š `é£Ś© iš0£Žœ[`‘6B,öpū€£Śöū lް\‘›’ż°˜š `é£Ś© ieš ]ż ^8^żašé‘N_`‘6Bßöpū€£Śöū lŽ‘šµ‘_ė__s`Ö`żcšé‘aĆb“bżešé‘c+d’dżgšé"żkšéżošé‘e fNfżišéżjšé‘gXhhżmšé‘iy m`‘6Bęöpū€£Śöū lްn£Ž›•ż°˜š `é£Ś© iš0£Žœo`‘6Bķöpū€£Śöū lްp£Ž›’ż°˜š `é£Ś© iš0£Žœq`‘6Bōöpū€£Śöū lްr£Ž›’ż°˜š `é£Ś© iš0£Žœs`‘6Būöpū€£Śöū lްt£Ž›•ż°˜š `é£Ś© iš0£Žœu`‘6Böpū€£Śöū lްv£Ž›’ż°˜š `é£Ś© iš0£Žœw`‘6B öpū€£Śöū lްx£Ž›’ż°˜š `é£Ś© iš0£Žœy`‘6Böpū€£Śöū lްz£Ž›’ż°˜š `é£Ś© iš0£Žœ{`‘6Böpū€£Śöū lް|£Ž›’ż°˜š `é£Ś© iš0£Žœ}£Ž6Bš£Žœ~`‘6Böpū€£Śöū lް£Ž›’ż°˜š `é£Ś© iš0£Žœ€`‘6B%öpū€£Śöū lް£Ž›’ż°˜š `é£Ś© iš0£Žœ‚)…`‘6B,öpū€£Śöū lް†£Ž›’ż°˜š `é£Ś© iš0£Žœ‡`‘6B3öpū€£Śöū lްˆ£Ž›’ż°˜š `é£Ś© iš0£Žœ‰`‘6B:öpū€£Śöū lްУޛ’ż°˜š `é£Ś© iš0£Žœ‹`‘6Bßöpū€£Śöū lްŒ£Ž›’ż°˜š `é£Ś© iš0£Žœ`‘6BAöpū€£Śöū lްޣޛ’ż°˜š `é£Ś© iš0£Žœ`‘6Bōöpū€£Śöū lް£Ž›’ż°˜š `é£Ś© iš0£Žœ‘`‘6BHöpū€£Śöū lް’£Ž›’ż°˜š `é£Ś© iš0£Žœ“`‘6Būöpū€£Śöū lް”£Ž›”ż°˜š `é£Ś© iš0£Žœ•`‘6Böpū€£Śöū lް–£Ž›’ż°˜š `é£Ś© iš0£Žœ—`‘6B öpū€£Śöū lް˜£Ž›’ż°˜š `é£Ś© iš0£Žœ™£Ž6Bš£Žœš£Ž6Bš£Žœ›£Ž6Bš£Žœœ`‘6BOöpū€£Śöū lް£Ž›’ż°˜š `é£Ś© iš0£Žœž`‘6BVöpū€£Śöū lްŸ£Ž›’ż°˜š `é£Ś© iš0£Žœ · £`‘6B\öpū€£Śöū lް¤£Ž›“ż°˜š `é£Ś© iš0£Žœ„`‘6Bcöpū€£Śöū lް¦£Ž›’ż°˜š `é£Ś© iš0£Žœ§£Ž6Bš£ŽœØ`‘6Bķöpū€£Śöū lް©£Ž›’ż°˜š `é£Ś© iš0£ŽœŖ`‘6Bōöpū€£Śöū lް«£Ž›’ż°˜š `é£Ś© iš0£Žœ¬`‘6Bjöpū€£Śöū lް­£Ž›—ż°˜š `é£Ś© iš0£Žœ®`‘6Bqöpū€£Śöū lŽ°Æ£Ž›“ż°˜š `é£Ś© iš0£Žœ°£Ž6Bš£Žœ±£Ž6Bš£Žœ²£Ž6Bš£Žœ³F¶£Ž6Bš£Žœ·£Ž6B š£Žœø`‘6Bķöpū€£Śöū lް¹£Ž›’ż°˜š `é£Ś© iš0£Žœŗ£Ž6Bš£Žœ»£Ž6Bxš£Žœ¼`‘6B}öpū€£Śöū lް½£Ž›’ż°˜š `é£Ś© iš0£Žœ¾£Ž6Bš£Žœ棎6Bš£ŽœĄ£Ž6B„š£ŽœĮśÄ`‘6Böpū€£Śöū lްţޛ”ż°˜š `é£Ś© iš0£ŽœĘ£Ž6Bš£ŽœĒ`‘6Bķöpū€£Śöū lްȣޛ’ż°˜š `é£Ś© iš0£ŽœÉ£Ž6B”š£ŽœŹ`‘6Böpū€£Śöū lްˣޛ’ż°˜š `é£Ś© iš0£ŽœĢ`‘6Bōöpū€£Śöū lްͣޛ’ż°˜š `é£Ś© iš0£ŽœĪ£Ž6Bxš£ŽœĻ£Ž6Bš£ŽœŠ`‘6Bœöpū€£Śöū lްѣޛ’ż°˜š `é£Ś© iš0£ŽœŅ`‘6B£öpū€£Śöū lްӣޛ’ż°˜š `é£Ś© iš0£ŽœŌ‰×`‘6B\öpū€£Śöū lްأޛ“ż°˜š `é£Ś© iš0£ŽœŁ`‘6Bcöpū€£Śöū lްڣޛ’ż°˜š `é£Ś© iš0£ŽœŪ£Ž6Bš£ŽœÜ`‘6Bķöpū€£Śöū lްݣޛ’ż°˜š `é£Ś© iš0£ŽœŽ`‘6Bōöpū€£Śöū lްߣŽ›’ż°˜š `é£Ś© iš0£Žœą`‘6Bjöpū€£Śöū lŽ°į£Ž›—ż°˜š `é£Ś© iš0£Žœā`‘6Bqöpū€£Śöū lŽ°ć£Ž›“ż°˜š `é£Ś© iš0£Žœ䣎6Bš£Žœ壎6Bxš£Žœę-é`‘6BŖöpū€£Śöū lŽ°ź£Ž›•ż°˜š `é£Ś© iš0£Žœė£Ž6Bš£Žœģ`‘6B±öpū€£Śöū lŽ°ķ£Ž›“ż°˜š `é£Ś© iš0£Žœī`‘6Bøöpū€£Śöū lŽ°ļ£Ž›’ż°˜š `é£Ś© iš0£Žœš£Ž6Bxš£Žœń`‘6Böpū€£Śöū lްņ£Ž›’ż°˜š `é£Ś© iš0£Žœó£Ž6Bxš£Žœō£Ž6Bš£Žœõ£Ž6Bš£Žœö`‘6Bæöpū€£Śöū lް÷£Ž›“ż°˜š `é£Ś© iš0£Žœųū`‘6BĘöpū€£Śöū lްü£Ž›”ż°˜š `é£Ś© iš0£Žœż`‘6BĶöpū€£Śöū lްž£Ž›’ż°˜š `é£Ś© iš0£Žœ’`‘6BŌöpū€£Śöū lް£Ž›’ż°˜š `é£Ś© iš0£ŽœqJ£Ž2\ŠqJ6BŪ©2\ŠqJ6BŪ©2\Š˜—›£Śi £Śœ›”™£Ś©i£Žœ›”™£Ś©i6ó²‘d› £Śf GÉ› £Śf GÉ£Śiiœ£Žš£Žœ’š ? ›ßiö( ’šHj8”š £Śf ń’šcL\G›’ü8é£Ś©iö(üµ‘ü’š (iHL\¹’’šl‘š|››ßiülé£Śiœül’šµ‘.’šŒ›’”©iœA‘›’’©ie`FšŒ›’”©iœżŒü|’š (µ‘żŒ•𵑠£Ž6łš£Žœ!]"żŒü|’š (œ#¼j¬’šżœ’šcĄŠ"$£Ž6żš£Žœ%i¼ĄŠŽ’&'(£Žš£Žœ)żŒ|*ül’š (l+ülüµhž,,’š-˜—ž›’„£Ś©iöüµ‘›”£Ś©i›“”£Ś©iš 6 éš(£Žœ› £Śf GÉ„£Ś©i0œ 0f 2t‘Q 0f ń(ü(2š8 ü(2š‘šµ‘ ü8’š8   £Ž0š£Žœ’šH‘šXxjh¤š £Śf ń’šc|Œe›’ühé£Ś©iöüµ‘üH’š HüH‘𵑠’šHix|Œ›’üH’š H‘š8’šœ››ßiżœé£Śi0œ żœ’šµ‘Ą!› 0f Gɔ0©i8œ"£Ž›’’0©iš£Žœ# 8f 2t‘T$ 8f ń¬%ż¬2š8&ż¬2š‘šµ‘'ü8’š8()*+<,-£Ž8š£Žœ.żœüHµ‘.£Ž6 Õš£Žœ0żœ’š œ1żœüHµœž24˜—:›”™£Ś©i6š£Žœ›› £Śf GÉ”£Ś©ii œ£Žš6š£Žœ’š˜—Ž›ßiö›’”£Ś©iöüµ‘(£Ž6 éš£Žœ‘š( ’š( ›žŸ Hj8”š £Śf ń’šcL\e ›’ü8é£Ś©iöüµ‘ ül’š l ül‘𵑠 ’šl iHL\›’ü(’šµ‘ül’š l‘|8’š~››ßiü~é£Śiœü~’šü(’šµ‘*› f Gɔ©iœü~’𵑹£Ž›’iš£Žœ›”£Ži6 ķ²‘›’œ f 2123›”i6 I²‘4ó5A5›”i6 O²‘%6› f GÉiœ78 f ˆ‘9Š:;›”ih Ąr@v‘ę<šš†=>qfļż†é¢ż†é¤‘2\ ö&fæ@üf6 Uö&µ‘<Aqż†éÆż†é8‘2\ B›i¬œD+EFż†šš &†Gż† šµG’H²‘I†JK,K›”ih Ą‚@v‘LPMO‘u2\[–8P–’s‘€T‘š˜U~u2\n 2\`VØj†’š–š’šc¬¼‘W~uż†é2\f[ĢŲXrĢ(2\`Y(6 l²‘"ZTĢŅŲ[’š˜\\(6 }²‘ ]TĢŲ^_iج¼o’`ż˜’šµ‘čauTŅ2\brŅ6 “š’’‘2\—cu6  ©2\·drŅ6 ½©‘‘‘2\—eu6  ©2\·frŅ5 ©—”‘2\—grŅ‘‘2\ĒhrŅ6 Ī©’’‘2\—iu6  ©2\·juS2\k l6 Ņ0œm‘eAŲ8n‘Ų#0jCoŲjP”jWjQpŲj>qq&’l“6 āö6Fļ2\qrq&¬l“5 wö6Fļ‘2\st u6 Ņ0œv‘eAŲ8w‘Ų#0jCxŲjP”jWjQyŲj>zq&’l“6 āö6Fļ2\q{q&¬l“5 wö6Fļ‘2\|}b€6 ę©jq&’l“6 āö6Fļ2\q‚q&¬l“5 wö6Fļ‘2\…˜ SessionApplicationt‘J f ÉŽ8 Ž2N|8!Ž2R‘‚‘"|’F|8#$%ė&ü(’šµ‘' (Č) ›› f GÉ”©ii œ*›”£Ži6 ķ²‘+›’œ,- f 2t‘J. f ÉŽ8/Ž2N|80Ž2R‘‚‘1|’F|823456£Žš£Žœ7ü~ülµ‘7£Ž6 Õš£Žœ9ü~’š ~:ü~ülµ~ż<ü(’šµ‘<ül’šl=j8’šül|š ’šc”¤ >£Ž5 ¾š£Žœ?i”¤ą’@£Ž5 «š£ŽœB˜— J›’”©iöüµ‘7›”™©i6 š œ‘š( ’š( Hj8”š f ń’šcL\e ›’ü8é©iöüµ‘ ül’š l ül‘𵑠 ’šliHL\›’ü(’šµ‘ül’š l2‘š|3’šŒ457£Žœ57(œ6››ßiżŒéi0œ7żŒ’šü(’šµ‘*7› 0f Gɔ0©i8œ8żŒ’𵑖9 ›’’0©iš œ: 8f 2t‘T; 8f ńœ<żœ2š|=żœ2š‘šµ‘>ü|’š|?@AĆBü(’šµ‘C]D E›› 0f GÉ”0©ii 8œF 8f 2t‘TG 8f ńœHżœ2š|Iżœ2š‘šµ‘Jü|’š|KLMNP8£ŽœQ‘›’£Žieš¬R‘›’£Žieas‘›’£Žie{nU‘RS ›“£Žiš6 š œT› £Žf GÉ£Ži£ŽœœAˆ6N‰šˆœBv‘6Nö†ū–`ö¦ū¶lŽŠCˆ›’żŠ˜š vé`© išHˆœDv‘6Nö†ū–`ö¦ū¶lŽŠEˆ›’żŠ˜š vé`© išHˆœFĻIv‘6NĖö†ū–`ö¦ū¶lŽŠJˆ›“żŠ˜š vé`© išHˆœKv‘6NŅö†ū–`ö¦ū¶lŽŠLˆ›’żŠ˜š vé`© išHˆœMˆ6N‰šˆœNv‘6NXö†ū–`ö¦ū¶lŽŠOˆ›’żŠ˜š vé`© iUV 6 š œWX ›“£Žiš œZ› £Žf GÉ£Ži£Žœ[’š¼\ż¼ £Žf ńµ‘Č]‘›’ż¼é£Ž©iešĢ^żĢ0šżĢ9šµ‘b_›› £Žf ńż¼’šéż¼é£Ž©ii (œ`›ż¼’š风i£Žœabcż¼’š ¼d’f  £Žf G ˆ‘PgÜj8’š  £Žf Gń’šcąš"h6 £Žš£ŽœiiÜąšŽ’jl £Žš6 š(š œnżŒülµ‘n 6 Õš œpżŒ’š ŒqżŒülµ7ūs@£Śœu˜ 0Mf€ €  F€ FALSETRUECCSSessionBLOCKŖ¹ĄÓęł TextBeginningEndingTagababababablcSessionApplicationšHˆœPv‘6N_ö†ū–`ö¦ū¶lŽŠQˆ›’żŠ˜š vé`© išHˆœRv‘6NŁö†ū–`ö¦ū¶lŽŠSˆ›—żŠ˜š vé`© išHˆœTv‘6Nąö†ū–`ö¦ū¶lŽŠUˆ›“żŠ˜š vé`© išHˆœVˆ6N‰šˆœWˆ6NķšˆœXQ[v‘6Nö†ū–`ö¦ū¶lŽŠ\ˆ›•żŠ˜š vé`© išHˆœ]ˆ6N‰šˆœ^v‘6N&ö†ū–`ö¦ū¶lŽŠ_ˆ›“żŠ˜š vé`© išHˆœ`v‘6N-ö†ū–`ö¦ū¶lŽŠaˆ›’żŠ˜š vé`© išHˆœbˆ6Nķšˆœcv‘6Nmö†ū–`ö¦ū¶lŽŠdˆ›’żŠ˜š vé`© išHˆœeˆ6Nķšˆœfˆ6N‰šˆœgˆ6N‰šˆœhv‘6N4ö†ū–`ö¦ū¶lŽŠiˆ›“żŠ˜š vé`© išHˆœjmv‘6N;ö†ū–`ö¦ū¶lŽŠnˆ›”żŠ˜š vé`© išHˆœov‘6NBö†ū–`ö¦ū¶lŽŠpˆ›’żŠ˜š vé`© išHˆœqv‘6NIö†ū–`ö¦ū¶lŽŠrˆ›’żŠ˜š vé`© išHˆœvqHˆ2\zwqH5N›©2\zz˜ (: € € € FALSETRUEBLOCKJs‚TextBeginningEndingTagSessionApplicationœ0› › xf GÉ”x©(ii €œž €f 2t‘NŸ €f É8 2N8”2R‘‚‘¢’F8£¤„¦§p€š pœØż¼ż¬µ‘Øp5B|š pœŖż¼’𠐼«ż¼ż¬µĒż®qPp2\eÆżœżXµ‘ƒ°żĢ’𵑰ż¬’š¬±j’šż¬š ’šc ²qP5Bš© 2\e³ią’“qP5B£© 2\eµ¶żœ’š œ·zśøä ¼ ›Pi Pœ½ ›”™P©(ipœæ ›”™P©(i5BŖ²‘eĄ › Pf GÉ(› Pf GÉPiixœĮpxš pœĀ’š¬ƍCĘ ›ßiXœĒ’š¬Č(j”š Pf ń’šc,<CÉ ›’üéP©(iX²‘Éż¬’𠐬Źi(,<½’Ķ’š¼Ī‘šLĻŠ ›(›ßiż¼éPixœŃż¼’šµ‘/Ņ’š\Ó ›’”x©(i€œŌBՑ ›’’x©(ie`Fš\Ö ›’”x©(i€œ×Ųż\żL’𠐵‘ŒŁż\•šµ‘l Characters CtrlC=Chr(3) : Nul=Chr(0) : HiChar$=Chr(255) 'Internal control number NFN=CStr(NFileNum) If Len(NFN)=1 Then NFN=Nul+NFN+Nul If Len(NFN)=2 Then NFN=Nul+NFN SaveDat$=CtrlC+NFN+Nul+Nul+ONum$+" " SaveDat$=SaveDat$+String(7, Nul) '+Nul+Nul+Nul+Nul+Nul+Nul+Nul SaveDat$=SaveDat$+TodayDate+" "+Tm+Nul+HiChar+HiChar SaveDat$=SaveDat$+String(17, " ")+Nul+"N***"+Nul+Nul '+" "+Nul+"N***"+Nul+Nul OpenSaveFile: SavFile$="X:\CLSI\ONLINE\OCLC\OCSAVE.DAT" filenum%=FreeFile Open SavFile$ For Binary As filenum% Len=66 ' Lock #filenum% If NFileNum=1 Then NumOffset=1 Else NumOffset=((NFileNum-1)*66)+1 End If Put #filenum%, NumOffset, SaveDat$ ' Unlock #filenum% Close filenum% PrintReceivedMessage: 'PrinterPort$="LPT1" 'filenum%=FreeFile 'Open PrinterPort$ for Append As filenum% ' Print #filenum%, Message$ 'Close #filenum% Extra=80-Len(Message$) MessageF’š 8éż&śXl’f~ż660ö8żVšµ‘żVš 8V€żVļö8v‚X“60wö8żvHśhl”vƒżv60{ö8Hżf X&…8”l“†…8‘l“–…8’l“ļpœ‡ż¼ļö8¦ˆ8¦l˜’šµ‘ˆż–ż¦ 8ż– H¦‰8¦l˜“𵑉ż–ż¦ 8¦‹ż†ż¦ 8ż– Hż– Xöhx60„ö¶ĘļxœŒxöH8ż–ļ˜lÅXļxœŽxö8żöH60„öXhż& xż– ¶pöĘÖpöęķžÕQ(yx~$±(ū##'ĄĄČ 245 ĄČĄĄPDNĄČPRSMUTIL!SendCommand ĄČHOMEC:\OCLCAPPS\PASSPORT\*.* EXPORT.DATC:\OCLCAPPS\PASSPORT\EXPORT.DATxpoUSMARCĄČsX:\CLSI\ONLINE\OCLC\*.*X:\CLSI\ONLINE\OCLC\OCMSG.DAT OCMSG.DATX:\CLSI\ONLINE\OCMSG.DATX:\CLSI\ONLINE\OCLC\OCMSGOCSAVE.DAT.BAK  -- OC -- received 0:PM N***X:\CLSI\ONLINE\OCLC\OCSAVE.DAT ĄČ0Interface Macro failed to complete successfully. This record needs to be re-sent.Error( ) on line #: Ä& Õ§#”’’’’8W F €,€.8HXhx€ˆ€ŠŒ œD(¬¼Ģ0Ü8@HPX`€ōhö&6FVfv†–p¦¶ĘxÖęö€ˆCSExpoBackupONumSRowSCol_Title_____DelimEndLine_directoryXpoFilecountCcount2NFileNumvMsgFileMsgYesOcMsgBackupDirecSvFl__OutFilefilenumMessageTodayDateLefRigTmPMhHrMinSecHhrCtrlCNulHiCharNFN__SaveDat___SavFileNumOffsetExtraErrMsgmain5€  F Fm„K+Passport—ą"~u2\[Ų‘š ‘š  q—›—¢‘2\’,8’.8‘q50©,.‘‘2\‘#q,”,5‘2\©q50"©’’‘2\(u501©2\H’,8’.8‘q50©,.‘‘2\;q,”,5‘2\q50N©’’‘2\(u501©2\Hq›‘i’’‘2\(H‘8ßl“śXöhśxlŽéˆ8H‘8Żl“śXöhśxlŽéŠ8ˆ‘s‘#››ˆ’Fii œ !Š‘s‘#"››Š’Fii œ#&8‘50U©l¹Œ'żŒ7ö8µ‘<(żŒ50pö8µ‘ (50}©j:)8lŗŒ*Æ’+q50Ÿ©’’‘2\(,u501©2\H-’š .qÆ50„©‘2\®/q50¶©’’‘2\(0u501©2\H7q›‘i’’‘2\(:50} œ=’šœ>‘ ģ(¶?8‘50ŗ©l¹Œ@żŒ7ö8µ‘BAżŒżœé(µBżœ’š 8œC8lŗŒD©’E’š¬E‘š¼Fż¬żœµ‘^Gż¬é(µļh óĢHżĢż¼µ‘ HżĢ¼Iż¬’š 8¬J’Kż¼’š 8¼R50Ō0œS‘šÜT8‘50ŗ©l¹ŒUżŒ7ö8µ‘<VżŒ50ōö8µ‘ V’šÜW8lŗŒXÆ’YżÜ‘šµ‘Z608œ[08jé\]60@œ^6020œ_60:Hœ`@0šP6ģJšX@0š60Cšjéa@HšP6ģJšX@Hš60Cšjéb’še60ż¼ļš`œf` jég50}©j:h‘š k50Ō0œl‘eAō8m‘ō#0jCp60Qš6ģVššPhœqōjP”hjWjQsōj>w8løöwX™60wö8żöHśhl”öx8”ölyH8öl˜”šéöl”yX–60wö8żHśhl”zżż 8ö|8lĒ&|8“&l”6|8‘60{öHśXż&śhlŽF}8żF’šé&lļh óV}H–żF’š 8éż&śXl’f~ż660ö8żVšµ‘żVš 8V€żVļö8v‚X“60wö8żvHśhl”vƒżv60{ö8Hżf X&…8”l“†…8‘l“–…8’l“ļpœ‡ż¼ļö8¦ˆ8¦l˜’šµ‘ˆż–ż¦ 8ż– H¦‰8¦l˜“𵑉ż–ż¦ 8¦‹ż†ż¦ 8ż– Hż– Xöhx60„ö¶ĘļxœŒxöH8ż–ļ˜lÅXļxœŽxö8żöH60„öXhż& xż– ¶pöĘÖpöęöļxœxöH860„©¢lÅXż– h6ģˆöx¶ż– Ęż– Öļxœ“60€œ”‘eAō8•Bō•€jC—ż¼’šµ‘˜’š™"šż¼’šBš’š 8›œōm8żźjFmx‘jąjāžōj>¦ P hf Gń§höH860„©żélÅXhžl“ x¶›l“ ĘļhœØuh2\°ŖĻ­60¶öH8›l“Xļˆœ®ˆ60éšöH8›l“Xh›l“ xļˆœÆˆ60 šö8‘eašH6ģöXh f#ńx6&#ö¶ĘÖl¾ęļj°ü ’𵑠±50}©j