int isOlder2(char *date1, char *date2) {
	int year[2], mon[2], day[2], i, ans;
	if (formatValidate2(date1) == -1 || formatValidate2(date2) == -1)return -1;
	day[0] = (date1[0] - 48) * 10 + (date1[1] - 48);
	mon[0] = (date1[3] - 48) * 10 + (date1[4] - 48);
	year[0] = (date1[6] - 48) * 1000 + (date1[7] - 48) * 100 + (date1[8] - 48) * 10 + (date1[9] - 48);

	day[1] = (date2[0] - 48) * 10 + (date2[1] - 48);
	mon[1] = (date2[3] - 48) * 10 + (date2[4] - 48);
	year[1] = (date2[6] - 48) * 1000 + (date2[7] - 48) * 100 + (date2[8] - 48) * 10 + (date2[9] - 48);
	if (!validate2(day[0], mon[0], year[0]))return -1;
	if (!validate2(day[1], mon[1], year[1]))return -1;
	ans = compare2(year[0], year[1]);
	if (ans != -1)return ans;
	else
	{
		ans = compare2(mon[0], mon[1]);
		if (ans != -1)return ans;
		else
		{
			ans = compare2(day[0], day[1]);
			if (ans != -1)return ans;
			return 0;
		}
	}
}
int compareDates2(char *date1, char *date2) {
	int y1, m1, d1, y2, m2, d2, compareValue;
	y1 = getInt2(date1, 6, 9);
	y2 = getInt2(date2, 6, 9);
	compareValue = compare2(y1, y2);
	if (compareValue != 0) return compareValue;
	m1 = getInt2(date1, 3, 4);
	m2 = getInt2(date2, 3, 4);
	compareValue = compare2(m1, m2);
	if (compareValue != 0) return compareValue;
	d1 = getInt2(date1, 0, 1);
	d2 = getInt2(date2, 0, 1);
	compareValue = compare2(d1, d2);
	return compareValue;
}
Esempio n. 3
0
int main(){
	int a,at,aa[3],b,bt,bb[3],c,ct,cc[3],i,j,re1=0,re2=0,re3=0;
	scanf("%d %d",&a,&at);
	for(i=1;i<=at;i++){
		scanf("%d",&aa[i]);
	}
	
	scanf("%d %d",&b,&bt);
	for(i=1;i<=bt;i++){
		scanf("%d",&bb[i]);
	}
	
	scanf("%d %d",&c,&ct);
	for(i=1;i<=ct;i++){
		scanf("%d",&cc[i]);
	}	
	
	
	
	
	
	for(i=1;i<=at;i++){
		for(j=1;j<=bt;j++){
		re1=re1+compare1(aa[i],bb[j]);
	} 
	}	
		if(re1>0){
		printf("time conflicts! %d and %d\n",a,b);	
		}
	
	for(i=1;i<=bt;i++){
		for(j=1;j<=ct;j++){
		re2=re2+compare2(bb[i],cc[j]);
	} 
	}	
		if(re2>0){
		printf("time conflicts! %d and %d\n",b,c);	
		}
		
	for(i=1;i<=at;i++){
		for(j=1;j<=ct;j++){
		re3=re3+compare3(aa[i],cc[j]);
	} 
	}
		if(re3>0){
		printf("time conflicts! %d and %d\n",a,c);	
		}	
	if((re1+re2+re3)==0){ 
	printf("no time conflicts!\n");
	}

return 0;
}
struct transaction * mergeSortedArrays(struct transaction *A, int ALen, struct transaction *B, int BLen) {

	if (ALen < 1 || BLen < 1 || A == NULL || B == NULL) return NULL;

	int TLen = ALen + BLen, i = 0, j = 0, k = 0, value;

	struct transaction *result = (struct transaction*)calloc(TLen, sizeof(struct transaction));

	while (i != ALen && j != BLen)// copies the values into result array in ascending order
	{
		value = compare2(A[i].date, B[j].date);
		if (value == 0)
		{
			result[k++] = A[i++];
			result[k++] = B[j++];

		}
		else if (value == 1)
		{
			result[k++] = A[i++];
		}
		else if (value == 2)
		{
			result[k++] = B[j++];
		}

	}

	if (i < ALen)
	{
		while (i != ALen)
		{
			result[k++] = A[i++];
		}

	}
	else if (j != BLen)
	{

		while (j != BLen)
		{
			result[k++] = B[j++];
		}
	}


	return result;
}
int binarySearch(struct transaction *Arr, int st, int end, char *date){


	if (st > end)
		return -1;

	int mid = (st + end) / 2;
	int flag = (compare2(Arr[mid].date, date));
	if (flag == 0)
	{
		return mid;
	}
	else  if (flag > 0)
		return binarySearch(Arr, st, mid - 1, date);
	else
		return binarySearch(Arr, mid + 1, end, date);

}
Esempio n. 6
0
static void tst1(void)
{
    cql_transform_t ct = cql_transform_create();

    YAZ_CHECK(compare(ct, "abc", "abc"));
    YAZ_CHECK(compare(ct, "\"a b c\"", "\"a b c\""));
    YAZ_CHECK(compare(ct, "@and a b", "a and b"));
    YAZ_CHECK(compare(ct, "@or a @and b c", "a or (b and c)"));
    YAZ_CHECK(compare(ct, "@or @and a b @and c d", "(a and b) or (c and d)"));
    YAZ_CHECK(compare(ct, "@or @or a b @or c d", "(a or b) or (c or d)"));
    YAZ_CHECK(compare(ct, "@and @and a b @and c d", "(a and b) and (c and d)"));

    YAZ_CHECK(compare(ct, "@attr 1=field abc", "field=abc"));
    YAZ_CHECK(compare2(ct, "@attr 1=4 abc", 0, 114)); /* should fail */

    cql_transform_define_pattern(ct, "index.title", "1=4");
    YAZ_CHECK(compare(ct, "@attr 1=4 abc", "title=abc"));

    cql_transform_define_pattern(ct, "index.foo", "1=bar");
    YAZ_CHECK(compare(ct, "@attr 1=bar abc", "foo=abc"));

    cql_transform_close(ct);
}
Esempio n. 7
0
void test1()
{
    // for float.
    const float abst = 1e-7f;
    const float relt = 1e-6f;   // 1e-5f > rel > 1e-6f

    std::cout << "case 1-a" << std::endl;
    compare2(0.000000f, 0.0000001f, abst, relt);
    compare2(1.000000f, 1.000001f, abst, relt);
    compare2(10.00000f, 10.00001f, abst, relt);
    compare2(100.0000f, 100.0001f, abst, relt);
    compare2(1000.000f, 1000.001f, abst, relt);
    compare2(10000.00f, 10000.01f, abst, relt);
    compare2(100000.0f, 100000.1f, abst, relt);     // x

    std::cout << "case 2-a" << std::endl;
    compare2(1.000000f, 0.999999f, abst, relt);     // x
    compare2(10.00000f, 9.999990f, abst, relt);
    compare2(100.0000f, 99.99990f, abst, relt);
    compare2(1000.000f, 999.9990f, abst, relt);
    compare2(10000.00f, 9999.990f, abst, relt);
    compare2(100000.0f, 99999.90f, abst, relt);     // x
}
Esempio n. 8
0
static void tst2(void)
{
    WRBUF w = wrbuf_alloc();
    cql_transform_t ct = 0;
    const char *srcdir = getenv("srcdir");
    if (srcdir)
    {
        wrbuf_puts(w, srcdir);
        wrbuf_puts(w, "/");
    }
    wrbuf_puts(w, "../etc/pqf.properties");

    ct = cql_transform_open_fname(wrbuf_cstr(w));
    YAZ_CHECK(compare(ct, "@attr 1=4 abc", "dc.title=abc"));
    YAZ_CHECK(compare(ct, "@attr 1=4 @attr 4=108 abc", "dc.title=/exact abc"));
    YAZ_CHECK(compare(ct, "@attr 1=4 @attr 3=1 @attr 6=1 abc", "dc.title=abc"));
    YAZ_CHECK(compare(ct, "@attr 1=4 @attr 4=1 @attr 6=1 abc", "dc.title=abc"));
    YAZ_CHECK(compare(ct, "@attr 1=1016 abc", "abc"));
    /* Date tests */
    YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=1 1980", "dc.date<1980"));
    YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=2 1980", "dc.date<=1980"));
    YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=3 1980", "dc.date=1980"));
    YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=4 1980", "dc.date>=1980"));
    YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=5 1980", "dc.date>1980"));
    YAZ_CHECK(compare(ct, "@and @attr 1=30 @attr 2=4 234 @attr 1=30 @attr 2=2 1990", "dc.date>=234 and dc.date<=1990"));

    /* Truncation */
    YAZ_CHECK(compare(ct, "@attr 5=1 water", "water*"));
    YAZ_CHECK(compare(ct, "@attr 5=2 water", "*water"));
    YAZ_CHECK(compare(ct, "@attr 5=3 water", "*water*"));
    YAZ_CHECK(compare(ct, "@attr 5=100 water", "water"));
    YAZ_CHECK(compare(ct, "@attr 5=102 water", "water"));
    YAZ_CHECK(compare(ct, "@attr 5=104 water", "water"));

    YAZ_CHECK(compare(ct, "@attr 5=102 wat.*er", "wat*er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat?er", "wat*er"));

    YAZ_CHECK(compare(ct, "@attr 5=102 wat.er", "wat?er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat#er", "wat?er"));
    YAZ_CHECK(compare(ct, "@attr 5=102 wat?er", "wat\\?er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat*er", "wat\\*er"));
    YAZ_CHECK(compare(ct, "@attr 5=102 wat#er", "wat#er"));

    /* \. is 'eaten' by PQF parser */
    YAZ_CHECK(compare(ct, "@attr 5=102 wat\\.er", "wat?er"));

    /* Escape sequences */
    /* note: escape sequences that survive after PQF parse below */
    YAZ_CHECK(compare(ct, "@attr 5=102 wat\\\\?er", "wat\\?er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat\\\\?er", "wat\\?er"));

    YAZ_CHECK(compare(ct, "@attr 5=102 wat\\\\*er", "wat\\*er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat\\\\*er", "wat\\*er"));

    YAZ_CHECK(compare(ct, "wat\\\\#er", "wat#er"));
    YAZ_CHECK(compare(ct, "@attr 5=100 wat\\\\#er", "wat#er"));
    YAZ_CHECK(compare(ct, "@attr 5=102 wat\\\\#er", "wat#er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat\\\\#er", "wat#er"));
    YAZ_CHECK(compare(ct, "@attr 5=102 wat\\\\.er", "wat.er"));
    YAZ_CHECK(compare(ct, "@attr 5=104 wat\\\\.er", "wat.er"));

    /* Quoting */
    YAZ_CHECK(compare(ct, "@attr 5=100 \"\"", "\"\""));
    YAZ_CHECK(compare(ct, "@attr 5=1 \"\"", "\"*\""));
    YAZ_CHECK(compare(ct, "@attr 5=2 \"\"", "\"*\""));
    YAZ_CHECK(compare(ct, "@attr 5=3 \"\"", "\"**\""));
    YAZ_CHECK(compare(ct, "@attr 5=102 \"\"", "\"\""));
    YAZ_CHECK(compare(ct, "@attr 5=104 \"\"", "\"\""));

    YAZ_CHECK(compare(ct, "@attr 5=1 \"water basket\"", "\"water basket*\""));
    YAZ_CHECK(compare(ct, "@attr 5=2 \"water basket\"", "\"*water basket\""));
    YAZ_CHECK(compare(ct, "@attr 5=3 \"water basket\"", "\"*water basket*\""));

    /* Other */
    YAZ_CHECK(compare(ct, "@attr 2=103 @attr 1=_ALLRECORDS 1", "cql.allRecords=1"));
    YAZ_CHECK(compare2(ct, "@attr 1=500 abc", 0, 114));
    YAZ_CHECK(compare2(ct, "@attr 5=99 x", "99", 120));
    cql_transform_close(ct);
    wrbuf_destroy(w);
}
Esempio n. 9
0
static int compare(cql_transform_t ct, const char *pqf, const char *cql)
{
    return compare2(ct, pqf, cql, 0);
}
Esempio n. 10
0
File: dfm06.c Progetto: CWCorrea/RS
int main(int argc, char **argv) {

    FILE *fp;
    char *fpname;
    int pos, i, j, bit, len;
    int header_found = 0;

#ifdef CYGWIN
    _setmode(fileno(stdin), _O_BINARY);  // _setmode(_fileno(stdin), _O_BINARY);
    setbuf(stdout, NULL);
#endif

    fpname = argv[0];
    ++argv;
    while ((*argv) && (!wavloaded)) {
        if      ( (strcmp(*argv, "-h") == 0) || (strcmp(*argv, "--help") == 0) ) {
            fprintf(stderr, "%s [options] audio.wav\n", fpname);
            fprintf(stderr, "  options:\n");
            fprintf(stderr, "       -v, --verbose\n");
            fprintf(stderr, "       -r, --raw\n");
            fprintf(stderr, "       -i, --invert\n");
            return 0;
        }
        else if ( (strcmp(*argv, "-v") == 0) || (strcmp(*argv, "--verbose") == 0) ) {
            option_verbose = 1;
        }
        else if ( (strcmp(*argv, "-r") == 0) || (strcmp(*argv, "--raw") == 0) ) {
            option_raw = 1;
        }
        else if ( (strcmp(*argv, "-R") == 0) || (strcmp(*argv, "--RAW") == 0) ) {
            option_raw = 2;
        }
        else if ( (strcmp(*argv, "-i") == 0) || (strcmp(*argv, "--invert") == 0) ) {
            option_inv = 0x1;
        }
        else if ( (strcmp(*argv, "--auto") == 0) ) {
            option_auto = 1;
        }
        else {
            fp = fopen(*argv, "rb");
            if (fp == NULL) {
                fprintf(stderr, "%s konnte nicht geoeffnet werden\n", *argv);
                return -1;
            }
            wavloaded = 1;
        }
        ++argv;
    }
    if (!wavloaded) fp = stdin;


    i = read_wav_header(fp);
    if (i) {
        fclose(fp);
        return -1;
    }


    gpx.sonde_id = -1;
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 13; j++) dat_str[i][j] = ' ';
    }


    pos = FRAMESTART;

    while (!read_bits_fsk(fp, &bit, &len)) {

        if (len == 0) { // reset_frame();
            if (pos > RAWBITFRAME_LEN-10) { // Problem wegen Interleaving
                print_frame();//byte_count
                header_found = 0;
                pos = FRAMESTART;
            }
            //inc_bufpos();
            //buf[bufpos] = 'x';
            continue;   // ...
        }

        for (i = 0; i < len; i++) {

            inc_bufpos();
            buf[bufpos] = 0x30 + bit;  // Ascii

            if (!header_found) {
                header_found = compare2();
                if (header_found < 0) option_inv ^= 0x1;
            }
            else {
                frame_rawbits[pos] = 0x30 + bit;  // Ascii
                pos++;
            
                if (pos == RAWBITFRAME_LEN) {
                    print_frame();//FRAME_LEN
                    header_found = 0;
                    pos = FRAMESTART;
                }
            }
        }
    }

    fclose(fp);

    return 0;
}
Esempio n. 11
0
File: dfm06web.c Progetto: DE8MSH/RS
int main(int argc, char **argv) {

    FILE *fp;
    char *fpname;
    char *lathome;
    char *lonhome;
    int pos, i, j, bit, len;
    int header_found = 0;

#ifdef CYGWIN
    _setmode(fileno(stdin), _O_BINARY);  // _setmode(_fileno(stdin), _O_BINARY);
    setbuf(stdout, NULL);
#endif
	
    fpname = argv[0];
    // 53.045390 8.893852
    lathome = argv[3];
    lonhome = argv[4];

/////////////////// MINI WEBSERVER BY http://blog.manula.org/2011/05/writing-simple-web-server-in-c.html
    int create_socket, new_socket;    
    socklen_t addrlen;    
    int bufsize = 1024;    
    char *buffer = malloc(bufsize);    
    struct sockaddr_in address;    
//////////////////////    

    ++argv;
    while ((*argv) && (!wavloaded)) {
        if      ( (strcmp(*argv, "-h") == 0) || (strcmp(*argv, "--help") == 0) ) {
            fprintf(stderr, "%s [options] audio.wav\n", fpname);
            fprintf(stderr, "  options:\n");
            fprintf(stderr, "       -v, --verbose\n");
            fprintf(stderr, "       -r, --raw\n");
            fprintf(stderr, "       -i, --invert\n");
            return 0;
        }
        else if ( (strcmp(*argv, "-v") == 0) || (strcmp(*argv, "--verbose") == 0) ) {
            option_verbose = 1;
        }
        else if ( (strcmp(*argv, "-r") == 0) || (strcmp(*argv, "--raw") == 0) ) {
            option_raw = 1;
        }
        else if ( (strcmp(*argv, "-R") == 0) || (strcmp(*argv, "--RAW") == 0) ) {
            option_raw = 2;
        }
        else if ( (strcmp(*argv, "-i") == 0) || (strcmp(*argv, "--invert") == 0) ) {
            option_inv = 0x1;
        }
        else if ( (strcmp(*argv, "--auto") == 0) ) {
            option_auto = 1;
        }
        else {
            fp = fopen(*argv, "rb");
            if (fp == NULL) {
                fprintf(stderr, "%s konnte nicht geoeffnet werden\n", *argv);
                return -1;
            }
            wavloaded = 1;
        }
        ++argv;
    }
    if (!wavloaded) fp = stdin;

/////////////////// MINI WEBSERVER BY http://blog.manula.org/2011/05/writing-simple-web-server-in-c.html
    if ((create_socket = socket(AF_INET, SOCK_STREAM, 0)) > 0){    
       printf("The socket was created\n");
    }
    
    address.sin_family = AF_INET;    
    address.sin_addr.s_addr = INADDR_ANY;    
    address.sin_port = htons(8081);    
    
    if (bind(create_socket, (struct sockaddr *) &address, sizeof(address)) == 0){    
       printf("Binding Socket\n");
    }
    
    if (listen(create_socket, 10) < 0) {    
       perror("server: listen");    
       exit(1);    
    }    
    
    if ((new_socket = accept(create_socket, (struct sockaddr *) &address, &addrlen)) < 0) {    
       perror("server: accept");    
       exit(1);    
    }    
    
    if (new_socket > 0){    
       printf("Connected to client\n");
    }
//////////////////////    

    i = read_wav_header(fp);
    if (i) {
        fclose(fp);
        close(new_socket);     
        close(create_socket); 
        return -1;
    }


    gpx.sonde_id = -1;
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 13; j++) dat_str[i][j] = ' ';
    }


    pos = FRAMESTART;

    while (!read_bits_fsk(fp, &bit, &len)) {

        if (len == 0) { // reset_frame();
            if (pos > RAWBITFRAME_LEN-10) { // Problem wegen Interleaving
/////////////////// MINI WEBSERVER BY http://blog.manula.org/2011/05/writing-simple-web-server-in-c.html
                write(new_socket, "hello world\n", 12);    
//////////////////////    
                print_frame();//byte_count
                header_found = 0;
                pos = FRAMESTART;
            }
            //inc_bufpos();
            //buf[bufpos] = 'x';
            continue;   // ...
        }

        for (i = 0; i < len; i++) {

            inc_bufpos();
            buf[bufpos] = 0x30 + bit;  // Ascii

            if (!header_found) {
                header_found = compare2();
                if (header_found < 0) option_inv ^= 0x1;
            }
            else {
                frame_rawbits[pos] = 0x30 + bit;  // Ascii
                pos++;
            
                if (pos == RAWBITFRAME_LEN) {
                    print_frame();//FRAME_LEN
                    header_found = 0;
                    pos = FRAMESTART;
                }
            }
        }
    }

    fclose(fp);
    close(new_socket);     
    close(create_socket);    

    return 0;
}