FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

Post by Perry Fe » Thu, 28 Dec 1995 04:00:00



FNKSHN (pronounced function) foxpro library version 1.01
copyright (c) 1996  perry fect

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

frequently asked questions.

WHAT IS FNKSHN?

FNKSHN is a set of freely distributable functions and utilities that i
have developed in foxpro 2.6 over the past couple of years to ease the
development process.  i'm constantly writing new FNKSHNs and updating
the old ones (with backward compatibilty of course).  most are intended
for use in projects and some are for use in the command window for
debugging.  all of them were written using native foxpro code and many
are very powerful.  among them are:

   * improved version of a "view" that saves and restores record
     positions and exclusive status (SAVEVIEW and LOADVIEW).
   * open and close functions for dbfs that also register "use counts"
     on the dbf to perform logical opens and closes.  (ROPNFIL and
     RCLSFIL)
   * an array browser (ABROWSE).
   * dialog and alert boxes which utilitize the windows' msgbox()
     function if foxtools.fll is available or native fox code if it is
     not (ALERTMSG, YESNO, and DLGBOX).
   * project zipper (PROJZIP).
   * INI file reader and writer (GETENTRY and SETENTRY)

all of them are black boxed (self contained) and need no external
variables to be set to run them.  some of them do require other FHKSHNs
however.

WHAT VERSION OF FOXPRO DOES FNKSHN WORK IN?

it has only been written and tested in foxpro 2.x dos and foxpro 2.6
windows 3.1 versions.  but i did try to make them as backward compatible
as possible.  i know that many FNKSHNs will work in foxpro 2.0 but some
are incompatible.  FNKSHN will work in visual foxpro also but i am
working on OBJECT FNKSHN 96 which will be written especially for visual
foxpro.

HOW DO I SET UP FNKSHN?

all you have to do put the FNKSHNs in a directory that is accessable
through fox's path.  for example, in my CONFIG.FP i have:

PATH=C:\FOX\FPD26;C:\FOX\FNKSHN;C:\FOX\GENSCRNX

when i make a project and call one of my FNKSHNs, the project pulls it
in because it finds it in my path.

DO I NEED TO REGISTER FNKSHN?

not at all.  you are free to use and distribute FNKSHNs under the terms
of the free software foundation's general public library license.  you
should have received a copy of the file LICENSE.TXT with your copy of
FNKSHN.  if you did not, you can email me (perfe...@callnet.com) for the
official version of FNKSHN.  if you are distributing an application that
makes call to any FNKSHNs, you must make FNKSHN available to the
recipients and also make them aware of their rights to freely copy,
modify and distribute FNKSHN.  you must also make available complete object
files to the recipients so that they can relink them with FNKSHN, after
making changes to FNKSHN and recompiling it.  for more on this, read the
terms and conditions of the general public library license.

WHY IS ALL THE SOURCE CODE IN ONE BIG FILE?

just because that's the way i copyrighted it.  the source code files are
also available individually by FNKSHN.  if you can't find them where you
downloaded this version you can email me at perfe...@callnet.com.

WHAT ABOUT TECH SUPPORT?

tech support is free.  there's a catch though.  support is only
available through email or snail mail.  my current email address is
perfe...@callnet.com.  if for some reason my email address goes down you
can write me at the address below.

WHERE DO I SEND SUGGESTIONS, COMMENTS, OR BUG NOTICES?

either my email address or the address below.

DO YOU ACCEPT DONATIONS?

of course, all donations are greatly appreciated.  the address to send
donations to is shown below.  if you can't afford to send a donation,
send something else.  like an interesting program or some pictures or
just a letter to say hello.  any kind of friendly response shows me that
you like what i'm doing and i'm not wasting my time.

  perry fect
  po box 320411
  fairfield, ct 06432

OTHER COMING ATTRACTIONS:

* FNKSHN 1.1: an update to FNKSHN with improvements to existing FNKSHNs.

* OBJECT FNKSHN 96: this is the object oriented version of FNKSHN.  this
  will come in the form of a VCX and will have a potpourri (sp?) of
  visual and non-visual classes. i expect to have version ready in early
  '96.

* FNKSCRNX:  this is for all the 2.x-ers out there.  this will be a
  compilation of all the special genscrnx drivers i've written in the
  past.  for example, i have a more "windowsy" popup for the dos version
  of foxpro that takes up less space than the built in one.  i also have
  a field inserter for the dos version that allows you to insert fields
  or objects in the desired tab order without having to do reorder
  fields.  and there's more!  i hope to have this ready by january '96.

FNKSHN CALLS:

below is a listing of available FNKSHNs and their syntaxes.  i apologize
for the appearance below, i ran short on time in making this document so
i just exported the headers from the source code.  i tried my best to
categorize the FNKSHNs into the areas they fit best.  in the next update
documentation will be more detailed and better organized.  the FNKSHNs
marked as unsupported may or may not be included in the updates.

***** ARRAY RELATED FNKSHNS *****

ABROWSE(@<array>)
  Allows you to browse the contents of an array in a browse.  If <expl>
  is true, the cursor is kept open, otherwise it is closed.
  Calls ACURS()

ATAGS(@<array>[,<alias>])
  Places the list of tags into <array>.  Defaults to the
  current workarea.  If <alias> is sent then that alias
  is checked.

AMOVE(@<source array>,@<destination array>,<src row>[,<dest row>])
  Moves <src row> from <source array> into <dest row> in <destination
  array>.  if <dest row> isn't sent the defualt <dest row> is the bottom
  of <destination array>.  Mainly used for text based arrays.

ASTATES(@<array>)
  puts a list of u.s. states and territories into <array>

AFNDROW(@<array>,<item>)
  this procedure returns the row that <item> exists in <array>

ACURS(@<array>)
  Moves the contents of <array> into a cursor.  Accepts single
  dimensional arrays and also handle type conflicts. Also uses unique
  cursor name so it can be called more than once and on multiple arrays.

ARESIZE(@<array1>, @<array2>)
  matches column widths of two arrays by sizing the smaller array to
  match the number of columns with with larger array

APOPUP(@<array>[,<popup>][,<column>][,<toprow>][,<leftcol>]
               [,<height>][,<width>])
  creates <popup> based on <column> of <array>
  at <toprow>, <leftcol> with a size of <height>, <width>.
  Calls: AMAXLEN()

AMOVER(@<array>[,<popup>][,<column>][,<toprow>][,<leftcol>]
               [,<height>][,<width>])
  creates a mover <popup> based on <column> of <array> at <toprow>,
  <leftcol> with a size of <height>, <width>.  Not supported but works.
  Calls: AMAXLEN()

AAPEND(@<array1>,@<array2>,[<resize>])
  appends the contents of array2 into array1 adjusts number of columns
  in smaller array if <resize> is .t.

AMAXLEN(@<array>[,<column>])
  returns maximum length of a string in <column> of <array>.  Defaults
  to first column if <column> isn't sent.

APURGE(@<array1>[,@<array2>][,<key>])
  purges array of empty records
  <array1> is the source array and <array2> is the resultant array <key>
  is the key column to base the purge on.  if there is a .f. in the key
  column, the whole row is removed.  if only one array is sent then the
  resultant array is returned in <array1>

ALIB(<array>)
  Puts the list of open libraries into <array>

BLDCAL(@<array>[,<date>])
  Converts <array> to a 6x7 array representation of a calendar of the
  month of <date>.
  Calls BOM(), EOM(), VALDTE()

AMEMO(@<array>,<memo>)
  stores each line of a <memo> or a character variable in an <array>.
  line length is based on SET MEMOWIDTH setting.

ISARRAY(@<array>)
  returns .t. if <array> is an array.  Not supported

ACODE(@<array>,<arrayname>)
  this generates source code to define an array <arrayname> is the name
  given to the array in the code

SAVEVIEW(@<array>[,<arealist>])
  Saves workareas with record positions to <array>. If a comma delimited
  <arealist> is sent, then only those aliases are saved.

    LASRC(x,1)=ALIAS()
    LASRC(x,2)=<filename>
    LASRC(x,3)=ORDER()
    LASRC(x,4)=RECNO()
    LASRC(x,5)=<exclusive status>
    LASRC(x,6)=SET("RELATION")
    LASRC(x,7)=SET("FILTER")

  Calls EXT(), GETINFO(), POPINFO()

LOADVIEW(@<array>[,<arealist>])
  Sets up workareas according to <array>.  If <arealist> is
  sent, where <arealist> is a comma delimited string, then
  only those areas are reopened.  See SAVEVIEW().

  The array structure should look like this:
    LASRC(x,1)=ALIAS()
    LASRC(x,2)=<filename>
    LASRC(x,3)=ORDER()
    LASRC(x,4)=RECNO()
    LASRC(x,5)=<exclusive status>
    LASRC(x,6)=SET("RELATION")
    LASRC(x,7)=SET("FILTER")

  Calls SAVEVIEW(), GETINFO(), POPINFO()

REGTAB([<item>[,<action>]])
  This registers <item> in a global array called _REGTAB.  The first
  column holds the item name and the second column holds the number of
  times item was used.  <action> is the desired action. If <action> is
  "OPEN", the second column is incremented. if <action> is "CLOSE" the
  second column is decremented. The "SET" paramater can be used to set
  the item to a specific number.  The "CLEAR" parameter sets the item to
  0.
...

read more »

 
 
 

FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

Post by Sal Porta » Thu, 28 Dec 1995 04:00:00


OK I'm sold.  Where can we Download?

Sal

 
 
 

FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

Post by Perry Fe » Tue, 02 Jan 1996 04:00:00


: OK I'm sold.  Where can we Download?

: Sal

http://www.execpc.com/~gguerra/fnkshn10.zip

if it's not version 1.01 let gguerra know.  my homepage will be up in a
few days and it will also be available there.

--
 d88b  d88b  8888b  88888 ,88. | perry fect lives on  | don't do it for me,

88    88  88 8888P  88""   ""  | CORE! MCMXCVI        |   yourself,
 Y88Y  Y88Y  88  88 88888  MM  | know your enemies!   | do it for the CORE!

 
 
 

FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

Post by Scott Oliv » Thu, 04 Jan 1996 04:00:00



> : OK I'm sold.  Where can we Download?

> : Sal

> http://www.execpc.com/~gguerra/fnkshn10.zip

> if it's not version 1.01 let gguerra know.  my homepage will be up in a
> few days and it will also be available there.

> --
>  d88b  d88b  8888b  88888 ,88. | perry fect lives on  | don't do it for me,

> 88    88  88 8888P  88""   ""  | CORE! MCMXCVI        |   yourself,
>  Y88Y  Y88Y  88  88 88888  MM  | know your enemies!   | do it for the CORE!

Hi,
Terribly frustrating - I get a "file not found" error at this address!
----
Scott Oliver

 
 
 

FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

Post by Perry Fe » Thu, 04 Jan 1996 04:00:00



: > : OK I'm sold.  Where can we Download?
: >
: > : Sal
: >
: > http://www.execpc.com/~gguerra/fnkshn10.zip
: >
: > if it's not version 1.01 let gguerra know.  my homepage will be up in a
: > few days and it will also be available there.
: >
: >
: > --
: >  d88b  d88b  8888b  88888 ,88. | perry fect lives on  | don't do it for me,

: > 88    88  88 8888P  88""   ""  | CORE! MCMXCVI        |   yourself,
: >  Y88Y  Y88Y  88  88 88888  MM  | know your enemies!   | do it for the CORE!
: >
: Hi,
: Terribly frustrating - I get a "file not found" error at this address!
: ----
: Scott Oliver

try http://www.callnet.com/~perfecto/fnkshn10.zip

or

http://www.callnet.com/~perfecto and follow the link

--
 d88b  d88b  8888b  88888 ,88. | perry fect             | dead republican
88    88  88 88  88 88,,  MMMM | kill your party line   | poly-trickster

 Y88Y  Y88Y  88  88 88888  MM  | CORE! MCMXCVI          | fugdagubmendalist

 
 
 

FNKSHN 1.01 (0/1) IS A FREE LIBRARY!

Post by Guillermo Guer » Fri, 05 Jan 1996 04:00:00


Hi,
Terribly frustrating - I get a "file not found" error at this address!

http://www.execpc.com/~gguerra/fnkshn10.zip

will now work, the file was renamed accidentally to fnkskn.zip

G. Guerra

 
 
 

1. FNKSHN 1.01 (1/1) IS A FREE LIBRARY!

begin 644 fnkshn.uue
<uuencoded_portion_removed>
52P4&`````&L`:P"-%P``*.4!````
`
end

--
 d88b  d88b  8888b  88888 ,88. | perry fect               | friendly fascism
88    88  88 88  88 88,,  MMMM | trust government         | bertram gross

 Y88Y  Y88Y  88  88 88888  MM  | CORE! MCMXCVI            | 1982

2. South Carolina - Oracle Data Warehouse P/A

3. FNKSHN 1.01 IS A FREE LIBRARY!

4. DTS permissions

5. FNKSHN 1.01 AT MY WEB PAGE

6. onstat -g iov

7. FREE FNKSHN LIBRARY

8. MSAccess: problem with order of focus

9. ANNOUNCE: FNKSHN 1.2.2/FNKSHN VISUAL COMPONENT SET

10. ANN: AdeptSQL Workshop 1.01

11. Oracle Web Listener 1.01 sporadic errors