You are on page 1of 10

README.TXT ********************************************************** Release Notes for Microsoft(R) FoxPro(R) for MS-DOS (R) Version 2.5b (C)1993 Microsoft Corporation.

All Rights Reserved. Information in the FoxPro online Help is more current than information in the printed documentation. This README provides information not contained in the FoxPro online help or documentation, and provides corrections to both. ********************************************************** ======== CONTENTS ======== Part ---1 2 3 4 5 Description ----------Installation WAIT...WINDOW Enhancements New Commands and Functions New Transporter and Screen Directives International and Cross-Platform Recommendations

---------------------------------------------------------==================== Part 1: Installation ==================== There are three types of installation for FoxPro for MS-DOS: Normal Installation, Administrative Installation and Wor station Installation. Instructions for Normal Installation are in the FoxPro Installation and Configuration manual. For information about Administrative and Wor station Installation, see INSTALL.TXT on FoxPro for MS-DOS Dis 1. ---------------------------------------------------------================================ Part 2: WAIT WINDOW Enhancements ================================ WAIT WINDOW now supports multiple line messages. Use a carriage return (CHR(13)) to move portions of your message to additional lines. The message window is automatically expanded to accommodate additional lines. For example, this command creates a message window that contains two lines: WAIT WINDOW "This is the 1st line" + CHR(13) + ; "This is the 2nd line" The width of the message window is adjusted to fit the longest line in the message. All lines in the message are left justified in the message window. Line feeds (CHR(10)) following CHR(13) are ignored. ---------------------------------------------------------================================== Part 3: New Commands and Functions ==================================



For additional information about these commands and functions. is available in FoxPro 2. it does not affect new or unchanged screen objects or screen objects being transported for the first time. #TRAN SNIPPET ONLY. For additional information about these Transporter directives. This screen directive affects how screen objects are transported.Several new commands and functions are added to FoxPro 2. All other screen object attributes are not transported to the different platform. a new screen directive. ---------------------------------------------------------========================================================= Part 5: International and Cross Platform Recommendations ========================================================= *** IMPORTANT *** ******************************************************* * Be sure to read this section completely before you * . see the "International and Cross Platform Recommendations" section below and the corresponding topics in Help. #TRAN SNIPPET ONLY is designed to limit the Transporter's changes to just screen snippets. #UNIXOBJ and #WINOBJ Transporter directives allow you to transport objects created in the Screen Builder and Report Writer to specific FoxPro platforms.5b. #MACOBJ. and is not discussed in Help. see the Transporting Files topic in Help. Note that #TRAN SNIPPET ONLY only affects updated screen objects. When screen objects are transported to a different FoxPro platform. only the screen snippets for updated screen objects are transported if #TRAN SNIPPET ONLY is included. The #DOSOBJ. New Commands -----------SET NOCPTRANS SET COLLATE New Functions ------------CPCURRENT( ) CPDBF( ) CPCONVERT( ) IDXCOLLATE( ) ---------------------------------------------------------============================================= Part 4: New Transporter and Screen Directives ============================================= Several new Transporter and screen directives have been added. and is placed in a screen's Setup snippet.5b.

5b is 100% percent compatible with FoxPro 2. each character in the code page. For example. Furthermore. U. in most languages accented characters sort after their unaccented counterparts.5b supports a number of new collation sequences to correctly sort in many languages. whether it's a Roman character. For international FoxPro users. In this case.5b still defaults). three-to-one and one-to-two         . in German. you can disregard this section of the README and the International/X-Platform topic in Help.5. see ing and comparisons using the SORT and SEEK commands. for instance). FoxPro 2. characters are interleaved in many cultures. These sequences ta e into account all the complex rules of the language (including two-to-one. has a unique "sort weight" determined by its position in the code page.* change code pages or collation sequences! * ******************************************************* Overview of topics 1 2 3 4 5 6 7 8 9 FoxPro Collation Sequences Case-Insensitive Collation Sequences Case-Sensitive Collation Sequences How do the SEEK and SKIP commands wor ? Alternatives to SEEK and SKIP Additional Recommendations New Code Pages CPZERO Program Corrections to the Help File FoxPro 2. FoxPro 2. sorts after the unaccented a. all accented characters appear after the unaccented characters. In a majority of code pages.5b features.S. and provides accurate sorting in many languages. which earlier FoxPro versions use (and to which FoxPro 2. In this situation an sorts after z. this section describes how code pages and collation sequences affect sorting. In this way. 1 FoxPro Collation Sequences ---------------------------With a MACHINE collation sequence. or a line-drawing character. but only if the unaccented versions of all characters being compared are the same. FoxPro users whose applications don't contain accented characters may not need any of the new international 2. but the string a sorts before the string ab because the second character a is less than the second character b.5b gives international developers and users powerful new features for handling accented characters across different FoxPro platforms. an accented character. which isn't correct in most languages (although it is true in Swedish. and also provides recommendations for ta ing advantage of these features.

1252 Polish 620. enclose the collation sequence in quotation mar s. 852. For example. 1251 Slova 852.FPW). 1250 437. FoxPro generates an error. UNIQWT is a "unique weight" sort in which each accented character sorts strictly after its unaccented counterpart (unli e the interleaving of           . If you use the SET COLLATE command to specify a collation sequence that isn't supported by the current code page. 852. The code pages for which these collation sequences are defined are also included. 861. 1250 Icelandic 437. the default sequence in earlier FoxPro versions. and the SWEFIN option appears as Swedish & Finnish. the collation sequence names appear in longer forms. see SET COLLATE in Help. 850. Don't enclose the collation sequence in quotation mar s if you specify a collation sequence in your FoxPro configuration file (CONFIG. If you specify a collation sequence in your FoxPro configuration file that isn't supported by the current code page. 1252. 10000 Friendly Name ------------Czech Dutch Gree General HUNGARY ICELAND MACHINE NORDAN POLISH RUSSIAN SLOVAK SPANISH SWEFIN UNIQWT If you specify a collation sequence in the SET COLLATE command as a string literal. 1250 Spanish 437. the NORDAN option appears as Norwegian & Danish. 895. 850. 850. 1252 Unique Weight 437. 3 Case-Sensitive Collation Sequences -----------------------------------Two case-sensitive collation sequences are available in FoxPro: the familiar MACHINE sequence. 850. 1250 Russian 866. 850. 1250. 1252 Machine All Norwegian/Danish 437. 895. 1252 Swedish/Finnish 437. and the sequence named UNIQWT.mappings). 10000 Hungarian 852. 850. Collation Sequence -----------------CZECH DUTCH GREEK GENERAL Code Pages ---------852. For additional information about collation sequences. 1252 737. 861. 895. 850. 620.FP or CONFIG. 865. 865. If you specify a collation sequence in the International panel in the View window. 1253 437. the collation sequence defaults to MACHINE. The following collation sequences were available when this README was created. 1252.

. One reason is that upper. Another reason is described in the section titled "How do the SEEK and SKIP commands wor ?" 4 How do the SEEK and SKIP commands wor ? ----------------------------------------- With a machine sort. To have SEEK and SKIP find only those records that exactly match accented characters. FoxPro behaves this way for the following three reasons: 1) Performance. But when FoxPro uses the new language-specific collation sequences to create indexes.. Note that SEEK and SKIP use the collation sequence of the master index or tag. it may aid developers in migrating their applications from earlier FoxPro versions. use one of the following methods to search a table: 1) Construct a loop with SCAN FOR . even if you SEEK " bc" you may find "abc". 2) Use LOCATE FOR . Note that partial searches (where you search for part of the field) using SEEK may not return the results you expect when the current collation sequence is not MACHINE or UNIQWT. The UNIQWT sort has the same property. SEEK then positions the index entry that's greater supplied ey. In other words. While the collation sequence with UNIQWT isn't strictly culturally correct as with GENERAL. SEEK can't be used unless there is an index is active. 3) Consistency with the SET NEAR command. CONTINUE..       . and they have two very significant advantages over SEEK when         The SEEK command accepts an that expression into a sort eys in the master index or record pointer at the first than or equal to ( >= ) the expression. and ignore the current collation sequence. 5 Alternatives to SEEK and SKIP ------------------------------If you use accented characters. FoxPro transforms ey which it compares to tag. SEEK finds a match if there is one.accented characters described earlier). only the alphabetic part of the ey is considered and any diacritical mar s are ignored. ENDSCAN. you must either SET EXACT ON or use an index tag created with the MACHINE or UNIQWT collation sequences. 2) Consistency with the SKIP command. LOCATE and SCAN use an index if one is active..and lower-case letter are treated distinctly as they were in earlier FoxPro versions.

FoxPro's automatic character translation is not in effect for any fields you cannot let SQL SELECT open tables for you if the tables contain fields which should not be translated. SEEK. simply positions you somewhere in the index. In contains accented characters. Binary data might otherwise be changed. First. 2) For the best performance when using a collation sequence other than MACHINE or UNIQWT. so they can be used for looping on a condition. For many U. you must issue the SET NOCPTRANS command before issuing a SQL SELECT command -. otherwise partial optimization will occur. LOCATE and SCAN are diacritically-sensitive. you must reissue SET NOCPTRANS and designate the fields which should not be translated.S. In particular. if you have a table with a character field that's actually storing binary information (data). Note that SET NOCPTRANS only operates on fields for the table open in the currently selected wor area. feel free to continue to use machine indexes. If you choose to use SET NOCPTRANS. the SET NOCPTRANS command allows you to inform FoxPro that characters in such a field should not be translated. With international data. and SKIP continues down the index from that point. this is appropriate. both LOCATE and SCAN can be fully optimized by Rushmore if the current collation sequence is MACHINE or UNIQWT. For characters such as the MS-DOS line-drawing characters. because of FoxPro's "nearest" character mapping. you must do so immediately after issuing the USE command. on the other hand. From that point on.     . Second. whereas SEEK isn't. The ORDER BY clause of the SQL SELECT command uses the current collating sequence. users. FoxPro maps to the "nearest" character in the destination code page. be sure that the current collation sequence is the same as the collation sequence of any indexes you are using. However. If you close a table and then open the table again. this may not give you the results you want. 3) Most international users will want accented characters in all fields to be translated automatically by FoxPro when running cross-platform applications. which is returned by SET("COLLATE")). both LOCATE and SCAN remember the condition with which they were invo ed. 6 Additional Recommendations ---------------------------1) If you aren't concerned with indexing accented characters in a language-specific way.

FoxPro will display accented characters correctly. FoxFont is the default font for user-defined windows created with DEFINE WINDOW when the FONT clause is omitted. However. If you have automatic code page translation enabled. But if you use FoxFont in an application you create in FoxPro for Windows. do not open the files for editing from within the Project Manager. FoxFont won't correctly display characters typed on international Windows eyboards.FXP files) have a header. in the Project Manager don't edit programs or tables created on a FoxPro platform other than the current platform. 5) FoxPro 2.5b can automatically translate accented characters in most files types such as . However.PRG) and text (. translation of accented characters in the programs might not be translated properly. Trace and Debug windows if you're using Windows 3. some of the characters in the application may not transport correctly to other FoxPro platforms. Also. program (. The Project Manager assumes that all programs in a project are native to the current FoxPro platform. you should avoid using FoxFont.FXP files. . Therefore. and . once you compile a program. If you create an application that contains files created on different FoxPro platforms. Furthermore. Be sure to include the FONT clause when creating user-defined windows in FoxPro for Windows.1. FixedSys is the default font for the Command. Therefore. it         .TXT) files don't have a header and can't be mar ed with a code page. once you build an application (. It's important that you compile each program on the platform on which it was written. within the Project Manager you can't specify the platform on which a program or text file was created. FoxFont is the installed default font for the FoxPro des top. If you create an application or an executable from a project that contains programs created on different FoxPro platforms. it can be run on any FoxPro platform and accented characters in the original source program are automatically translated when automatic code page translation is in effect. FoxPro must assume that a program or text file was designed for use on the platform on which it is opened. Since compiled programs (. This means that you shouldn't double-clic on a file to open it in the Project Manager if you've enabled automatic translation by including CODEPAGE = AUTO in your FoxPro configuration file. FoxFont is an OEM MS-DOS font that you may find useful in some situations. 6) Do not mix programs created on different FoxPro platforms in a project. Text editor windows default to the current Command window font.4) If you create cross platform applications.DBF.APP file).SCX.

This conversion is required just once.5b. In the AS clause. You are prompted for the code page (437. specify the code page for the FoxPro platform on which the file will be used. For example. b) Open every screen. the MS-DOS line drawing characters aren't supported under Windows. 850 and so on) on which each was created. so avoid using them in screens you plan to transport between FoxPro for MS-DOS and FoxPro for Windows. allowing you to output any character. For example. A li e to convert the Yes.5b or FoxPro dialog appears. Specify the MS-DOS code page on which each was built and then choose Yes. code page 437 doesn't contain uppercase versions of several accented vowels. specify the code page (437. menu and table contained in the project with the USE command. It's best to avoid accented characters in file names.     . 7) If you have a project created in FoxPro for MS-DOS version 2. query. Choose the Save As option from the File menu and choose the Change Code Page chec box. 9) The MS-DOS file system is case-insensitive and requires uppercase file names.5 format.will run on any FoxPro platform and FoxPro can automatically translate accented characters. These characters can't be safely used in a FoxPro file name. In the dialog that appears after you choose Save. 850 and so on) of the FoxPro platform on which each was created. as ing if you would project to a 2. you can share the project and its files across different FoxPro platforms by performing the following steps to convert the project and its files. 8) If you're developing a cross-platform application. If your applications run on FoxPro for MS-DOS. c) Use MODIFY COMMAND or MODIFY FILE and include the AS clause to open EVERY program.0 and the files within the project contain accented characters. and enables cross platform sharing of all the elements of the project. label. report. avoid using characters that appear in one code page and not another. be sure to restrict file names to those characters that have uppercase equivalents in your MS-DOS code page. then close the FoxPro for MS-DOS 2. format file or text file contained in the project. Choose project. 7 New Code Pages ---------------The following code pages are now supported:   a) Open the project in for Windows 2. Output from CHR() isn't translated when the function is executed. You can use CHR() if your application absolutely requires line drawing and accented characters.

CPZERO is a FoxPro program that is automatically installed in your FoxPro directory.PRG to reset the table's code page to zero.Byte 29 in table headers contains the code page identifier. Before you run CPZERO. 9 Corrections to the Help File -----------------------------Configuring FoxPro and International/X-Platform Topics -----------------------------------------------------These FoxPro 2.S. The following table lists the code page and the corresponding code page identifier in hex. When you run CPZERO. MS-DOS Gree MS-DOS (437G) Mazovia (Polish) MS-DOS International MS-DOS EE MS-DOS (Latin II) Icelandic MS-DOS Nordic MS-DOS Russian MS-DOS Kamenic y (Czech) MS-DOS Windows EE Russian Windows Windows ANSI Gree Windows Standard Macintosh . Code Page --------437 737 620 850 852 861 865 866 895 1250 1251 1252 1253 10000 8 CPZERO Program ---------------If you accidentally specify the wrong code page when you open a table that isn't mar ed with a code page. ma e sure that the table whose code page you'll reset isn't open. run CPZERO.5b help file topics contain the following line: "Note that MODIFY STRUCTURE also mar s a table with the Code Page Identifier -------------------x01 x6A x69 x02 x64 x67 x66 x65 x68 xC8 xC9 x03 xCA x04             Code Page --------437 737 620 850 852 861 865 866 895 1250 1251 1252 1253 10000 Platform -------U. you are prompted for the name of the table to modify.

as it states in this topic. both of these return true (. A strict machine comparison is performed by ==.F. including trailing blan s. For more information about comparisons using = and ==. All characters in each string are compared. Rather. not ..T. see SET EXACT in the Language Reference or the FoxPro help facility.TXT =================       . it preserves the table's existing code page mar ." This line is incorrect and should read: "Note that MODIFY STRUCTURE doesn't mar a table with the current code page." International/X-Platform Topic -----------------------------This help file topic contains the following line: For example. if the current collation sequence is GENERAL. ---------------------------------------------------------================= End of README.T.): "Straáe" = "Strasse" and "Straáe" == "Strasse" "Straáe" == "Strasse" will always return .current code page.