prepare_meanings.c
author viric@llimona
Sun, 02 Sep 2007 16:01:27 +0200
changeset 27 153c479aa0bc
parent 24 026a2ba0ce16
permissions -rw-r--r--
LEGUMIN kaj aliaj gxisdatigoj.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     1
#include <stdio.h>
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     2
#include <stdlib.h>
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     3
#include "dictre.h"
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     4
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     5
#define NELEM(x) (sizeof(x)/sizeof(x[0]))
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     6
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
     7
23
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
     8
const char *dictionarynames[] = { "bokarjovrueo", "slovnyk_ru-en",
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
     9
    "rus_eng_full" };
22
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    10
static struct Dict dictionaries[5/*MAX DICT*/];
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    11
static int ndictionaries;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    12
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    13
static void init_dictionaries()
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    14
{
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    15
    ndictionaries = 0;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    16
23
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    17
    init_dictionary(&dictionaries[0], dictionarynames[0]);
22
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    18
    dictionaries[0].trim_last_newlines = 1;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    19
    ndictionaries++;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    20
23
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    21
    init_dictionary(&dictionaries[1], dictionarynames[1]);
22
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    22
    dictionaries[1].trim_first_line = 1;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    23
    dictionaries[1].trim_last_newlines = 1;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    24
    ndictionaries++;
23
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    25
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    26
    init_dictionary(&dictionaries[2], dictionarynames[2]);
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    27
    dictionaries[2].trim_first_line = 1;
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    28
    dictionaries[2].trim_last_newlines = 1;
97feccfc5215 Aldonis rus_eng_full.
viric@llimona
parents: 22
diff changeset
    29
    ndictionaries++;
22
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    30
}
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    31
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    32
static void close_dictionaries()
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    33
{
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    34
    int i;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    35
    for(i=0; i<ndictionaries; ++i)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    36
        end_dictionary(&dictionaries[i]);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    37
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    38
    ndictionaries=0;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    39
}
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    40
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    41
void dump_word(const char *word)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    42
{
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    43
    int i;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    44
    char def[MAXDEF];
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    45
    int word_header_dumped = 0;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    46
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    47
    if (strncmp(word, "00database", sizeof("00database"-1)) == 0)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    48
        return;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    49
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    50
    for (i=0; i < ndictionaries; ++i)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    51
    {
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    52
        char *found;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    53
        find_def(&dictionaries[i], word, def);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    54
        if (def[0])
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    55
        {
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    56
            if(!word_header_dumped)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    57
            {
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    58
                printf(":%s:", word);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    59
                word_header_dumped = 1;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    60
            }
24
026a2ba0ce16 Now the HTML result shows word meanings.
viric@llimona
parents: 23
diff changeset
    61
            printf("-- [%s]\n%s\n\n", dictionarynames[i], def);
22
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    62
        }
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    63
    }
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    64
}
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    65
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    66
void dump_words()
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    67
{
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    68
    FILE *fwords;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    69
    char word[MAXWORD];
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    70
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    71
    fwords = fopen("words.txt", "r");
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    72
    if (fwords == 0)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    73
    {
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    74
        printf("Cannot open words.txt\n");
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    75
        exit(-1);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    76
    }
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    77
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    78
    do
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    79
    {
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    80
        char *res;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    81
        res = fgets(word, MAXWORD, fwords);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    82
        if (res == 0)
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    83
            break;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    84
        word[strlen(word) - 1] = 0; /* Remove \n in the line */
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    85
        dump_word(word);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    86
    } while(1);
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    87
}
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    88
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    89
int main()
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    90
{
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    91
    init_dictionaries();
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    92
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    93
    dump_words();
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    94
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    95
    close_dictionaries();
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    96
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    97
    return 0;
0b923f95df16 Added 'signifoj' kreadon
viric@llimona
parents:
diff changeset
    98
}