Newsgroup: it.lavoro.informatica
Titolo: Rilasciata goWinSMS per windows

Ciao a tutti,
ho convertito, finalmente, il software goLinuxSMS
per windows, chiamandolo con originalità goWinSMS :-)
per chi non lo conosce è un software che gestisce
gli invii degli SMS (anche in multithread) servendosi
di una rubrica contatti con possibilità di filtri
sui campi.
Il software si basa sull'SDK engineSMS da me creato,
rilasciato come binario completo, liberamente utilizzabile da
chiunque programmaticamente per win e linux.
Link: 
http://www.kuht.it/modules/mydownloads/viewcat.php?cid=49
cercare la voce "goSMS"
Ciao a tutti

 Il software si basa sull'SDK engineSMS
E l'SDK su cosa si basa per inviarli? 
-- 
__________________________
Luc (32, CO)
MS Visual Studio developer
__________________________

 
Su nulla :-)
Su connessionni http verso 
www.190.it
 tutto in linguaggio C.
In pratica ho implementato un piccolo browser, ovviamente solo gli
aspetti che mi interessavano.

 ha scritto nel messaggio 
news:di0gag$dgc$1...@newsreader.mailgate.org...

E cosa ti fa pensare che quelli di Vodafone siano felici della cosa?
Ho l'impressione che tu stia violando un bel po' di condizioni di utilizzo 
:-/
Massimo

 
E' una vecchia discussione già ampiamente affrontata tempo fa...
non c'è nessuna violazione di nessun tipo!
La "licenza", se così vogliamo chiamarla, 
della vodafone al riguardo è molto elastica e permissiva.
L'unica condizione è quella di non generare AUTOMATICAMENTE
sms e inviarli SENZA il consenso del destinatario. A parte questo,
non vieta nessuna forma di gestione (software) o uso...

 della vodafone al riguardo è molto elastica e permissiva.
Peccato che vodafone sia il provider preferito dei "ragazzini brufolosi"...
:-PPP
PS: fare qualcosa di più generico, no? :) 


PS: fare qualcosa di più generico, no? :)
troppo lavoro.........

 
Le funzioni specifiche per il provider vodafone, si basano su un set di
API generiche che permettono di fare richieste verso tutti i server web.

 troppo lavoro.........
L'ho già fatto il troppo lavoro: visto che ho implementato un piccolo
motore di browser completamente INDIPENDENTE da qualsiasi libreria già
fatta o software di appoggio (tipo curl, wget, ecc..), come molti 
taroccatori hanno fatto!
L'unica dipendenza è con le librerie del C :-)

 In ke senso?!?! ke significa???
Tipo quelli che scrivono con la k... ;) 


 Su connessionni http verso 
www.190.it
 tutto in linguaggio C.
scusa, vito che sei esapertos di C, vorrei approfittarne al volo...:-)
ho una stringa di 2 byte esadecimale tipo "2a15"
avrei la necessità di portarla in decimale, ma non ho tutte
le librerie del C, e un similare all'Ansi C (è il PowerIDE SE)
Grazie se mi sai dare una dritto, so è che è una banalità
ciao
-- 
            \ | /
        ( @ @ )         Chicco Flash
---oOO-(_)-OOo--------------------------
 
www.z2000.it
Flash Forum: 
www.z2000.it/forum

 Grazie se mi sai dare una dritto, so è che è una banalità
http://digilander.libero.it/giovannifraterno/3decimo3.htm
Ci ho messo meno di 5 secondi fra cambiare finestra, digitare e battere invio, googla un po di più :-)

 le librerie del C, e un similare all'Ansi C (è il PowerIDE SE)
Non conoscoe PowerIDE, ma se hai stdio.h hai "int sscanf(const char 
*str, const char *format, ..)", per cui te ne dovresti uscire con uno:
..
char *hexadecimal = "2a15";
int decimal;
sscanf(hexadecimal, "%x", &decimal);
printf("Decimal=%d", decimal);
..
Se non hai stdio.h o comunque non c'è sscanf, allora puoi usare (si può 
fare in maniera più lenta, ma risparmiando 80 byte) una tabella di 
lookup:
..
char *hexadecimal = "2a15";
int decimal;
static int h2d[103];
h2d['0'] = 0;
h2d['1'] = 1;
h2d['2'] = 2;
h2d['3'] = 3;
h2d['4'] = 4;
h2d['5'] = 5;
h2d['6'] = 6;
h2d['7'] = 7;
h2d['8'] = 8;
h2d['9'] = 9;
h2d['a'] = h2d['A'] = 10;
h2d['b'] = h2d['B'] = 11;
h2d['c'] = h2d['C'] = 12;
h2d['d'] = h2d['D'] = 13;
h2d['e'] = h2d['E'] = 14;
h2d['f'] = h2d['F'] = 15;
for (decimal = 0; *hexadecimal != '\0'; ++hexadecimal)
    decimal = (decimal << 4) | h2d[(int)*hexadecimal];
printf("Decimal=%d", decimal); /*stdio.h*/
..
P.S.: tutti quei decimal, sono ovviamente interi ;-)
-- 
ale
http://www.sen.it
et corruptissima re pubblica plurimae leges 

 static int h2d[103];
Ovviamente assumendo ASCII. Se usi un'altra codifica per i char, va 
modificato all'uopo, per EBCDIC ad esempio è static int h2d[199];


 In ke senso?!?! ke significa???
ROTFL, spero fosse ironica ;-)


 lookup:
Qui risparmio l'array legato alla codifica dei caratteri, dovrebbe 
essere più portabile e non sono nemmeno tanto sicuro che sia più lenta 
..
..
char *hexadecimal = "2a15";
int decimal;
for (decimal = 0; *hexadecimal != '\0'; ++hexadecimal)
{
    int i;
    switch(*hexadecimal)
    {
        case '0':
            i = 0;
            break;
        case '1':
            i = 1;
            break;
        case '2':
            i = 2;
            break;
        case '3':
            i = 3;
            break;
        case '4':
            i = 4;
            break;
        case '5':
            i = 5;
            break;
        case '6':
            i = 6;
            break;
        case '7':
            i = 7;
            break;
        case '8':
            i = 8;
            break;
        case '9':
            i = 9;
            break;
        case 'a':
            i = 10;
            break;
        case 'b':
            i = 11;
            break;
        case 'c':
            i = 12;
            break;
        case 'd':
            i = 13;
            break;
        case 'e':
            i = 14;
            break;
        case 'f':
            i = 15;
            break;
        case 'A':
            i = 10;
            break;
        case 'B':
            i = 11;
            break;
        case 'C':
            i = 12;
            break;
        case 'D':
            i = 13;
            break;
        case 'E':
            i = 14;
            break;
        case 'F':
            i = 15;
            break;
    }
    decimal = (decimal << 4) | i;
}
printf("Decimal=%d", decimal);/*stdio*/
...
HTH,
P.S.: spudoratamente OT, e me ne scuso, ma adoro il C :-))


 P.S.: spudoratamente OT, e me ne scuso, ma adoro il C :-))
Ok, ma non era meglio, dentro il ciclo for, una cosa come
i = hexadecimal < 10 ? hexadecimal : 'a' + hexadecimal - 10;
?
Massimo

 .. ?
hexadecimal è un puntatore ad un vettore di caratteri, in realtà assume 
valori dipendenti dal sistema ma in pratica riferimenti a posizioni di 
memoria (cioé cose come 0x004270d8). Ad ogni modo, quell'istruzione così 
come l'hai scritta non compilerebbe (fai un confronto tra puntatore a 
carattere ed intero) senza cast (e pure con i cast, insomma, non è che 
servirebbe a molto :-)). Ad ogni modo, modificandola così:
i = *hexadecimal < 10 ? *hexadecimal : 'a' + *hexadecimal - 10;
ovviamente compilerebbe, ma senza una tabella di lookup dipendente dalla 
codifica caratteri con quella variabile i ci fai poco o niente.
Ad esempio la stringa di 2 byte citata da Chicco, "2a15", pari quindi a 
0x2a15, vale in base decimale 10773.
Con il ciclo for, quando arriva il primo carattere ('2') alla tua 
istruzione, questa, su una piattaforma che usi la codifica ASCII, la 
valuta così:
- '2', cioé 50, è minore di 10?
-- se fosse sì, i sarebbe uguale a 50;
-- se fosse no, i sarebbe uguale ad 'a', cioé 97, più '2', cioè 50, meno 
10, quindi 97+50-10 pari a 137.
Ed ora che ne facciamo di questo 137?


 codifica caratteri con quella variabile i ci fai poco o niente.
Verissimo, era codice scritto di fretta :-)
Miglioriamolo, dunque:
-----
if(*hexadecimal >= '0' && *hexadecimal <= '9')
    i = (int) *hexadecimal - '0';
else if(*hexadecimal >= 'A' && *hexadecimal <= 'F')
    i = 10 + (int) (*hexadecimal - 'A');
else if(*hexadecimal >= 'a' && *hexadecimal <= 'f')
    i = 10 + (int) (*hexadecimal - 'a');
-----
Assumendo che le lettere e i numeri siano caratteri consecutivi e crescenti, 
ovviamente.
Ma in quale codifica al mondo non lo sono? :-)
Massimo
P.S.
Credo che i cast siano superflui, ma non ci potrei giurare. Gli else sono 
sicuramente ridondanti, ma era per chiarezza :-)

 Gli else sono sicuramente ridondanti, ma era per chiarezza :-)
Sì, anche se poi bisognerebbe (avendone la necessità!) capire anche qui 
cosa fa' il compilatore utilizzato nella determinata piattaforma.
