Home > Listati di programmi C > Gestione di caratteri cirillici russi UTF-8 > Memoria di traduzione russo-italiano

MEMORIA DI TRADUZIONE RUSSO-ITALIANO

Con questi programmi non intendo competere con i gestori di memorie di traduzione in commercio, che sono molto piu' potenti e sofisticati. Voglio solo mostrare una possibile implementazione della funzionalita' base: memorizzare e cercare coppie di stringhe (contenenti singole parole o frasi) russe/italiane

I programmi lavorano con tre file: parole_ru.txt, parole_it.txt e indice.db; questi sono i nomi di default, ma l'utente puo' scegliere anche altri nomi.

In parole_ru.txt sono memorizzate stringhe russe UTF-8, in parole_it.txt sono memorizzate le corrispondenti stringhe italiane ASCII; in entrambi i file la fine di ogni stringa e' marcata con un byte di valore 0, inserito automaticamente dal programma metti.c al momento del salvataggio della stringa.

Nel file indice.db sono contenute delle struct (coppia), contenenti:

id_coppia, numero intero da 1 in poi;
posizione del byte iniziale (nel file parole_ru.txt) della stringa russa;
lunghezza in byte della stringa russa;
posizione del byte iniziale (nel file parole_it.txt) della stringa italiana;
lunghezza in byte della stringa italiana.

Nei file parole_ru.txt e parole_it.txt la posizione di un byte e' numerata a partire da 1.

Ogni struct di indice.db e' associata a una coppia di stringhe russo/italiano.

I programmi di ricerca e visualizzazione allocano nella memoria heap (usando calloc()) le struct di indice.db.

Prima di inserire dati la prima volta, bisogna verificare che non siano gia' presenti nella directory corrente dei file chiamati parole_ru.txt, parole_it.txt e indice.db per evitare che siano sovrascritti o alterati; analogamente per i file con nomi scelti dall'utente.

Tutti i programmi aprono i file in modalita' binaria.

Per compilare (con gcc) i programmi che usano solo memtrad_lib:

gcc -o nome_eseguibile nome_sorgente.c memtrad_lib.c

Per compilare (con gcc) i programmi che usano anche russo_lib:

gcc -o nome_eseguibile nome_sorgente.c memtrad_lib.c russo_lib.c

File russo_lib.h

File russo_lib.c

File memtrad_lib.h

File memtrad_lib.c

Inserire una coppia di stringhe russo/italiano

Cercare una stringa russa con visualizzazione della corrispondente italiana

Cercare una stringa italiana con visualizzazione della corrispondente russa

Modificare una stringa russa

Modificare una stringa italiana

Visualizzare tutte le coppie di stringhe russo/italiano

Testare la propria conoscenza dei vocaboli russi con stringhe russe scelte a caso


Home


www.corradodamiano.it

posta@corradodamiano.it