<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: issues with f$file_format lexical function in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146683#M103192</link>
    <description>&lt;P&gt;You can't get recod counts that way.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following command procedure will do it for you, P1 is the target file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$!&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe search/stat 'p1' XYZZY | search sys$input "records searched" | -&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (read sys$input module_name ; define/job MY_REC &amp;amp;module_name)&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_sym = f$trnlnm ("MY_REC", "LNM$JOB")&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deass/job my_rec&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recs = f$integer(f$extract(26, 10, my_sym))&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write sys$output "No of records is ''recs'"&lt;BR /&gt;$!&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Modify to suit your purpose...&lt;/P&gt;</description>
    <pubDate>Thu, 25 Jul 2013 01:50:41 GMT</pubDate>
    <dc:creator>John McL</dc:creator>
    <dc:date>2013-07-25T01:50:41Z</dc:date>
    <item>
      <title>issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146365#M103189</link>
      <description>&lt;P&gt;I am unable to get the number of records in a file using the following&lt;/P&gt;&lt;P&gt;why is "file_length_hint"&amp;nbsp; not working ? and why **bleep**/rms/stats is showing&amp;nbsp; File Length Hint (Data Byte Count): -1 (invalid)?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the vms version is Alpha 7.3-2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$ REC = f$file("A.A","file_length_hint")&lt;/P&gt;&lt;P&gt;$ show sym rec&lt;/P&gt;&lt;P&gt;&amp;nbsp; REC = "(-1,-1)"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$ **bleep**/RMS/stat a.a&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;RMS File Statistics&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24-JUL-2013 15:21:24.39&amp;nbsp;&amp;nbsp; Page 1&lt;/P&gt;&lt;P&gt;PASDISK5:[MDX.OUTGOING.PROCESSED]A.A;1&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;FILE HEADER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Spec: PASDISK5:[MDX.OUTGOING.PROCESSED]A.A;1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File ID: (46161,486,0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Owner UIC: [INTEROP,MDX]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protection:&amp;nbsp; System: RWED, Owner: RWED, Group: RE, World:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Creation Date:&amp;nbsp;&amp;nbsp; 24-JUL-2013 14:54:40.07&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Revision Date:&amp;nbsp;&amp;nbsp; 24-JUL-2013 14:54:40.07, Number: 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expiration Date: none specified&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Backup Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; none posted&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Contiguity Options:&amp;nbsp; none&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Performance Options: none&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reliability Options: none&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Journaling Enabled:&amp;nbsp; none&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;RMS FILE ATTRIBUTES&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Organization: sequential&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Format: variable&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes:&amp;nbsp; carriage-return&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Maximum Record Size: 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Longest Record: 7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blocks Allocated: 61, Default Extend Size: 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End-of-File VBN: 1, Offset: %X'001C'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Monitoring: disabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Length Hint (Record Count):&amp;nbsp;&amp;nbsp;&amp;nbsp; -1 (invalid)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Length Hint (Data Byte Count): -1 (invalid)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Global Buffer Count: 0&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;The analysis uncovered NO errors.&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;**bleep**/RMS/STAT A.A&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2013 19:31:32 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146365#M103189</guid>
      <dc:creator>SAMI AHMAD</dc:creator>
      <dc:date>2013-07-24T19:31:32Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146435#M103190</link>
      <description />
      <pubDate>Wed, 24 Jul 2013 21:08:14 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146435#M103190</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2013-07-24T21:08:14Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146465#M103191</link>
      <description />
      <pubDate>Wed, 24 Jul 2013 21:33:00 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146465#M103191</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2013-07-24T21:33:00Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146683#M103192</link>
      <description>&lt;P&gt;You can't get recod counts that way.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following command procedure will do it for you, P1 is the target file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$!&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipe search/stat 'p1' XYZZY | search sys$input "records searched" | -&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (read sys$input module_name ; define/job MY_REC &amp;amp;module_name)&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_sym = f$trnlnm ("MY_REC", "LNM$JOB")&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deass/job my_rec&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recs = f$integer(f$extract(26, 10, my_sym))&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write sys$output "No of records is ''recs'"&lt;BR /&gt;$!&lt;BR /&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Modify to suit your purpose...&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 01:50:41 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146683#M103192</guid>
      <dc:creator>John McL</dc:creator>
      <dc:date>2013-07-25T01:50:41Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146735#M103193</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&amp;gt;&amp;gt; You can't get recod counts that way.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Yes you can, Steven proved that in his second reply.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;gt;&amp;gt; pipe search/stat&amp;nbsp;&lt;SPAN&gt;'p1' XYZZY&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;1) it is my understanding the an early match if quicker than no-match, so i use "" /WIN=0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;2) In any reasonably recent openVMS version SEARCH will define statistics symbols for your convenience.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;$ define/user sys$output nl:
$ searc /stat /win=0  ""  tmp.tmp
$ show symb sear*
:
  SEARCH$RECORDS_SEARCHED = "13"
$&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;Works on all file types, contrary to the file hints.&lt;/P&gt;&lt;P&gt;hth,&lt;/P&gt;&lt;P&gt;Hein&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 03:07:58 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146735#M103193</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2013-07-25T03:07:58Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146743#M103194</link>
      <description />
      <pubDate>Thu, 25 Jul 2013 03:21:40 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6146743#M103194</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2013-07-25T03:21:40Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6148001#M103195</link>
      <description>&lt;P&gt;i found the problem after reading openVMS notes from web ,&amp;nbsp; f$file("&amp;lt;file name&amp;gt;","file_length_hint")&lt;/P&gt;&lt;P&gt;works only if&lt;/P&gt;&lt;P&gt;&amp;nbsp; - file type is sequential&lt;/P&gt;&lt;P&gt;&amp;nbsp; - record type is VAR or VFC&lt;/P&gt;&lt;P&gt;&amp;nbsp; - volume is ODS-5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;to fix the problem&amp;nbsp; I :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- generated the FDL for the file&lt;/P&gt;&lt;P&gt;- modified the FDL to correct the file type and record type.&lt;/P&gt;&lt;P&gt;- converted the file using the modified FDL&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and then&amp;nbsp; f$file("&amp;lt;file name&amp;gt; ","file_length_hint") worked and gave me the record count.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 17:59:21 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6148001#M103195</guid>
      <dc:creator>SAMI AHMAD</dc:creator>
      <dc:date>2013-07-25T17:59:21Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6148013#M103196</link>
      <description />
      <pubDate>Thu, 25 Jul 2013 18:21:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6148013#M103196</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2013-07-25T18:21:11Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6148159#M103197</link>
      <description>&lt;P&gt;Hein,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the tip but your search command seems to have the search string and the filename the wrong way around.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, I found that I was seeing error messages, so ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$ def/user sys$output nl:&lt;BR /&gt;$ def/user sys$error&amp;nbsp; nl:&lt;BR /&gt;$ search/stat/win=0 [-]login.com XYZZY&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(If sys$error not redefined or messages not disabled, here you'll see "%SEARCH-I-NOMATCHES, no strings matched")&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;$ sho sym search*&lt;BR /&gt;&amp;nbsp; SEARCH$CHARACTERS_SEARCHED = "2300"&lt;BR /&gt;&amp;nbsp; SEARCH$FILES_SEARCHED = "1"&lt;BR /&gt;&amp;nbsp; SEARCH$LINES_PRINTED = "0"&lt;BR /&gt;&amp;nbsp; SEARCH$RECORDS_MATCHED = "0"&lt;BR /&gt;&amp;nbsp; SEARCH$RECORDS_SEARCHED = "94"&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 22:16:54 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6148159#M103197</guid>
      <dc:creator>John McL</dc:creator>
      <dc:date>2013-07-25T22:16:54Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6154131#M103198</link>
      <description>&lt;P&gt;Hi : ...i dont speak english...only spanish (Chile-south America).....&lt;/P&gt;&lt;P&gt;I know a way to calculate de records quantity ..without read the file ,but only for sequential file (fixed format)&lt;/P&gt;&lt;P&gt;1.- dcl : receive de file name by parameter,extract and send file attributes to a cobol program.&lt;/P&gt;&lt;P&gt;2.- Cobol: calculate de records quantity and display it....send this quantity to dcl too.&lt;/P&gt;&lt;P&gt;3.- below you will find dcl + cobol&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$ Set NoVer&lt;/P&gt;&lt;P&gt;$ Status:= " "&lt;/P&gt;&lt;P&gt;$ Ws&amp;nbsp;&amp;nbsp;&amp;nbsp; := "Write Sys$output "&lt;/P&gt;&lt;P&gt;$ On Error Then Goto Err_Com&lt;/P&gt;&lt;P&gt;$!----------------------------------------------------------------*&lt;/P&gt;&lt;P&gt;$! El Pgma Cobol Util_ctareg.sco Devuelve La Variable "Numregs",&amp;nbsp; *&lt;/P&gt;&lt;P&gt;$! La Cual Contiene El Numero De Registros Que Tiene El Archivo&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;$! Nota: solo acepta archivos Secuenciales de Largo Fijo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;$!----------------------------------------------------------------*&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Archivo :='P1'&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Archivo = F$edit(archivo,"upcase,trim,compress")&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Archivo = F$string(archivo)&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Ws " Archivo Ingresado : ''Archivo'"&lt;/P&gt;&lt;P&gt;$!-----------------------------------------------------------------------------------------------*&lt;/P&gt;&lt;P&gt;$&amp;nbsp; parOrg&amp;nbsp; = f$file_attributes(archivo,"org")&lt;/P&gt;&lt;P&gt;$&amp;nbsp; if&amp;nbsp; parOrg.NeS. "SEQ"&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ws "*** Error : Este archivo NO es Secuencial ***"&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit&lt;/P&gt;&lt;P&gt;$&amp;nbsp; endif&lt;/P&gt;&lt;P&gt;$!&lt;/P&gt;&lt;P&gt;$&amp;nbsp; parRfm&amp;nbsp; = f$file_attributes(archivo,"rfm")&lt;/P&gt;&lt;P&gt;$&amp;nbsp; if&amp;nbsp; parRfm.NeS. "FIX"&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ws "*** Error : Solo admite registros de Largo Fijo ***"&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit&lt;/P&gt;&lt;P&gt;$&amp;nbsp; endif&lt;/P&gt;&lt;P&gt;$!-----------------------------------------------------------------------------------------------*&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Pareof&amp;nbsp; = F$file_attributes(archivo,"eof")&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Pareof9 = F$fao("!(09ZL)",f$integer(pareof))&lt;/P&gt;&lt;P&gt;$!---------------------------------------------------*&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Parffb&amp;nbsp; = F$file_attributes(archivo,"ffb")&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Parffb9 = F$fao("!(09ZL)",f$integer(parffb))&lt;/P&gt;&lt;P&gt;$!---------------------------------------------------*&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Parmrs&amp;nbsp; = F$file_attributes(archivo,"mrs")&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Parmrs9 = F$fao("!(09ZL)",f$integer(parmrs))&lt;/P&gt;&lt;P&gt;$!-----------------------------------------------------------------------------------------------*&lt;/P&gt;&lt;P&gt;$!=====================================================&lt;/P&gt;&lt;P&gt;$&amp;nbsp; Run/nodeb Dka1:[optiafc.cta.exe]util_ctareg.exe&lt;/P&gt;&lt;P&gt;$!=====================================================&lt;/P&gt;&lt;P&gt;$! Ws " Numero De Registros Recibido: ''Numregs'"&lt;/P&gt;&lt;P&gt;$ If&amp;nbsp; Status.eqs."-1"&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Then&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ws "***===&amp;gt;&amp;gt;&amp;gt; Util_ctareg&amp;nbsp; Mal-Mal-Mal &amp;lt;&amp;lt;&amp;lt;===***"&lt;/P&gt;&lt;P&gt;$ Else&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ws "***===&amp;gt;&amp;gt;&amp;gt; Util_ctareg&amp;nbsp; Ok-Ok-Ok&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&amp;lt;&amp;lt;===***"&lt;/P&gt;&lt;P&gt;$ Endif&lt;/P&gt;&lt;P&gt;$!&lt;/P&gt;&lt;P&gt;$ Exit&lt;/P&gt;&lt;P&gt;$!&lt;/P&gt;&lt;P&gt;$!--------&lt;/P&gt;&lt;P&gt;$ Err_Com:&lt;/P&gt;&lt;P&gt;$!--------&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Nover&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp; Ws "***===&amp;gt;&amp;gt;&amp;gt; Util_ctareg con ERROR a nivel de .Com &amp;lt;&amp;lt;&amp;lt;===***"&lt;/P&gt;&lt;P&gt;$&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit&lt;/P&gt;&lt;P&gt;$!-----------------------------------------------------------------------------------------------*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;IDENTIFICATION DIVISION.&lt;/P&gt;&lt;P&gt;*************************&lt;/P&gt;&lt;P&gt;&amp;nbsp;PROGRAM-ID.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UTIL_CTAREG.&lt;/P&gt;&lt;P&gt;*AUTHOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CACHAZA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;ENVIRONMENT DIVISION.&lt;/P&gt;&lt;P&gt;**********************&lt;/P&gt;&lt;P&gt;&amp;nbsp;CONFIGURATION&amp;nbsp; SECTION.&lt;/P&gt;&lt;P&gt;*=======================&lt;/P&gt;&lt;P&gt;&amp;nbsp;SPECIAL-NAMES.&lt;/P&gt;&lt;P&gt;*--------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;DECIMAL-POINT IS COMMA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;DATA DIVISION.&lt;/P&gt;&lt;P&gt;***************&lt;/P&gt;&lt;P&gt;&amp;nbsp;WORKING-STORAGE SECTION.&lt;/P&gt;&lt;P&gt;*========================&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;01 VARIABLES-INICIO.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; PAR-EOF9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIC&amp;nbsp; 9(09).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; PAR-FFB9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIC&amp;nbsp; 9(09).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; PAR-MRS9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PIC&amp;nbsp; 9(09).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; WS-PIC9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIC&amp;nbsp; 9(09).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; WX-LARGO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIC&amp;nbsp; 9(04) COMP.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; NUM-REG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIC&amp;nbsp; 9(12) COMP.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp; NUM-REGZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIC&amp;nbsp; ZZZ.ZZZ.ZZZ.ZZ9.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;********************&lt;/P&gt;&lt;P&gt;&amp;nbsp;PROCEDURE DIVISION.&lt;/P&gt;&lt;P&gt;********************&lt;/P&gt;&lt;P&gt;&amp;nbsp;AAXX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INITIALIZE VARIABLES-INICIO&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL "LIB$GET_SYMBOL" USING BY DESCRIPTOR "PAREOF9", PAR-EOF9,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY REFERENCE WX-LARGO.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF&amp;nbsp; WX-LARGO = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DISPLAY "PARAMETRO PAR-EOF9 NO DEFINIDO. CANCELA . . ."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP RUN.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move&amp;nbsp; 0&amp;nbsp; to&amp;nbsp; WX-LARGO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL "LIB$GET_SYMBOL" USING BY DESCRIPTOR "PARFFB9",PAR-FFB9&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY REFERENCE WX-LARGO.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IF&amp;nbsp; WX-LARGO = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISPLAY "PARAMETRO PAR-FFB9 NO DEFINIDO. CANCELA . . ."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP RUN.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; move&amp;nbsp; 0&amp;nbsp; to&amp;nbsp; WX-LARGO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL "LIB$GET_SYMBOL" USING BY DESCRIPTOR "PARMRS9",PAR-MRS9&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BY REFERENCE WX-LARGO.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF&amp;nbsp; WX-LARGO = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISPLAY "PARAMETRO PAR-MRS9 NO DEFINIDO. CANCELA . . ."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP RUN.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF&amp;nbsp; FUNCTION REM (PAR-MRS9 , 2) = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD 1 TO PAR-MRS9&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;END-IF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COMPUTE NUM-REG ROUNDED = (((( PAR-EOF9 - 1 ) * 512 ) + PAR-FFB9 ) / PAR-MRS9 )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVE NUM-REG&amp;nbsp; TO&amp;nbsp; NUM-REGZ&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISPLAY "*--------------------------------------------------*".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISPLAY "*** ==== &amp;gt; ARCHIVO TIENE:"NUM-REGZ CONVERSION" REGS"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISPLAY "*--------------------------------------------------*".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL "LIB$SET_SYMBOL" USING BY DESCRIPTOR "NUMREGS",NUM-REG&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STOP RUN.&lt;/P&gt;&lt;P&gt;*****************************************************************************&lt;/P&gt;&lt;P&gt;*****************************************************************************&lt;/P&gt;&lt;P&gt;*****************************************************************************&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jul 2013 12:45:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6154131#M103198</guid>
      <dc:creator>cachaza</dc:creator>
      <dc:date>2013-07-31T12:45:27Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6154217#M103199</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://community.hpe.com/t5/user/viewprofilepage/user-id/1357877" target="_self"&gt;cachaza&lt;/A&gt;&amp;nbsp;for your contribution. It is clear enough.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;You are correct, IF-and-only-IF, the file is fixed length record sequential then you can calculate the number of records from eof-block * 512 + ffb / size.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Note: Size should be picked up from LRL, not MRS, and should be rounded up to even value before dividing.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I the file is larger than 2GB (4194303 blocks) you indeed need a (cobol) helper program to do the math with more than 32 bits, but for most files you can just use DCL divides.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Too bad that RMS does not do file-length-hints for this easy file type huh!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I had an Email exchange with John... Searching for and empty string makes sure that there is an immediate hit for each record, so that's quicker and lookign at each bytes. Also, this avoids the 'no match found' message to sys$error.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Hein&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jul 2013 13:33:51 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6154217#M103199</guid>
      <dc:creator>Hein_vdHeuvel_d</dc:creator>
      <dc:date>2013-07-31T13:33:51Z</dc:date>
    </item>
    <item>
      <title>Re: issues with f$file_format lexical function</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6154765#M103200</link>
      <description>&lt;P&gt;&amp;gt;&amp;nbsp;&lt;EM&gt;COMPUTE NUM-REG ROUNDED = (((( PAR-EOF9 - 1 ) * 512 ) + PAR-FFB9 ) / PAR-MRS9 )&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&lt;EM&gt;You are correct, IF-and-only-IF, the file is fixed length record sequential then you can calculate the number of records from eof-block * 512 + ffb / size.&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The right formula - subtracting 1 or not - depends on ffb. The one in your Cobol source is correct for ffb&amp;gt;0. The other one &amp;nbsp;- insert the appropriate parentheses - is correct for ffb==0 (which makes the addition somehow obsolete).&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ f:=whatever&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ cre 'f&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;whatever&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;Exit&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ write sys$output f$file(f,"eof")&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ write sys$output f$file(f,"ffb")&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;10&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ ! here rfm=var and&amp;nbsp;the file size is 10: (eof-1)*512+ffb&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ convert/fdl=tt: 'f 'f.fix/pad=%x20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;FILE&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;ORGANIZATION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sequential&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;RECORD&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;CARRIAGE_CONTROL none&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;FORMAT fixed&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;SIZE 512&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;Exit&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ write sys$output f$file(f+".fix","eof")&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ write sys$output f$file(f+".fix","ffb")&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;0&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$ ! the file size is 512: eof*512+ffb&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;$&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 31 Jul 2013 17:08:10 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/issues-with-f-file-format-lexical-function/m-p/6154765#M103200</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2013-07-31T17:08:10Z</dc:date>
    </item>
  </channel>
</rss>

