This is an example of filter use written in C++.
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <stdlib.h>
#include <stdint.h>
static char *btrieveFileName = (char *)"squaresAndSquareRoots.btr";
#ifndef __GNUC__
#define snprintf _snprintf
#endif
#define MIN_X 0
#define MAX_X 255
#pragma pack(1)
typedef struct {
uint8_t x;
uint16_t xSquared;
double xSquareRoot;
char text[128];
} record_t;
#pragma pack()
{
{
goto leave;
}
{
goto leave;
}
leave:
return status;
}
{
{
goto leave;
}
leave:
return status;
}
{
int i;
int recordCount;
record_t record;
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
else
{
}
{
goto leave;
}
for (i = 1; i <= recordCount; i++)
{
if (btrieveBulkRetrieveResult.
GetRecord(i, (
char *)&record,
sizeof(record)) !=
sizeof(record))
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
printf("record: (%u, %u, %g, %s)\n", record.x, record.xSquared, record.xSquareRoot, record.text);
}
leave:
return status;
}
{
int i;
record_t record;
for (i = MIN_X; i <= MAX_X; i++)
{
record.x = (uint8_t)i;
record.xSquared = (uint16_t)(i * i);
record.xSquareRoot = sqrt((double)i);
if ((i % 2) == 0)
{
snprintf(record.text, sizeof(record.text), "The square of %03d is %05d and its square root is %f.", record.x, record.xSquared, record.xSquareRoot);
}
else
{
snprintf(record.text, sizeof(record.text), "The SQUARE of %03d is %05d and its square root is %f.", record.x, record.xSquared, record.xSquareRoot);
}
record.text[sizeof(record.text) - 1] = '\0';
{
goto leave;
}
}
leave:
return status;
}
{
{
goto leave;
}
leave:
return status;
}
{
{
goto leave;
}
leave:
return status;
}
{
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
leave:
return status;
}
int
main(int argc, char *argv[])
{
static const char *usage = "Usage: %s <digit>\n";
char key;
if (argc != 2)
{
printf(usage, argv[0]);
goto leave;
}
if ((isdigit(argv[1][0]) == 0) || (argv[1][1] != '\0'))
{
printf(usage, argv[0]);
goto leave;
}
key = (char)argv[1][0];
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
{
goto leave;
}
leave:
return 0;
return 1;
}
The Btrieve bulk retrieve attributes class.
Definition btrieveCpp.h:3502
Btrieve::StatusCode AddFilter(BtrieveFilter *btrieveFilter)
Add a filter.
Btrieve::StatusCode AddField(int offset, int length)
Add a field.
Btrieve::StatusCode SetMaximumRecordCount(int maximumRecordCount)
Set the maximum record count.
Btrieve::StatusCode SetMaximumRejectCount(int maximumRejectCount)
Set the maximum reject count.
Btrieve::StatusCode SetSkipCurrentRecord(bool skipCurrentRecord)
Set skip current record.
The Btrieve bulk retrieve result class.
Definition btrieveCpp.h:3626
int GetRecordLength(int recordNumber)
Get the record length.
int GetRecordCount()
Get the record count.
int GetRecord(int recordNumber, char *record, int recordSize)
Get the record.
Btrieve::StatusCode GetLastStatusCode()
Get the last status code.
long long GetRecordCursorPosition(int recordNumber)
Get the record cursor position.
The Btrieve client class.
Definition btrieveCpp.h:1388
Btrieve::StatusCode FileCreate(BtrieveFileAttributes *btrieveFileAttributes, const char *fileName, Btrieve::CreateMode createMode, Btrieve::LocationMode locationMode=Btrieve::LOCATION_MODE_NO_PREFERENCE)
Create a file.
Btrieve::StatusCode FileClose(BtrieveFile *btrieveFile)
Close a file.
Btrieve::StatusCode FileDelete(const char *fileName)
Delete a file.
Btrieve::StatusCode FileOpen(BtrieveFile *btrieveFile, const char *fileName, const char *ownerName, Btrieve::OpenMode openMode, Btrieve::LocationMode locationMode=Btrieve::LOCATION_MODE_NO_PREFERENCE)
Open a file.
The Btrieve file attributes class.
Definition btrieveCpp.h:2448
Btrieve::StatusCode SetFixedRecordLength(int fixedRecordLength)
Set the fixed record length.
The Btrieve file class.
Definition btrieveCpp.h:1729
Btrieve::StatusCode RecordCreate(char *record, int recordLength)
Create a record.
Btrieve::StatusCode IndexCreate(BtrieveIndexAttributes *btrieveIndexAttributes)
Create an index.
int RecordRetrieveFirst(Btrieve::Index index, char *record, int recordSize, Btrieve::LockMode lockMode=Btrieve::LOCK_MODE_NONE)
Retrieve the first record.
Btrieve::StatusCode BulkRetrieveNext(BtrieveBulkRetrieveAttributes *bulkRetrieveAttributes, BtrieveBulkRetrieveResult *bulkRetrieveResult, Btrieve::LockMode lockMode=Btrieve::LOCK_MODE_NONE)
Retrieve bulk next.
Btrieve::StatusCode GetLastStatusCode()
Get the last status code.
The Btrieve filter class.
Definition btrieveCpp.h:3392
Btrieve::StatusCode SetComparisonConstant(const char *constant, int constantLength)
Set the comparison constant.
Btrieve::StatusCode SetACSMode(Btrieve::ACSMode ACSMode)
Set the alternate collation sequence mode.
Btrieve::StatusCode SetACSName(const char *name)
Set the alternate collation sequence name.
Btrieve::StatusCode SetComparison(Btrieve::Comparison comparison)
Set the comparison.
Btrieve::StatusCode SetField(int offset, int length, Btrieve::DataType dataType)
Set the field.
Btrieve::StatusCode SetConnector(Btrieve::Connector connector)
Set the field connector.
Btrieve::StatusCode SetComparisonField(int offset)
Set the comparison field.
The Btrieve index attributes class.
Definition btrieveCpp.h:3716
Btrieve::StatusCode AddKeySegment(BtrieveKeySegment *btrieveKeySegment)
Add a key segment.
Btrieve::StatusCode SetACSName(const char *ACSName)
Set the alternate collation sequence name.
The Btrieve key segment class.
Definition btrieveCpp.h:3874
Btrieve::StatusCode SetField(int offset, int length, Btrieve::DataType dataType)
Set the field.
@ COMPARISON_EQUAL
Equal.
Definition btrieveCpp.h:85
@ COMPARISON_GREATER_THAN_OR_EQUAL
Greater than or equal.
Definition btrieveCpp.h:93
static const char * StatusCodeToString(StatusCode statusCode)
Return a status code as a string.
@ CREATE_MODE_OVERWRITE
Overwrite.
Definition btrieveCpp.h:72
StatusCode
The Btrieve status codes.
Definition btrieveCpp.h:713
@ STATUS_CODE_UNKNOWN
-7 - Unknown.
Definition btrieveCpp.h:1194
@ STATUS_CODE_NO_ERROR
0 - No error.
Definition btrieveCpp.h:715
@ STATUS_CODE_END_OF_FILE
9 - End of file.
Definition btrieveCpp.h:733
@ OPEN_MODE_NORMAL
Normal.
Definition btrieveCpp.h:606
@ CONNECTOR_AND
And.
Definition btrieveCpp.h:112
@ CONNECTOR_LAST
Last.
Definition btrieveCpp.h:110
@ ACS_MODE_CASE_INSENSITIVE
Case insensitive.
Definition btrieveCpp.h:61
@ DATA_TYPE_ZSTRING
Null terminated string.
Definition btrieveCpp.h:201
@ DATA_TYPE_CHAR
Character.
Definition btrieveCpp.h:199
@ INDEX_NONE
None.
Definition btrieveCpp.h:553