<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=FileInfo</id>
	<title>FileInfo - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=FileInfo"/>
	<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=FileInfo&amp;action=history"/>
	<updated>2026-04-28T22:10:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://pickwiki.org/index.php?title=FileInfo&amp;diff=1780&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=FileInfo&amp;diff=1780&amp;oldid=prev"/>
		<updated>2015-02-26T23:48:54Z</updated>

		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Back to [[BasicSource]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     PROGRAM FILEINFO&lt;br /&gt;
* ECL - KRJ - Universe - information about a file using FILEINFO()&lt;br /&gt;
*&lt;br /&gt;
      EQU AM TO CHAR(254), VM TO CHAR(253), SM TO CHAR(252)&lt;br /&gt;
      TRUE = 1 = 1; FALSE = NOT(TRUE); QT = &amp;#039;&amp;quot;\&amp;#039;:&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
      REST = @SENTENCE&lt;br /&gt;
      KEEPQUOT = FALSE&lt;br /&gt;
      GOSUB PARSE.REST&lt;br /&gt;
      TEMP = DCOUNT(BITE,AM)&lt;br /&gt;
      OPTIONS = BITE&amp;lt;TEMP&amp;gt;&lt;br /&gt;
      IF OPTIONS[1,1] = &amp;#039;(&amp;#039; THEN&lt;br /&gt;
         OPTIONS = FIELD(FIELD(OPTIONS,&amp;#039;(&amp;#039;,2),&amp;#039;)&amp;#039;,1)&lt;br /&gt;
         BITE = DELETE(BITE,TEMP,0,0)&lt;br /&gt;
      END ELSE OPTIONS = &amp;#039;&amp;#039;&lt;br /&gt;
      IF OCONV(BITE&amp;lt;1&amp;gt;,&amp;#039;MCU&amp;#039;) = &amp;#039;RUN&amp;#039; THEN&lt;br /&gt;
         BITE = DELETE(BITE,1,0,0)&lt;br /&gt;
         BITE = DELETE(BITE,1,0,0)&lt;br /&gt;
      END&lt;br /&gt;
      BITE = DELETE(BITE,1,0,0)&lt;br /&gt;
*&lt;br /&gt;
      FNAM = BITE&amp;lt;1&amp;gt;&lt;br /&gt;
      BITE = DELETE(BITE,1,0,0)&lt;br /&gt;
      IF FNAM = &amp;#039;DICT&amp;#039; THEN&lt;br /&gt;
         FNAM = FNAM:&amp;#039; &amp;#039;:BITE&amp;lt;1&amp;gt;&lt;br /&gt;
         BITE = DELETE(BITE,1,0,0)&lt;br /&gt;
      END&lt;br /&gt;
* Get file&lt;br /&gt;
      LOOP&lt;br /&gt;
         GOT.FILE = FALSE&lt;br /&gt;
         IF FNAM = &amp;#039;&amp;#039; THEN&lt;br /&gt;
            CRT &amp;#039;File &amp;gt;&amp;#039;:&lt;br /&gt;
            INPUT FNAM&lt;br /&gt;
         END&lt;br /&gt;
         IF FNAM = &amp;#039;&amp;#039; THEN STOP&lt;br /&gt;
         DPRT = FIELD(FNAM,&amp;#039; &amp;#039;,1)&lt;br /&gt;
         FPRT = FIELD(FNAM,&amp;#039; &amp;#039;,2)&lt;br /&gt;
         IF FPRT = &amp;#039;&amp;#039; THEN FPRT = DPRT ; DPRT = &amp;#039;&amp;#039;&lt;br /&gt;
         OPEN DPRT, FPRT TO FILE THEN&lt;br /&gt;
            GOT.FILE = TRUE&lt;br /&gt;
         END ELSE&lt;br /&gt;
            CRT &amp;#039;Unable to find file &amp;quot;&amp;#039;:FNAM:&amp;#039;&amp;quot;.&amp;#039;&lt;br /&gt;
            FNAM = &amp;#039;&amp;#039;&lt;br /&gt;
         END&lt;br /&gt;
      UNTIL GOT.FILE DO&lt;br /&gt;
      REPEAT&lt;br /&gt;
*&lt;br /&gt;
$INCLUDE UNIVERSE.INCLUDE FILEINFO.INS.IBAS&lt;br /&gt;
&lt;br /&gt;
      CRT &amp;#039;      Is Filevar :&amp;#039;: FILEINFO(FILE, FINFO$IS.FILEVAR)&lt;br /&gt;
      CRT &amp;#039;        VOC Name :&amp;#039;: FILEINFO(FILE, FINFO$VOCNAME)&lt;br /&gt;
      CRT &amp;#039;       Path Name :&amp;#039;: FILEINFO(FILE, FINFO$PATHNAME)&lt;br /&gt;
      HASH = FILEINFO(FILE, FINFO$HASHALG)&lt;br /&gt;
      CRT &amp;#039;  Hash Algorithm :&amp;#039;: HASH:&lt;br /&gt;
      BEGIN CASE&lt;br /&gt;
         CASE HASH = &amp;#039;2&amp;#039; ; CRT &amp;#039; General&amp;#039;&lt;br /&gt;
         CASE HASH = &amp;#039;3&amp;#039; ; CRT &amp;#039; Sequential&amp;#039;&lt;br /&gt;
         CASE HASH = &amp;#039;&amp;#039;  ; CRT &amp;#039;  No Algorithm&amp;#039;&lt;br /&gt;
         CASE 1 ; CRT &amp;#039; **** UNKNOWN HASH ALGORITHM **** &amp;#039;&lt;br /&gt;
      END CASE&lt;br /&gt;
      TYPE = FILEINFO(FILE, FINFO$TYPE)&lt;br /&gt;
      CRT &amp;#039;            Type :&amp;#039;: TYPE:&lt;br /&gt;
      BEGIN CASE&lt;br /&gt;
         CASE TYPE = &amp;#039;1&amp;#039; ; CRT &amp;#039; Static Hashed&amp;#039;&lt;br /&gt;
         CASE TYPE = &amp;#039;3&amp;#039; ; CRT &amp;#039; Dynamic Hashed&amp;#039;&lt;br /&gt;
         CASE TYPE = &amp;#039;4&amp;#039; ; CRT &amp;#039; Directory (Type 1)&amp;#039;&lt;br /&gt;
         CASE TYPE = &amp;#039;5&amp;#039; ; CRT &amp;#039; Sequential&amp;#039;&lt;br /&gt;
         CASE TYPE = &amp;#039;7&amp;#039; ; CRT &amp;#039; Distributed &amp;amp; Multi Volume&amp;#039;&lt;br /&gt;
         CASE TYPE = &amp;#039;&amp;#039;  ; CRT &amp;#039;  No Type&amp;#039;&lt;br /&gt;
         CASE 1 ; CRT &amp;#039; **** UNKNOWN TYPE **** &amp;#039;&lt;br /&gt;
      END CASE&lt;br /&gt;
      CRT &amp;#039;         Modulus :&amp;#039;: FILEINFO(FILE, FINFO$MODULUS)&lt;br /&gt;
      CRT &amp;#039;     Min Modulus :&amp;#039;: FILEINFO(FILE, FINFO$MINMODULUS)&lt;br /&gt;
      SIZE = FILEINFO(FILE, FINFO$GROUPSIZE)&lt;br /&gt;
      CRT &amp;#039;      Group Size :&amp;#039;: SIZE :&lt;br /&gt;
      IF SIZE NE &amp;#039;&amp;#039; THEN CRT &amp;#039; KB&amp;#039; ELSE CRT&lt;br /&gt;
      SIZE = FILEINFO(FILE, FINFO$LARGERECORDSIZE)&lt;br /&gt;
      CRT &amp;#039;Large Record Size:&amp;#039;: SIZE :&lt;br /&gt;
      IF SIZE NE &amp;#039;&amp;#039; THEN CRT &amp;#039; Bytes&amp;#039; ELSE CRT&lt;br /&gt;
      CRT &amp;#039;      Merge Load :&amp;#039;: FILEINFO(FILE, FINFO$MERGELOAD)&lt;br /&gt;
      CRT &amp;#039;      Split Load :&amp;#039;: FILEINFO(FILE, FINFO$SPLITLOAD)&lt;br /&gt;
      CRT &amp;#039;    Current Load :&amp;#039;: FILEINFO(FILE, FINFO$CURRENTLOAD)&lt;br /&gt;
      CRT &amp;#039;       Node Name :&amp;#039;: FILEINFO(FILE, FINFO$NODENAME)&lt;br /&gt;
      CRT &amp;#039;       Is AKfile :&amp;#039;: FILEINFO(FILE, FINFO$IS.AKFILE):&lt;br /&gt;
      ISAK = FILEINFO(FILE, FINFO$IS.AKFILE)&lt;br /&gt;
      BEGIN CASE&lt;br /&gt;
         CASE ISAK = &amp;#039;1&amp;#039; ; CRT &amp;#039; Secondary Indices exist &amp;#039;&lt;br /&gt;
         CASE ISAK = &amp;#039;0&amp;#039; ; CRT &amp;#039; No Secondary Indices&amp;#039;&lt;br /&gt;
         CASE 1 ; CRT &amp;#039; **** NOT KNOWN IF INDICES EXIST **** &amp;#039;:ISAK&lt;br /&gt;
      END CASE&lt;br /&gt;
      CRT &amp;#039;    Current Line :&amp;#039;: FILEINFO(FILE, FINFO$CURRENTLINE)&lt;br /&gt;
      CRT &amp;#039;        Part Num :&amp;#039;: FILEINFO(FILE, FINFO$PARTNUM)&lt;br /&gt;
      CRT &amp;#039;          Status :&amp;#039;: FILEINFO(FILE, FINFO$STATUS)&lt;br /&gt;
      CRT &amp;#039;   Recovery Type :&amp;#039;: FILEINFO(FILE, FINFO$RECOVERYTYPE)&lt;br /&gt;
      CRT &amp;#039;     Recovery ID :&amp;#039;: FILEINFO(FILE, FINFO$RECOVERYID)&lt;br /&gt;
      CRT &amp;#039;Is Fixed Modulus :&amp;#039;: FILEINFO(FILE, FINFO$IS.FIXED.MODULUS)&lt;br /&gt;
      CRT &amp;#039;         NLS Map :&amp;#039;: FILEINFO(FILE, FINFO$NLSMAP)&lt;br /&gt;
* Next two kill [[UniVerse]]&lt;br /&gt;
*     CRT &amp;#039;    Max Key Size :&amp;#039;: FILEINFO(FILE, FINFO$MAXKEYSIZE)&lt;br /&gt;
*     CRT &amp;#039;      Max Option :&amp;#039;: FILEINFO(FILE, FINFO$MAXOPTION)&lt;br /&gt;
* Next one is junk&lt;br /&gt;
*     CRT &amp;#039;      Hdr Layout :&amp;#039;: FILEINFO(FILE, FINFO$HDRLAYOUT)&lt;br /&gt;
&lt;br /&gt;
      STOP&lt;br /&gt;
*&lt;br /&gt;
PARSE.REST:&lt;br /&gt;
      BITE = &amp;#039;&amp;#039;&lt;br /&gt;
      FLAG = &amp;#039;&amp;#039;&lt;br /&gt;
      POSN = 1&lt;br /&gt;
      XXCNT = LEN(REST)&lt;br /&gt;
      FOR XX = 1 TO XXCNT&lt;br /&gt;
         BIT = REST[XX,1]&lt;br /&gt;
         IF FLAG EQ &amp;#039;&amp;#039; THEN&lt;br /&gt;
            IF BIT = &amp;#039; &amp;#039; THEN&lt;br /&gt;
               IF BITE&amp;lt;POSN&amp;gt; NE &amp;#039;&amp;#039; THEN POSN = POSN + 1&lt;br /&gt;
            END ELSE&lt;br /&gt;
               IF INDEX(QT,BIT,1) THEN&lt;br /&gt;
                  FLAG = BIT&lt;br /&gt;
                  IF KEEPQUOT THEN BITE&amp;lt;POSN&amp;gt; = BITE&amp;lt;POSN&amp;gt;:BIT&lt;br /&gt;
               END ELSE&lt;br /&gt;
                  IF BIT = &amp;#039;(&amp;#039; THEN&lt;br /&gt;
                     FLAG = &amp;#039;)&amp;#039;&lt;br /&gt;
                     IF BITE&amp;lt;POSN&amp;gt; NE &amp;#039;&amp;#039; THEN POSN = POSN + 1&lt;br /&gt;
                     BITE&amp;lt;POSN&amp;gt; = &amp;#039;(&amp;#039;&lt;br /&gt;
                  END ELSE BITE&amp;lt;POSN&amp;gt; = BITE&amp;lt;POSN&amp;gt;:BIT&lt;br /&gt;
               END&lt;br /&gt;
            END&lt;br /&gt;
         END ELSE&lt;br /&gt;
            IF BIT NE FLAG THEN&lt;br /&gt;
               BITE&amp;lt;POSN&amp;gt; = BITE&amp;lt;POSN&amp;gt;:BIT&lt;br /&gt;
            END ELSE&lt;br /&gt;
               IF KEEPQUOT OR BIT = &amp;#039;)&amp;#039; THEN BITE&amp;lt;POSN&amp;gt; = BITE&amp;lt;POSN&amp;gt;:BIT&lt;br /&gt;
               POSN = POSN + 1&lt;br /&gt;
               FLAG = &amp;#039;&amp;#039;&lt;br /&gt;
            END&lt;br /&gt;
         END&lt;br /&gt;
      NEXT XX&lt;br /&gt;
      RETURN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Conversion script</name></author>
	</entry>
</feed>