From daf17154bf13139d9375f48525d19d6aaba08155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 2 Aug 2014 08:43:31 +0200 Subject: Imported Upstream version 3.1.2 --- examples/exfilter.cpp | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 examples/exfilter.cpp (limited to 'examples/exfilter.cpp') diff --git a/examples/exfilter.cpp b/examples/exfilter.cpp new file mode 100755 index 0000000..0dc6c0a --- /dev/null +++ b/examples/exfilter.cpp @@ -0,0 +1,77 @@ +/* exfilter.cpp + + Xbase project source code + + This program demonstrates the usage of the xbFilter class + + Copyright (C) 1997,2003 Gary A. Kunkel + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Contact: + + Email: + + xbase64-dev@lists.sourceforge.net + + +*/ + + +#include + +int main() +{ +#if defined(XB_FILTERS) + xbShort rc; + xbXBase x; + xbDbf d( &x ); + xbNdx i( &d ); + + std::cout << "exfilter program executing" << std::endl; + + if(( rc = d.OpenDatabase( "MYFILE.DBF" )) != XB_NO_ERROR ){ + std::cout << "Error opening database" << std::endl; + return 1; + } + + if(( rc = i.OpenIndex( "MYINDEX1.NDX" )) != XB_NO_ERROR ){ + std::cout << "Error opening index" << std::endl; + return 2; + } + + xbFilter f1( &d, 0, "FLOAT1>1" ); + /* use filter 1 w/o index */ + rc = f1.GetFirstFilterRec(); + while( rc == XB_NO_ERROR ){ + std::cout << "Filter 1 Found Record " << d.GetCurRecNo() << std::endl; + rc = f1.GetNextFilterRec(); + } + xbFilter f2( &d, &i, "FLOAT1>1" ); + /* use filter 2 w/ index */ + rc = f2.GetLastFilterRec(); + + while( rc == XB_NO_ERROR ){ + std::cout << "Filter 2 Found Record " << d.GetCurRecNo() << std::endl; + rc = f2.GetPrevFilterRec(); + } + d.CloseDatabase(); +#else + std::cout << "XB_FILTERS not compiled into library" << std::endl; +#endif + + return 0; +} + -- cgit v1.2.3