From dd70ff8bf32c2d7ed365004b1770058265db1978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 11 Mar 2023 18:15:37 +0100 Subject: New upstream version 4.1.0 --- src/utils/xb_tblinfo.cpp | 105 ++++++++++++++++++++++++----------------------- 1 file changed, 53 insertions(+), 52 deletions(-) (limited to 'src/utils/xb_tblinfo.cpp') diff --git a/src/utils/xb_tblinfo.cpp b/src/utils/xb_tblinfo.cpp index 6b88403..241642a 100755 --- a/src/utils/xb_tblinfo.cpp +++ b/src/utils/xb_tblinfo.cpp @@ -1,8 +1,8 @@ -/* xb_dumpmdx.cpp +/* xb_tblinfo.cpp XBase64 Software Library -Copyright (c) 1997,2003,2014,2021 Gary A Kunkel +Copyright (c) 1997,2003,2014,2021,2023 Gary A Kunkel The xb64 software library is covered under the terms of the GPL Version 3, 2007 license. @@ -19,85 +19,86 @@ Email Contact: using namespace xb; -int main( int ac, char ** av ){ + +void PrintHelp(); +void PrintHelp(){ + std::cout << "Usage: xb_tblinfo [-h] [-?] [--help] [-v] [--version] -i filename.DBF" << std::endl << std::endl; + std::cout << "This program dumps table definition information from a DBF file and associated indices." << std::endl << std::endl; +} +void PrintVersion(); +void PrintVersion(){ + std::cout << "Xbase64 Version: " << xbase_VERSION_MAJOR << "." << xbase_VERSION_MINOR << "." << xbase_VERSION_PATCH << std::endl; +} + +int main(int argc, char *argv[] ){ xbXBase x; - xbBool bHdr = xbFalse; xbInt16 iRc; xbString sTagName; xbDbf *MyFile = NULL; - #ifdef XB_MDX_SUPPORT - #ifdef XB_DEBUG_SUPPORT - xbBool bMdxFound = xbFalse; - #endif // XB_DEBUG_SUPPORT - #endif // XB_MDX_SUPPORT - - x.EnableMsgLogging(); x.SetLogSize( 1000000L ); - - if( ac <= 1 ) { - std::cout << "\nUsage: xb_dumpmdx filename.DBF -h -tTAGNAME...\n"; - std::cout << "-h dump mdx file header (default)\n"; - std::cout << "-tTAGNAME where TAGNAME is the name of a tag for extract\n"; + xbString sParm; + if (argc < 2 || x.GetCmdLineOpt( argc, argv, "-h", sParm ) || + x.GetCmdLineOpt( argc, argv, "-?", sParm ) || + x.GetCmdLineOpt( argc, argv, "--help", sParm )){ + PrintHelp(); return 1; } - if( ac > 2 ){ - for( int i = 1; i< ac; i++ ){ - if( strstr( av[i], "-h" )) - bHdr = xbTrue; - else if( strstr( av[i], "-t" )) - sTagName.Set( av[i]+2 ); - } + if ( x.GetCmdLineOpt( argc, argv, "-v", sParm ) || + x.GetCmdLineOpt( argc, argv, "--version", sParm )){ + PrintVersion(); + return 1; } - if( bHdr == xbFalse && sTagName == "" ) - bHdr = xbTrue; - - - // std::cout << "Hdr = " << bHdr << std::endl; - if( sTagName != "" ) - std::cout << "Tag = " << sTagName.Str() << std::endl; + if( !x.GetCmdLineOpt( argc, argv, "-i", sParm ) || sParm == "" ){ + PrintHelp(); + return 1; + } - if(( iRc = x.OpenHighestVersion( av[1], "", &MyFile )) != XB_NO_ERROR ){ - std::cout << "Could not open file iRc = " << iRc << " file = " << av[1] << std::endl; + if(( iRc = x.OpenHighestVersion( sParm.Str(), "", &MyFile )) != XB_NO_ERROR ){ + std::cout << "Could not open file iRc = " << iRc << " file = " << sParm.Str() << std::endl; x.DisplayError( iRc ); - return 0; + return 1; } MyFile->DumpHeader( 4 ); - #ifdef XB_MDX_SUPPORT - // for each mdx file, dump the header - xbIxList *ixl = MyFile->GetIxList(); - xbIx *ixp; + + + #ifdef XB_INDEX_SUPPORT + xbIxList *ixl; + xbIx *ixp; xbString sFileType; + + #ifdef XB_MDX_SUPPORT + ixl = MyFile->GetIxList(); while( ixl ){ ixp = ixl->ix; ixp->GetFileType( sFileType ); - - #ifdef XB_DEBUG_SUPPORT - if( sFileType == "MDX" ){ - bMdxFound = xbTrue; - if( bHdr ){ - ixp->DumpHeader( 1, 3 ); - } - } - #endif // XB_DEBUG_SUPPORT + if( sFileType == "MDX" ) + ixp->DumpHeader( 1, 3 ); ixl = ixl->next; } - - #ifdef XB_DEBUG_SUPPORT - if( !bMdxFound ) - std::cout << "No MDX index for file." << std::endl; - #endif // XB_DEBUG_SUPPORT #endif // XB_MDX_SUPPORT + #ifdef XB_NDX_SUPPORT + ixl = MyFile->GetIxList(); + while( ixl ){ + ixp = ixl->ix; + ixp->GetFileType( sFileType ); + if( sFileType == "NDX" ) + ixp->DumpHeader( 1, 3 ); + ixl = ixl->next; + } + #endif // XB_NDX_SUPPORT + + #endif // XB_INDEX_SUPPORT + MyFile->Close(); delete MyFile; - return 0; } -- cgit v1.2.3