Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 13-07-2004, 17.54.12   #1
c1p8
Senior Member
 
L'avatar di c1p8
 
Registrato: 05-08-2003
Loc.: Carugo
Messaggi: 357
c1p8 promette bene
Implementazione T9 su PC

Avevo scritto il seguente articolo per un news-magazine online ma non era interessante, mi è stato detto. Lo posto qui, anche se, forse, non è il “posto” giusto dover metterlo… chissà che a qualcuno serva…

Il T9… questo sconosciuto
Una grande invenzione, certo, ma come funziona?
Quanti di voi si sono mai chiesti come funziona il T9, quel “magico” softwarino che, presente ormai in ogni telefonino nelle varianti più disparate, ci permette di scrivere le parole utilizzando un minor numero di ripetizioni per tasto.

A me la voglia di capirne il funzionamento è nata quando l’ennesima batteria del mio vecchio cellulare ha tirato le cuoia e, fatti due conti, mi conveniva di più comprarne uno nuovo che cambiarla nuovamente.
Così, presa confidenza con il nuovo, a confronto col vecchio, mostro supertecnologico, mi sono lasciato ammaliare dall’uso del T9 iniziando a chiedermi come potesse, un semplice cellulare, capire quale parola, in diverse lingue, l’utente intendesse digitare.
Scartata l’ovvia deduzione che nei nostri cellulari non si annida un software d’intelligenza artificiale, considerata la bassa velocità dei microprocessori che sovrintendono alle funzioni del telefonino, la soluzione doveva risiedere in un algoritmo semplice e veloce.

Ci ho perso alcuni giorni, nei momenti liberi, ma proprio non riuscivo a raccapezzarmi; poi, una notte l’illuminazione (dormire no, eh! direte voi…) e così il mattino dopo, di buona lena, mi metto al lavoro.

Creo un file di prova e lo chiamo T9.txt (che fantasia) buttandoci dentro una decina di nomi di parenti, amici, colleghi (in ordine sparso, non importa), poi con qbasic (si, proprio lui, quel linguaggio che ha accompagnato la storia dei vari MS-DOS e windows vari ) scrivo il seguente programmino.


'numero massimo di termini del dizionario
x = 50

'vocaboli caricati
DIM dizio(x) AS STRING
'codice numerico per ogni vocabolo
DIM diziot9(x) AS STRING

'cancello lo schermo
CLS
PRINT "Attendi: caricamento vocaboli... "

'indice per i vocaboli del dizionario
x = 1

OPEN "c:\t9.txt" FOR INPUT AS #1
'per ogni singola riga del file (= un vocabolo)...
WHILE NOT EOF(1)
INPUT #1, a$
'per ogni singolo carattere...
FOR i = 1 TO LEN(a$)
x$ = UCASE$(MID$(a$, i, 1))
'assegno il corrispondente codice numerico
SELECT CASE x$
CASE "A" TO "C"
t9 = 8
CASE "D" TO "F"
t9 = 9
CASE "G" TO "I"
t9 = 4
CASE "J" TO "L"
t9 = 5
CASE "M" TO "O"
t9 = 6
CASE "P" TO "S"
t9 = 1
CASE "T" TO "V"
t9 = 2
CASE "W" TO "Z"
t9 = 3
END SELECT
t9$ = t9$ + LTRIM$(STR$(t9))
NEXT
'e memorizzo il codice
diziot9(x) = t9$
'ed il vocabolo stesso
dizio(x) = a$
t9$ = ""
x = x + 1
WEND
CLOSE
x = x - 1
PRINT "Caricati "; x; " vocaboli"


Cosa fa in pratica, soprattutto per i non addetti ai lavori che, però, vogliono comprendere un po’ di più la tecnologia che hanno tra le mani: legge dal file di testo precedentemente creato tutti i vocaboli (max 50, poi il programma va in errore), uno per riga, e li trasforma in una serie numerica che dipende dal vocabolo stesso in funzione di dove compare la lettera sulla tastiera del telefonino, ad esempio:
CIAO = 8486
(rispetto al T9, dovendo utilizzare il tastierino numerico del PC, i numeri cambiano; 7=1, 8=2, 9=3, d'altronde non è mica colpa mia se i telefoni hanno la tastiera in un modo e i PC in un altro… )

Quindi ho proseguito con la parte che riordina il dizionario risultante in ordine crescente per codice, NON per vocabolo, così il software deve confrontare solamente i primi “n” caratteri inseriti per verificare se esiste un vocabolo nel dizionario.

PRINT "Riordino vocabolario"
'riordino il vocabolario
FOR i = 1 TO x - 1
FOR j = i + 1 TO x
IF diziot9(i) > diziot9(j) THEN
SWAP dizio(i), dizio(j)
SWAP diziot9(i), diziot9(j)
END IF
NEXT
NEXT

Un po’ di aiuto per l’utente…

CLS
PRINT "Digita la stringa sul tastierino numerico usando il T9"
PRINT
PRINT " 7 8 9"
PRINT " ABC DEF"
PRINT
PRINT " 4 5 6"
PRINT " GHI JKL MNO"
PRINT
PRINT " 1 2 3"
PRINT " PQRS TUV WXYZ"
PRINT
PRINT " 0 <-- ESC"
PRINT " spazio cancella Esce"

E, finalmente, il cuore del programma vero e proprio…


1 DO
a$ = INKEY$
LOOP WHILE a$ = ""

'Tasto ESC = fine programma
IF a$ = CHR$(27) THEN
END
END IF

'Tasto 0 = SPAZIO
IF a$ = "0" THEN
t9$ = ""
p = p + l + 1
l = 0
GOTO 1
END IF

'codice ASCII 8 = BACKSPACE
IF a$ = CHR$(8) THEN
IF l > 0 THEN
t9$ = LEFT$(t9$, l - 1)
l = l - 1
'posiziono il cursore e cancello l'ultimo carattere
LOCATE 15, 1 + p + l: PRINT " "
LOCATE 20, 1 + p + l: PRINT " "
GOTO 1
END IF
END IF

IF a$ < "1" OR a$ > "9" THEN 1

t9$ = t9$ + LTRIM$(a$)

'numero di caratteri della stringa in esame
l = l + 1

'posiziono il cursore
LOCATE 15, 1 + p: PRINT t9$

LOCATE 20, 1 + p:
FOR i = 1 TO x
IF LEFT$(diziot9$(i), l) = t9$ THEN
PRINT LEFT$(dizio$(i), LEN(t9$))
EXIT FOR
END IF
NEXT

GOTO 1

Cosa fa questa parte: attende che l’utente prema un tasto, se è 0 (zero) allora considera terminato il vocabolo e vi permette di inserirne uno nuovo, se corrisponde a Backspace allora cancella un carattere a sinistra, se è ESC, termina il programma.

Se invece è compreso tra 1 e 9 cerca nel dizionario il corrispondente codice memorizzandolo nella stringa t9$.

Successivamente controlla nel dizionario dei vocaboli (diziot9$) se esiste una corrispondenza basandosi sul numero delle lettere inserite finora (se si toglie questa limitazione si può fargli anche scrivere una parola completa qualora la combinazione sia soddisfatta una sola volta, ma questa è tutta un’altra storia…), in tal caso la scrive, dinamicamente, man mano che una corrispondenza viene trovata nel dizionario.

Certo, è lo scheletro di base, non permette la selezione di vocaboli alternativi (però se nel dizionario i nomi propri sono inseriti in maiuscolo lui li scrive automaticamente in modo corretto, e questo il T9, almeno nella versione in mio possesso, non lo fa), non è nemmeno velocissimo, se non trova un vocabolo non scrive niente, però funziona…

Potete provare il programma utilizzando l’allegato ed il dizionario che, lo ribadisco, deve trovarsi nel direttorio principale del disco C:.

Spero di essere stato chiaro, aspetto i vostri commenti in merito; il programma è libero da copyright vari e può essere distribuito ed adattato senza problemi.

Qualcuno di voi si chiederà: ma cosa me ne faccio di un programma così sul pc? Risposta: provate a pensare ad un utente “diversamente abile”, con problemi di manualità, che magari può inserire le lettere una sola per volta sulla tastiera; poter utilizzare solo 9 tasti per farlo è sicuramente un grande vantaggio per la velocità d’inserimento.

Ciao

c1p8
c1p8 non è collegato   Rispondi citando
Vecchio 13-07-2004, 18.09.59   #2
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Ciao,
interessante l'articolo (Y) .. complimenti.

Spero lo ritengano interessante anche i moderatori della sezione e valutino se pubblicarlo magari nella sezione FAQ .. o simile

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 17-07-2004, 00.50.22   #3
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Me l'ero perso..

Complimenti, veramente. E' molto interessante, sia dal punto di vista algoritmico (molti diranno: ma va, guarda come è semplice! Ma da soli non riuscirebbero mai ad immaginarsi una cosa del genere) che dal punto di vista dell'utilità (Y)

Guarda, è veramente bella come cosa.

Se fra tutti i mille e poi mille lavori che mi prendono mi rimane qualche oretta/giorno libera, provo a buttar giù qualcosa. Non nel linguaggio che hai usato tu - che non conosco - ma in java, che è quello che conosco meglio, per la gioia di Deep73!

Adios!
Dav82 non è collegato   Rispondi citando
Vecchio 17-07-2004, 03.05.44   #4
unomichisiada
Newbie
 
Registrato: 08-07-2004
Messaggi: 47
unomichisiada promette bene
Mi associo nel farti i complimenti,e nel dire che se mi rimane un po di tempo dopo gli esami mi tento una riscrittura ed eventualmente un potenziamento in C o C++.nel caso ti farò avere il risultato del mio lavoro postandolo quì sul forum.Per ora rimane solo un proposito.Ciao ciao
___________________________________

Sai che la fortuna è una religione:tu ci credi oppure no.
unomichisiada non è collegato   Rispondi citando
Vecchio 14-11-2010, 13.49.46   #5
victor-vis
Newbie
 
Registrato: 13-11-2010
Messaggi: 2
victor-vis promette bene
Implementazione T9 su PC

Ciao, mi chiamo Vittorio e ho letto il tuo post sull' Implementazione T9 su PC: non conosco linguaggi di programmazione ma sono molto interessato ad un programmino che simuli la tastiera del telefonino per poter scrivere sul pc col T9.
Ti chiedo troppo di farmi tu il programmino? :-)
oppure sai indicarmi qalche programmino già fatto da qualcuno?

Grazie mille in anticipo e aspetto tua risposta!
victor-vis non è collegato   Rispondi citando
Vecchio 15-11-2010, 14.14.23   #6
Sergio Neddi
Gold Member
Top Poster
 
L'avatar di Sergio Neddi
 
Registrato: 07-04-2000
Loc.: Padova-Vicenza
Messaggi: 4.814
Sergio Neddi promette bene
E' un thread del 2004... non so se avrà risposta.
___________________________________

Con il PC risolvo molti problemi che prima non avevo. - Coltiva Linux che Windows si pianta da solo!
Sergio Neddi non è collegato   Rispondi citando
Vecchio 15-11-2010, 15.11.38   #7
c1p8
Senior Member
 
L'avatar di c1p8
 
Registrato: 05-08-2003
Loc.: Carugo
Messaggi: 357
c1p8 promette bene
Quota:
Inviato da victor-vis Visualizza messaggio
Ciao, mi chiamo Vittorio e ho letto il tuo post sull' Implementazione T9 su PC: non conosco linguaggi di programmazione ma sono molto interessato ad un programmino che simuli la tastiera del telefonino per poter scrivere sul pc col T9.
Ti chiedo troppo di farmi tu il programmino? :-)
oppure sai indicarmi qalche programmino già fatto da qualcuno?

Grazie mille in anticipo e aspetto tua risposta!
Ciao Vittorio, il programmino in realtà è quello pubblicato nel forum, non è il massimo ma lo scopo non era certo quello di permettere ad un utente di usare il pc per scrivere col T9 (anche se una successiva implementazione del programma stesso è stata incorporata in un software per semplificare la scrittura da parte di disabili).

Sinceramente non ho il tempo di dedicarmi ad un ottimizzazione dello stesso (altrimenti l'avrei già fatto e messo in commercio )

Mi spiace, però puoi sempre provare a rivolgerti a qualche tuo amico/conoscente che conosce qualche linguaggio di programmazione per implementarlo... anche perchè il listato è ampiamente commentato...

Ciao!
___________________________________

c1p8
"prima di pretendere qualcosa,
prova a pensare a quello che dai tu"
c1p8 non è collegato   Rispondi citando
Vecchio 15-11-2010, 17.36.26   #8
victor-vis
Newbie
 
Registrato: 13-11-2010
Messaggi: 2
victor-vis promette bene
grazie lo stesso! ;-) non conosco nessuno che sappia implementare il codice....ho trovato FastWrite in trial version e sembra sia proprio quello che fa al caso mio ma com erial non funziona bene e cmq è un software vecchio e lo stesso autore non è piu' interessato a venderlo! :-)
victor-vis non è collegato   Rispondi citando
Vecchio 21-07-2012, 18.56.27   #9
afibi
Newbie
 
Registrato: 21-07-2012
Messaggi: 2
afibi promette bene
Question Rif: Implementazione T9 su PC

Ciao ci1p8 leggo che un'implementazione del programma è stata incorporata in un software per semplificare la scrittura da parte dei disabili.
Sono il padre di una ragazza disabile e penso che una funzionalità del genere sarebbe utile per mia figlia.
Mi puoi dare qualche ragguaglio e a chi rivolgermi?
afibi non è collegato   Rispondi citando
Vecchio 22-07-2012, 00.23.14   #10
c1p8
Senior Member
 
L'avatar di c1p8
 
Registrato: 05-08-2003
Loc.: Carugo
Messaggi: 357
c1p8 promette bene
Rif: Implementazione T9 su PC

Ciao afibi, potresti dare un'occhiata a questo sito: http://koti.mbnet.fi/korsu/ft.html

Ma che esigenze hai in particolare?
___________________________________

c1p8
"prima di pretendere qualcosa,
prova a pensare a quello che dai tu"
c1p8 non è collegato   Rispondi citando
Vecchio 23-07-2012, 15.07.27   #11
afibi
Newbie
 
Registrato: 21-07-2012
Messaggi: 2
afibi promette bene
Exclamation Rif: Implementazione T9 su PC

Attualmente uso per la comunicazione facilitata un comunicatore manuale
di cui ti allego la foto. Le dimensioni sono quelle di un foglio A4 disposto in orizzontale.
E' impostato, come vedi, come la tastiera del telefonino.
Ma devo fare tutto manualmente.
Ho bisogno che diventi una specie di tablet (dimensioni formato A4) del tipo touch screen. Man mano che si digitano i vari tasti, compone la parola, applicando il software T9 o simili. Il testo composto compare in un apposito spazio, da individuare.
Non sono un programmatore, ma se serve posso cercare del personale esperto.
Ti aggiungo che un amico programmatore ha modificato l'app it9sms per Ipad che applica la tastiera T9 su Ipad e ha ingrandito la dimensione della
tastiera.
Ma l'Ipad è un po' piccolo ed ho bisogno di una tastiera sulla quale digitare delle
dimensioni, per l'appunto, di un formato A4 (20 - 30 cm. circa).
In pratica quindi dovrei comprare un tablet o simili delle dimensioni appropriate, che consenta il touch screen.
Applicare quindi una settorizzazione degli spazi come da fotografia ed applicare la funzione T9.
Grazie per tutti i consigli che mi potrai dare.

afibi
Immagini allegate
Tipo file: jpg 2012-07-23 13.54.45.jpg (21,7 Kb, 7 visite)
afibi non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Meglio Excel 2003 o 2007? fadefa Office suite 19 02-09-2008 21.53.19
[LINUX] implementazione script di shell teodore Linux e altri Sistemi Operativi 4 31-01-2008 01.05.11
[ALTRO] programmare ad oggetti sergioz Programmazione 8 15-08-2005 09.28.09
Heap sort sambac Programmazione 2 24-03-2004 11.03.06
Chi me lo ottimizza ? LoryOne Programmazione 10 08-11-2003 19.40.31

Orario GMT +2. Ora sono le: 21.50.16.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.