1719:
PROTECTED: VAR pvtEyes ENDCLASS // Sample of normal Method definition METHOD New( cName ) CLASS Person ::Name := cName RETURN Self METHOD Describe() CLASS Person LOCAL cDescription IF Empty( ::Name ) cDescription := "I have no name yet." ELSE cDescription := "My name is: " + ::Name + ";" ENDIF IF ! Empty( ::Eyes ) cDescription += "my eyes' color is: " + ::Eyes ENDIF RETURN cDescription
77:
36:
838:
1760:
179:
1075:: Visible only within the routine which declared it. Value is preserved for subsequent invocations of the routine. If a STATIC variable is declared before any Procedure/Function/Method is defined, it has a MODULE scope, and is visible within any routine defined within that same source file, it will maintain its life for the duration of the application lifetime.
609:, DBFNTX, DBFCDX, DBFDBT and DBFFPT. In Harbour multiple RDDs can be used in a single application, and new logical RDDs can be defined by combining other RDDs. The RDD architecture allows for inheritance, so that a given RDD may extend the functionality of other existing RDD(s). Third-party RDDs, like RDDSQL, RDDSIX, RMDBFCDX,
1410:
The BEGIN SEQUENCE structure allows for a well behaved abortion of any sequence, even when crossing nested procedures/functions. This means that a called procedure/function, may issue a BREAK statement, or a Break() expression, to force unfolding of any nested procedure/functions, all the way back to
589:
The idea of a free software
Clipper compiler had been floating around for a long time and the subject has often cropped up in discussion on comp.lang.clipper. Antonio Linares founded the Harbour project and the implementation was started in March 1999. The name "Harbour" was proposed by Linares, it
1783:
is a fork of the earlier
Harbour project. xHarbour takes a more aggressive approach to implementing new features in the language, while Harbour is more conservative in its approach, aiming first of all for an exact replication of Clipper behaviour and then implementing new features and extensions as
1027:
Detached variables will maintain their value for as long as a
Codeblock referencing them still exists. Such values will be shared with any other Codeblock which may have access to those same variables. If the Codeblock did not outlive its containing routine, and will be evaluated within the lifetime
682:
Under Linux and
Windows Mobile, Clipper source code can be compiled with Harbour with very little adaptation. Most software originally written to run on Xbase++, FlagShip, FoxPro, xHarbour and others dialects can be compiled with Harbor with some adaptation. As of 2010 many efforts have been made to
783:
Operator '&'. Harbour's implementation of the Macro
Operator allows for runtime compilation of any valid Harbour expression. Such a compiled expression may be used as a VALUE, i.e. the right side of an assignment (rvalue) or may be used to resolve the left side (lvalue) of an assignment, i.e.
1767:
Today
Harbour development is led by Viktor Szakáts in collaboration with Przemysław Czerpak who also contributes many components of the core language and supplementary components. HBIDE and some other components, especially HBQt, are developed by Pritpal Bedi. Other members of the development
1718:
CREATE CLASS Person VAR Name INIT "" METHOD New( cName ) METHOD Describe() ACCESS Eyes INLINE ::pvtEyes ASSIGN Eyes( x ) INLINE iif( HB_ISSTRING( x ) .AND. x $ "Blue,Brown,Green", ::pvtEyes := x, Alert( "Invalid value" ) )
820:
Programming in an OOP style is a broader issue than a specific library or a specific interface, but OOP programming is something many
Clipper programmers have come to expect. CA-Clipper 5.2 and especially 5.3 added a number of base classes, and a matching OOP syntax. Libraries such as
828:
Harbour has OOP extensions with full support for classes including inheritance, based on Class(y) syntax. OOP syntax in
Harbour is very similar to that of earlier Clipper class libraries so it should be possible to maintain legacy Clipper code with minimal changes.
1411:
the first outer BEGIN SEQUENCE structure, either after its respective END statement, or a RECOVER clause if present. The Break statement may optionally pass any type of expression, which may be accepted by the RECOVER statement to allow further recovery handling.
1880:– Multi-Platform QT Based GUI Development Package for Harbour. Marinas-GUI downloads as a complete installation package for the chosen target platform (IDE, Version Control, Harbour/C Compiler, Libraries etc.) – Basically install and start coding and compiling
675:. As the same compiler is available for all of the above operating systems, there is no need for re-coding to produce identical products for different platforms, except when operating system dependent features are used. Cross-compiling is supported with
1794:
The
Harbour developers explicitly reject extensions to the language where those extensions would break Clipper compatibility. These rejections were softened recently since the new Harbour architecture allows extensions out of the core compiler.
728:
Harbour supports external GUI's, free (e.g. HBQt, HWGui, Mini-GUI (latest version based on Qt and QtContribs) and commercial (e.g. FiveWin, Xailer). HBQt is a library providing bindings to Qt. HBIDE application is a sample of HBQt potential.
1275:
expression is evaluated and compared against the value of the control variable, prior to each iteration, and the loop is terminated if it evaluates to a numeric value greater than the numeric value of the control variable. The optional
1291:
variable will have the value (scalar, or complex) of the respective element in the collection value. The collection expression may be an Array (of any type or combinations of types), a Hash Table, or an Object type.
787:
Additionally, the Macro
Operator may compile and execute function calls, complete assignments, or even list of arguments, and the result may be used to resolve any of the above contexts in the compiled application.
679:. Under Microsoft Windows, Harbour is more stable but less well-documented than Clipper, but has multi-platform capability and is more transparent, allows for more customisation and can run from a USB flash drive.
1791:
The Harbour developers have attempted to document all hidden behaviour in the Clipper language and test Harbour-compiled code alongside the same code compiled with Clipper to maintain compatibility.
1380:, and if present, execution of the SWITCH structure will end when the EXIT statement is reached, otherwise it will continue with the first statement below the next CASE statement (fall through).
893:. A scalar holds a single value, such as a string, numeric, or reference to any other type. Arrays are ordered lists of scalars or complex types, indexed by number, starting at 1. Hashes, or
613:, and Mediator exemplify some of the RDD architecture features. DBFNTX implementation has almost the same functionality of DBFCDX and RDDSIX. NETIO and LetoDB provide remote access over
1016:
Codeblocks may have references to Variables of the Procedure/Function>method in which it was defined. Such Codeblocks may be returned as a value, or by means of an argument passed
1542:
optional qualifiers, will flag the procedure to be automatically invoked just before calling the application startup procedure, or just after quitting the application, respectively.
663:
software. Although this is true, xBase is more than a simple database system as at the same time xBase languages using purely DBF can not provide the full concept of a real RDBMS.
1549:
Changes to argument variables are not reflected in respective variables passed by the calling procedure/function/method unless explicitly passed BY REFERENCE using the
764:, its own implementation of CA-Tools, updated NanFor libraries and many others. Harbour has an active development community and extensive third party support.
1141:
variables, they can be created and destroyed at runtime and can be accessed and modified by means of runtime macros or by Codeblocks created on the fly.
98:
91:
2321:
2311:
49:
2356:
1369:
must be a compiled time resolvable numeric expression, and may involve operators, as long as such operators involve compile time static value.
2376:
1798:
A detailed comparison between extensions implemented in Harbour and xHarbour can be found in the source repository of the project on GitHub.
725:
Harbour can make use of multiple Graphical Terminal emulation, including console drivers, and Hybrid Console/GUIs, such as GTWvt, and GTWvg.
141:
2244:
957:
113:
800:
The text value of the expression '...' will be compiled, and the value resulting from the execution of the compiled code is the result.
2351:
2331:
2306:
732:
Harbour is 100% Clipper-compatible and supports many language syntax extensions including greatly extended run-time libraries such as
2366:
2301:
845:
Harbour as every xBase language is case insensitive and can optionally accept keywords written just by their first four characters.
120:
2199:
440:
2371:
2346:
2316:
127:
1020:, in such case the Codeblock will "outlive" the routine in which it was defined, and any variables it references, will be a
897:, are unordered collections of any type values indexed by their associated key, which may be of any scalar or complex type.
1546:
passed to a procedure/function appear in the subroutine as local variables, and may accept any type, including references.
197:
189:
2381:
259:
109:
55:
771:
language provides a very productive way to build business and data intensive applications. Harbour is not an exception.
1825:
1813:
1051:
All types can be assigned to named variables. Named variable identifiers are 1 to 63 ASCII characters long, start with
17:
233:
215:
160:
63:
594:
as a type of ship. Harbour is a synonym for port (where ships dock), and Harbour is a port of the Clipper language.
2341:
352:
1735:
hbrun – Shell interpreter for Harbour. Macro compiling allows to run any valid Harbour code as it's being compiled
1130:
exposed to the Macro compiler, and any macro code which attempts to reference them will generate a runtime error.
2171:
1527:(up to 63 characters non-case sensitive). Both Procedures and Functions may be qualified by the scope qualifier
2204:
1591:
1513:
1154:
874:
491:
346:
822:
614:
1543:
791:
The latest Macro compiler can compile any valid Harbour code including code to per-process before compile.
672:
134:
1861:
1509:
1237:
statement restarts the current iteration of the enclosing loop structure, and if the enclosing loop is a
1162:
625:
605:
Harbour extends the Clipper Replaceable Database Drivers (RDD) approach. It offers multiple RDDs such as
324:
271:
1563:
FUNCTION may return any type by means of the RETURN statement, anywhere in the body of its definition.
1280:
expression is evaluated after each iteration, prior to deciding whether to perform the next iteration.
886:
649:
542:
501:
Harbour code uses the same databases and can be compiled under a wide variety of platforms, including
1741:
hbpp – Pre-processor, a powerful tool which avoids typical problems found on C language per-processor
882:
858:
610:
2326:
1439:
1158:
780:
570:
1784:
a secondary consideration. It should also be noted that Harbour is supported on a wide variety of
691:
87:
597:
In 2009, Harbour was substantially redesigned, mainly by Viktor Szakáts and Przemyslaw Czerpak.
2361:
1738:
hbformat – Formats source code written on Harbour or another dialect according to defined rules
707:
275:
267:
263:
2056:
2336:
719:
1069:: Visible only within the routine which declared it. Value is lost upon exit of the routine.
703:
629:
483:
479:
254:
8:
2164:
1430:
properties, which allows error handlers to perform some preparations, and then request a
1259:
statement closes the control structure and moves to the next iteration of loop structure.
741:
406:
1230::__enumIndex() may be optionally used to retrieve the current iteration index (1 based).
414:
292:
2034:
1785:
894:
653:
502:
2085:"Harbour MiniGUI Extended Edition. | Free Communications software downloads at"
1556:
PROCEDURE has no return value, and if used in an Expression context will produce a
761:
401:
389:
1341:
Harbour supports a SWITCH construct inspired by the C implementation of switch().
2134:
2129:
2084:
1820:
1730:
878:
282:
1872:– Object Oriented Harbour GUI – a fork "class based and oop programming" of HMG
2280:
2239:
2209:
2157:
1972:
1895:
1808:
733:
633:
487:
394:
374:
2144:
1032:(s) by means of its evaluation, will be reflected back at its parent routine.
2295:
2219:
2149:
1890:
862:
711:
382:
1909:
1252:
statement immediately terminates execution of the enclosing loop structure.
1115:
854:
591:
482:, primarily used to create database/business programs. It is a modernised,
1950:
1832:
1245:
loop, it increases the iterator, moving to the next iteration of the loop.
1057:
up to a maximum of 63 characters. Named variables are not case sensitive.
1772:
source repository. As of 2015 Harbour development is active and vibrant.
558:
378:
370:
364:
825:, FieWin, Clip4Win, and Top Class provide additional OOP functionality.
2139:
2118:
1505:
890:
641:
526:
837:
2229:
1908:
free open source visual programming language support Harbour through
1900:
1220:
is a sequence of one or more Harbour statements, and square brackets
530:
1114:
variables which are dynamic entities accessed by means of a runtime
76:
2234:
1780:
715:
518:
467:
1840:
1531:
to restrict their usage to the scope of the module where defined.
2249:
1788:
while xHarbour only really supports MS Windows and Linux 32-bit.
1081:: Visible within the routine which declared it, and all routines
1035:
Codeblocks can be evaluated any number of times, by means of the
870:
866:
737:
574:
550:
534:
522:
2214:
2061:
1769:
1759:
1271:
expression is evaluated prior to the first loop iteration. The
645:
578:
562:
1929:
1157:
control structures as well as additional ones inspired by the
962:{ |Arg1, ArgN| Arg1 := ArgN + OuterVar + FunctionCall() }
2275:
2194:
2180:
2012:
1990:
1860:– Free / Open Source xBase Win32 / GUI Development System (a
1845:
1566:
An example procedure definition and a function call follows:
1150:
768:
753:
699:
695:
684:
676:
660:
637:
606:
506:
495:
428:
2111:
1106:
are resolved at compile time, and thus are much faster than
779:
One of the most powerful features of xBase languages is the
2254:
2124:
1905:
757:
749:
745:
621:
566:
554:
510:
1876:
1868:
1856:
1442:
to replace the expression triggering the error condition.
1849:
1149:
The basic control structures include all of the standard
690:
Harbour can use the following C compilers, among others:
546:
538:
514:
1376:
optional statement is the equivalent of the C statement
656:
are examples of databases which Harbour can connect to.
935:
Complex Types may also be represent as literal values:
2140:
Extensive Harbour documentation, libraries, tools site
1816:
to help Harbour development and various xBase dialects
1028:
of the routine in which it is defined, changes to its
1013:
of any member, including nesting arrays, and Hashes.
1836:– Open Source cross-platform GUI library for Harbour
774:
784:private, or public variables, or a database field.
812:is the short form of &( SomeId + "postfix" ).
1744:hbi18n – Tools to localizing text on applications
1329:The condition expression(s) has to evaluate to a
900:Literal (static) representation of scalar types:
2293:
2121:Clipper, FoxPro and Xbase++ community repository
1445:Alternatively TRY statements are available on
1005:for any element. Hashes and Arrays may contain
2179:
815:
2165:
1449:library working like the SEQUENCE construct.
1384:
447:Clipper, Xbase++, FlagShip, FoxPro, xHarbour
2145:Harbour Wiki (Harbour Functions Dictionary)
1452:
1061:Variables have one of the following scopes:
659:xBase technologies often are confused with
64:Learn how and when to remove these messages
2172:
2158:
1801:
1747:hbdoc – Creates documentation for Harbour
1523:. Naming rules are the same as those for
666:
494:system, which in turn developed from the
234:Learn how and when to remove this message
216:Learn how and when to remove this message
161:Learn how and when to remove this message
1758:
836:
498:database market of the 1980s and 1990s.
2322:Dynamically typed programming languages
2312:Fourth-generation programming languages
2082:
1635:Or, enclosed in an explicit procedure:
832:
806:is the short form for &( SomeId ).
14:
2294:
1775:
1054:and further consist of the characters
953:, FunctionCall(), @FunctionPointer() }
848:
97:Please improve this article by adding
2357:Programming languages created in 1999
2153:
1512:in Harbour can be specified with the
1144:
2377:Multi-paradigm programming languages
1336:
912:"hello", 'hello',
172:
70:
29:
1001:type including other Hashes as the
600:
110:"Harbour" programming language
24:
1973:"QtContribs - Harbour Qt Projects"
1826:Integrated Development Environment
1814:Integrated Development Environment
188:tone or style may not reflect the
25:
2393:
2352:Windows database-related software
2332:Declarative programming languages
2307:XBase programming language family
2103:
1095:routines in the same application.
775:Macro operator (runtime compiler)
45:This article has multiple issues.
2367:High-level programming languages
2302:Procedural programming languages
1295:
198:guide to writing better articles
177:
75:
34:
2130:Harbour Developers Mailing List
1652:
683:make the transition from other
673:written once, compiled anywhere
330:3.0.0 / 17 July 2011
53:or discuss these issues on the
2076:
2049:
2027:
2005:
1983:
1965:
1943:
1922:
1852:Development System for Harbour
1768:community send changes to the
1754:
1751:All tools are multi-platform.
1585:
853:Harbour has six scalar types:
13:
1:
2372:Free software programmed in C
2347:Programming tools for Windows
2317:Dynamic programming languages
1915:
1133:Due to the dynamic nature of
99:secondary or tertiary sources
27:Computer programming language
1046:
297:Viktor Szakáts and community
7:
1884:
1862:Fork (software development)
1844:– Free / Open Source xBase
1707:( oPerson:Describe() )
816:Object-oriented programming
307:; 25 years ago
10:
2398:
2382:Table-oriented programming
2181:xBase programming language
2135:Harbour Users Mailing List
2083:vailtom (17 August 2009).
877:, and four complex types:
584:
2263:
2187:
1644:"Hello, world!"
1629:"Hello, world!"
1614:"Hello, world!"
1600:"Hello, world!"
1414:Additionally the Harbour
1385:BEGIN SEQUENCE statements
967:
961:
940:
929:
923:
917:
911:
905:
611:Advantage Database Server
466:
461:
456:
451:
446:
439:
423:
413:
400:
388:
363:
359:
345:
323:
319:
301:
291:
281:
253:
1864:of both HMG and Harbour)
1729:hbmk2 – Build tool like
1723:
1716:
1659:
1637:
1622:
1607:
1596:
1568:
1453:Procedures and functions
1168:
1118:. For this same reason,
947:"Nested Array"
2342:Linux programming tools
1991:"Official Harbour page"
1802:GUI libraries and tools
1223:denote optional syntax.
1165:programming languages:
978:"Numeric key"
624:support by means of an
1764:
1665:"hbclass.ch"
842:
667:Programming philosophy
332:; 13 years ago
86:relies excessively on
1993:. The Harbour Project
1762:
1322:represents 0 or more
841:Harbour code on HBIDE
840:
490:version of the older
1594:" program would be:
1573: := Cube( 2 )
833:Syntax and semantics
809:&SomeId.postfix
708:Microsoft Visual C++
632:support by means of
620:Harbour also offers
480:programming language
419:.prg, .ch, .hb, .hbp
1776:xHarbour comparison
1695:"Invalid"
849:Built-in data types
744:, hbtip, hbtpathy,
671:Harbour aims to be
415:Filename extensions
302:First appeared
250:
2013:"harbour 路 GitHub"
1765:
1714:Class definition:
1642:Main() ?
1403:BEGIN SEQUENCE
1389:BEGIN SEQUENCE
1145:Control structures
1030:Detached Variables
986:"Nested"
943:"String"
895:associative arrays
843:
513:variants, several
248:
18:Harbour (software)
2289:
2288:
2087:. Sourceforge.net
1953:. Sourceforge.net
1786:operating systems
1496:SomeProcedureName
1492:SomeProcedureName
1488:SomeProcedureName
1482:SomeProcedureName
1478:SomeProcedureName
1467:SomeProcedureName
1463:SomeProcedureName
1459:SomeProcedureName
1337:SWITCH statements
982:"Name2"
687:dialects easier.
503:Microsoft Windows
473:
472:
365:Typing discipline
244:
243:
236:
226:
225:
218:
192:used on Knowledge
190:encyclopedic tone
171:
170:
163:
145:
68:
16:(Redirected from
2389:
2174:
2167:
2160:
2151:
2150:
2115:
2114:
2112:Official website
2097:
2096:
2094:
2092:
2080:
2074:
2073:
2071:
2069:
2053:
2047:
2046:
2044:
2042:
2035:"About xHarbour"
2031:
2025:
2024:
2022:
2020:
2009:
2003:
2002:
2000:
1998:
1987:
1981:
1980:
1969:
1963:
1962:
1960:
1958:
1947:
1941:
1940:
1938:
1936:
1926:
1828:includes Harbour
1710:
1706:
1703:
1702:"Blue"
1699:
1696:
1692:
1688:
1687:"Dave"
1684:
1680:
1677:
1673:
1669:
1666:
1663:
1657:Main procedure:
1648:
1645:
1641:
1630:
1626:
1615:
1611:
1601:
1580:
1576:
1572:
1522:
1518:
1222:
1140:
1136:
1129:
1125:
1121:
1113:
1109:
1105:
1101:
1094:
1090:
1085:by that routine.
1084:
1080:
1074:
1068:
1056:
1053:
1042:
1023:
1019:
993:
991:
990:"Hash"
987:
983:
979:
975:
974:"John"
971:
970:"Name"
963:
954:
952:
948:
944:
931:
930:1, 1.1, −1, 0xFF
925:
919:
913:
907:
601:Database support
435:
432:
430:
340:
338:
333:
315:
313:
308:
283:Designed by
251:
247:
239:
232:
221:
214:
210:
207:
201:
200:for suggestions.
196:See Knowledge's
181:
180:
173:
166:
159:
155:
152:
146:
144:
103:
79:
71:
60:
38:
37:
30:
21:
2397:
2396:
2392:
2391:
2390:
2388:
2387:
2386:
2327:Query languages
2292:
2291:
2290:
2285:
2259:
2225:Harbour Project
2188:Implementations
2183:
2178:
2110:
2109:
2106:
2101:
2100:
2090:
2088:
2081:
2077:
2067:
2065:
2055:
2054:
2050:
2040:
2038:
2033:
2032:
2028:
2018:
2016:
2011:
2010:
2006:
1996:
1994:
1989:
1988:
1984:
1971:
1970:
1966:
1956:
1954:
1949:
1948:
1944:
1934:
1932:
1928:
1927:
1923:
1918:
1887:
1804:
1778:
1757:
1726:
1721:
1720:
1712:
1711:
1708:
1704:
1701:
1697:
1694:
1690:
1686:
1682:
1678:
1675:
1671:
1667:
1664:
1661:
1655:
1650:
1649:
1646:
1643:
1639:
1633:
1632:
1628:
1624:
1618:
1617:
1613:
1609:
1603:
1602:
1599:
1588:
1583:
1582:
1578:
1574:
1570:
1520:
1516:
1503:
1484:
1480:EXIT PROCEDURE
1476:INIT PROCEDURE
1474:
1455:
1432:Retry Operation
1408:
1398:
1393:)] RECOVER
1387:
1362:
1339:
1317:
1298:
1267:statement, the
1221:
1213:
1199:
1181:
1171:
1147:
1138:
1134:
1127:
1123:
1119:
1111:
1107:
1103:
1099:
1092:
1088:
1082:
1078:
1072:
1066:
1055:
1052:
1049:
1036:
1021:
1017:
997:Hashes may use
989:
985:
981:
977:
973:
969:
950:
946:
942:
851:
835:
818:
810:
804:
798:
777:
718:, Pelles C and
669:
603:
590:is a play on a
587:
427:
355:
347:Preview release
341:
336:
334:
331:
311:
309:
306:
287:Antonio Linares
272:object-oriented
249:Harbour Project
240:
229:
228:
227:
222:
211:
205:
202:
195:
186:This article's
182:
178:
167:
156:
150:
147:
104:
102:
96:
92:primary sources
80:
39:
35:
28:
23:
22:
15:
12:
11:
5:
2395:
2385:
2384:
2379:
2374:
2369:
2364:
2359:
2354:
2349:
2344:
2339:
2334:
2329:
2324:
2319:
2314:
2309:
2304:
2287:
2286:
2284:
2283:
2281:Visual Objects
2278:
2273:
2267:
2265:
2261:
2260:
2258:
2257:
2252:
2247:
2242:
2237:
2232:
2227:
2222:
2217:
2212:
2210:Visual Objects
2207:
2202:
2197:
2191:
2189:
2185:
2184:
2177:
2176:
2169:
2162:
2154:
2148:
2147:
2142:
2137:
2132:
2127:
2122:
2116:
2105:
2104:External links
2102:
2099:
2098:
2075:
2057:"xhb-diff.txt"
2048:
2037:. Xharbour.org
2026:
2004:
1982:
1964:
1942:
1920:
1919:
1917:
1914:
1913:
1912:
1903:
1898:
1896:Visual Objects
1893:
1886:
1883:
1882:
1881:
1873:
1865:
1853:
1837:
1829:
1817:
1803:
1800:
1777:
1774:
1756:
1753:
1749:
1748:
1745:
1742:
1739:
1736:
1733:
1725:
1722:
1717:
1700::Eyes :=
1693::Eyes :=
1660:
1654:
1651:
1638:
1623:
1608:
1597:
1587:
1584:
1577:Cube( n )
1569:
1485:
1475:
1465:() PROCEDURE
1456:
1454:
1451:
1438:, or return a
1402:
1388:
1386:
1383:
1382:
1381:
1370:
1343:
1338:
1335:
1299:
1297:
1294:
1261:
1260:
1253:
1246:
1231:
1224:
1200:
1182:
1172:
1170:
1167:
1146:
1143:
1126:variables are
1097:
1096:
1086:
1076:
1070:
1048:
1045:
995:
994:
964:
955:
933:
932:
926:
920:
914:
908:
850:
847:
834:
831:
817:
814:
808:
802:
796:
776:
773:
740:, Free Image,
668:
665:
602:
599:
586:
583:
488:cross-platform
478:is a computer
471:
470:
464:
463:
459:
458:
457:dBase, Clipper
454:
453:
449:
448:
444:
443:
437:
436:
425:
421:
420:
417:
411:
410:
409:GPL-compatible
404:
398:
397:
395:Cross-platform
392:
386:
385:
367:
361:
360:
357:
356:
351:
349:
343:
342:
329:
327:
325:Stable release
321:
320:
317:
316:
303:
299:
298:
295:
289:
288:
285:
279:
278:
260:multi-paradigm
257:
242:
241:
224:
223:
185:
183:
176:
169:
168:
83:
81:
74:
69:
43:
42:
40:
33:
26:
9:
6:
4:
3:
2:
2394:
2383:
2380:
2378:
2375:
2373:
2370:
2368:
2365:
2363:
2362:1999 software
2360:
2358:
2355:
2353:
2350:
2348:
2345:
2343:
2340:
2338:
2335:
2333:
2330:
2328:
2325:
2323:
2320:
2318:
2315:
2313:
2310:
2308:
2305:
2303:
2300:
2299:
2297:
2282:
2279:
2277:
2274:
2272:
2269:
2268:
2266:
2262:
2256:
2253:
2251:
2248:
2246:
2243:
2241:
2238:
2236:
2233:
2231:
2228:
2226:
2223:
2221:
2220:Visual FoxPro
2218:
2216:
2213:
2211:
2208:
2206:
2203:
2201:
2198:
2196:
2193:
2192:
2190:
2186:
2182:
2175:
2170:
2168:
2163:
2161:
2156:
2155:
2152:
2146:
2143:
2141:
2138:
2136:
2133:
2131:
2128:
2126:
2123:
2120:
2117:
2113:
2108:
2107:
2086:
2079:
2064:
2063:
2058:
2052:
2036:
2030:
2014:
2008:
1992:
1986:
1978:
1974:
1968:
1952:
1946:
1931:
1925:
1921:
1911:
1907:
1904:
1902:
1899:
1897:
1894:
1892:
1891:Visual FoxPro
1889:
1888:
1879:
1878:
1874:
1871:
1870:
1866:
1863:
1859:
1858:
1854:
1851:
1847:
1843:
1842:
1838:
1835:
1834:
1830:
1827:
1823:
1822:
1818:
1815:
1811:
1810:
1806:
1805:
1799:
1796:
1792:
1789:
1787:
1782:
1773:
1771:
1761:
1752:
1746:
1743:
1740:
1737:
1734:
1732:
1728:
1727:
1715:
1681: := Pers
1658:
1636:
1621:
1606:
1595:
1593:
1590:The typical "
1567:
1564:
1561:
1559:
1554:
1552:
1547:
1545:
1541:
1537:
1532:
1530:
1526:
1515:
1511:
1507:
1501:
1497:
1494:() FUNCTION
1493:
1489:
1483:
1479:
1472:
1468:
1464:
1460:
1450:
1448:
1443:
1441:
1437:
1433:
1429:
1428:canSubstitute
1425:
1421:
1417:
1412:
1406:
1401:
1396:
1392:
1379:
1375:
1371:
1368:
1364:
1363:
1360:
1357:
1354:
1351:
1347:
1342:
1334:
1332:
1327:
1325:
1321:
1315:
1312:
1309:
1306:
1303:
1296:IF statements
1293:
1290:
1286:
1281:
1279:
1274:
1270:
1266:
1258:
1254:
1251:
1247:
1244:
1240:
1236:
1232:
1229:
1225:
1219:
1215:
1214:
1211:
1208:
1207:CollectionExp
1204:
1197:
1194:
1190:
1186:
1179:
1176:
1166:
1164:
1160:
1156:
1152:
1142:
1131:
1117:
1091:: Visible by
1087:
1077:
1071:
1065:
1064:
1063:
1062:
1058:
1044:
1040:
1033:
1031:
1025:
1014:
1012:
1008:
1004:
1000:
965:
959:
956:
938:
937:
936:
927:
921:
915:
909:
903:
902:
901:
898:
896:
892:
888:
884:
880:
876:
872:
868:
864:
860:
856:
846:
839:
830:
826:
824:
813:
807:
801:
797:&( ... )
795:
792:
789:
785:
782:
772:
770:
765:
763:
759:
755:
751:
747:
743:
739:
735:
730:
726:
723:
721:
717:
713:
709:
705:
701:
697:
693:
688:
686:
680:
678:
674:
664:
662:
657:
655:
651:
647:
643:
639:
635:
631:
627:
623:
618:
616:
612:
608:
598:
595:
593:
582:
580:
576:
572:
568:
564:
560:
556:
552:
548:
544:
540:
536:
532:
528:
524:
520:
517:descendants,
516:
512:
508:
504:
499:
497:
493:
489:
485:
481:
477:
469:
465:
460:
455:
452:Influenced by
450:
445:
442:
438:
434:
426:
422:
418:
416:
412:
408:
405:
403:
399:
396:
393:
391:
387:
384:
380:
376:
372:
368:
366:
362:
358:
354:
350:
348:
344:
328:
326:
322:
318:
304:
300:
296:
294:
290:
286:
284:
280:
277:
273:
269:
265:
261:
258:
256:
252:
246:
238:
235:
220:
217:
209:
199:
193:
191:
184:
175:
174:
165:
162:
154:
143:
140:
136:
133:
129:
126:
122:
119:
115:
112: –
111:
107:
106:Find sources:
100:
94:
93:
89:
84:This article
82:
78:
73:
72:
67:
65:
58:
57:
52:
51:
46:
41:
32:
31:
19:
2337:DOS software
2270:
2224:
2089:. Retrieved
2078:
2066:. Retrieved
2060:
2051:
2039:. Retrieved
2029:
2017:. Retrieved
2015:. Github.com
2007:
1995:. Retrieved
1985:
1976:
1967:
1955:. Retrieved
1945:
1933:. Retrieved
1924:
1875:
1867:
1855:
1839:
1831:
1821:PTSource IDE
1819:
1807:
1797:
1793:
1790:
1779:
1766:
1750:
1713:
1674:oPerson
1656:
1653:OOP examples
1634:
1619:
1604:
1589:
1565:
1562:
1557:
1555:
1550:
1548:
1539:
1535:
1533:
1528:
1524:
1504:
1499:
1495:
1491:
1487:
1481:
1477:
1470:
1466:
1462:
1458:
1446:
1444:
1435:
1431:
1427:
1423:
1419:
1416:Error Object
1415:
1413:
1409:
1404:
1399:
1394:
1390:
1377:
1373:
1366:
1358:
1355:
1352:
1349:
1345:
1340:
1330:
1328:
1324:statement(s)
1323:
1319:
1318:
1313:
1310:
1307:
1304:
1301:
1288:
1284:
1282:
1277:
1272:
1268:
1264:
1262:
1256:
1249:
1242:
1238:
1234:
1227:
1217:
1209:
1206:
1202:
1195:
1192:
1188:
1184:
1177:
1175:ConditionExp
1174:
1148:
1132:
1116:Symbol table
1098:
1060:
1059:
1050:
1038:
1034:
1029:
1026:
1018:BY REFERENCE
1015:
1010:
1009:type as the
1006:
1002:
998:
996:
934:
899:
852:
844:
827:
819:
811:
805:
803:&SomeId
799:
793:
790:
786:
778:
766:
731:
727:
724:
689:
681:
670:
658:
628:syntax, and
619:
604:
596:
588:
500:
475:
474:
381:, partially
245:
230:
212:
203:
187:
157:
148:
138:
131:
124:
117:
105:
85:
61:
54:
48:
47:Please help
44:
1977:SourceForge
1935:3 September
1910:HarbourPWCT
1877:Marinas-GUI
1763:HBIDE look.
1755:Development
1670:Main()
1592:hello world
1586:Sample code
712:Borland C++
559:eComStation
557:(including
484:open source
407:Open-source
369:Optionally
2296:Categories
2240:Vulcan.NET
2091:9 December
2068:9 December
2041:9 December
2019:9 December
1997:9 December
1957:9 December
1916:References
1544:Parameters
1506:Procedures
1461:PROCEDURE
1457:PROCEDURE
1420:canDefault
1367:LiteralExp
1350:LiteralExp
1269:assignment
1043:function.
1024:variable.
976:, 1 =>
918:0d20100405
752:), hbbz2 (
748:, hbmzip (
720:Sun Studio
642:PostgreSQL
617:protocol.
527:Windows CE
462:Influenced
337:2011-07-17
276:reflective
268:functional
264:imperative
206:April 2019
151:March 2018
121:newspapers
88:references
50:improve it
2245:MaxScript
2119:The Oasis
1930:"Harbour"
1668:PROCEDURE
1640:PROCEDURE
1525:Variables
1517:PROCEDURE
1510:functions
1490:FUNCTION
1486:FUNCTION
1418:supports
1346:SwitchExp
1201:FOR EACH
1187: :=
1047:Variables
958:CodeBlock
928:Numeric:
922:Logical:
887:CodeBlock
531:Pocket PC
293:Developer
56:talk page
2235:xHarbour
1951:"LetoDB"
1885:See also
1781:xHarbour
1685:():New(
1662:#include
1598: ?
1575:FUNCTION
1553:prefix.
1521:FUNCTION
1514:keywords
1424:canRetry
1285:FOR EACH
1243:FOR EACH
1039:BlockExp
1022:DETACHED
984:=> {
924:.T., .F.
910:String:
823:Class(y)
794:Syntax:
736:, Blat,
716:Watcom C
710:(6.0+),
650:Firebird
519:Mac OS X
468:xHarbour
441:Dialects
353:3.2.0dev
255:Paradigm
2250:VP-Info
2230:XBase++
2205:Clipper
1901:Xbase++
1857:MiniGUI
1698:oPerson
1691:oPerson
1679:oPerson
1581:n ** 3
1560:value.
1344:SWITCH
1333:value.
1331:LOGICAL
1308:CondExp
1302:CondExp
1263:In the
1189:InitExp
1155:Clipper
1135:PRIVATE
1108:PRIVATE
1079:PRIVATE
945:, 1, {
939:Array:
875:Pointer
871:Numeric
867:Logical
738:OpenSSL
592:Clipper
585:History
551:VxWorks
543:Android
535:Symbian
523:MINIX 3
492:Clipper
476:Harbour
431:.github
429:harbour
424:Website
402:License
375:dynamic
335: (
310: (
135:scholar
2215:FoxPro
2200:DBFree
2062:GitHub
1770:GitHub
1709:RETURN
1689:)
1647:RETURN
1579:RETURN
1529:STATIC
1500:Param1
1471:Param1
1436:Resume
1287:, the
1193:EndExp
1173:WHILE
1153:, and
1139:PUBLIC
1124:STATIC
1112:PUBLIC
1104:STATIC
1089:PUBLIC
1083:called
1073:STATIC
1037:Eval(
988:=>
972:=>
966:Hash:
916:Date:
889:, and
883:Object
859:String
654:Oracle
646:SQLite
579:MS-DOS
563:ArcaOS
383:strong
137:
130:
123:
116:
108:
2276:dBase
2271:HBIDE
2195:dBase
2125:HBIDE
1846:Win32
1833:HwGui
1809:hbide
1724:Tools
1705:Alert
1672:LOCAL
1625:Alert
1519:, or
1440:Value
1378:break
1348:CASE
1212:NEXT
1198:NEXT
1169:Loops
1151:dBase
1120:LOCAL
1100:LOCAL
1067:LOCAL
1011:Value
904:Nil:
879:Array
781:Macro
769:xBase
762:Cairo
754:bzip2
700:Clang
696:MinGW
685:xBase
677:MinGW
661:RDBMS
638:MySQL
571:Haiku
507:Linux
496:dBase
142:JSTOR
128:books
2255:PWCT
2093:2013
2070:2013
2043:2013
2021:2013
1999:2013
1959:2013
1937:2020
1906:PWCT
1869:ooHG
1731:make
1620:Or:
1610:QOut
1605:Or:
1540:EXIT
1536:INIT
1534:The
1508:and
1434:, a
1426:and
1407:END
1400:or:
1397:END
1374:EXIT
1372:The
1365:The
1361:END
1316:END
1278:STEP
1257:NEXT
1255:The
1250:EXIT
1248:The
1235:LOOP
1233:The
1226:The
1216:The
1183:FOR
1180:END
1163:Java
1137:and
1122:and
1110:and
1102:and
891:Hash
863:Date
767:Any
758:cURL
750:zlib
746:PCRE
622:ODBC
577:and
567:BeOS
561:and
555:OS/2
511:Unix
486:and
379:safe
371:duck
312:1999
305:1999
114:news
2264:IDE
1850:GUI
1841:HMG
1676:CLS
1558:NIL
1538:or
1447:xhb
1405:...
1395:...
1391:...
1359:...
1356:...
1353:...
1320:...
1314:...
1311:...
1305:...
1300:IF
1289:Var
1283:In
1265:FOR
1241:or
1239:FOR
1228:Var
1218:...
1210:...
1205:IN
1203:Var
1196:...
1191:TO
1185:Var
1178:...
1161:or
1128:not
1093:all
1007:any
1003:Key
999:any
992:} }
951:.T.
949:},
906:NIL
855:Nil
756:),
734:OLE
704:ICC
692:GCC
634:OLE
630:ADO
626:OOP
615:TCP
607:DBF
575:AIX
573:,
565:),
547:QNX
539:iOS
515:BSD
433:.io
90:to
2298::
2059:.
1975:.
1848:/
1824:–
1812:–
1683:on
1631:)
1627:(
1616:)
1612:(
1502:)
1498:(
1473:)
1469:(
1422:,
1326:.
1273:TO
980:,
968:{
960::
941:{
885:,
881:,
873:,
869:,
865:,
861:,
857:,
760:,
742:GD
722:.
714:,
706:,
702:,
698:,
694:,
652:,
648:,
644:,
640:,
636:.
581:.
553:,
549:,
545:,
541:,
537:,
533:,
529:,
525:,
521:,
509:,
505:,
390:OS
377:,
373:,
274:,
270:,
266:,
262::
101:.
59:.
2173:e
2166:t
2159:v
2095:.
2072:.
2045:.
2023:.
2001:.
1979:.
1961:.
1939:.
1571:x
1551:@
1159:C
1041:)
569:/
339:)
314:)
237:)
231:(
219:)
213:(
208:)
204:(
194:.
164:)
158:(
153:)
149:(
139:·
132:·
125:·
118:·
95:.
66:)
62:(
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.