Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Codice Fiscale

184 views
Skip to first unread message

Luisa

unread,
Apr 8, 2002, 1:31:52 PM4/8/02
to
Scusate, č la prima volta che scrivo su questo NG e vorrei che qualcuno mi
indicasse dove poter trovare il codice per il calcolo del Cod. Fiscale. Ci
vuole pure un database dei comuni? E perchč?
Con gratitudine
Luisa.


Pibe

unread,
Apr 8, 2002, 1:46:33 PM4/8/02
to

"Luisa" <Lu...@tiscali.it> ha scritto nel messaggio
news:cuks8.60644$pT1.1...@news1.tin.it...

Qui trovi tutte le istruzioni:

http://www.gmax.it/infocod.htm

Il problema č, come supponevi tu, che bisogna avere un database dei comuni.
Io ce l'ho, lo avevo preso da un programma per il calcolo del codice fiscale
che mi era arrivato con una rivista. Se vuoi te lo posso mandare per posta,
oppure puoi fare come me e cercarlo in qualche software per il calcolo del
CF

ciao Pibe


Luisa

unread,
Apr 8, 2002, 4:13:56 PM4/8/02
to

"Pibe" <pib...@hotmail.com-rimuoviquesto> ha scritto nel messaggio
news:ZHks8.2106$SR5....@twister1.libero.it...

>
> "Luisa" <Lu...@tiscali.it> ha scritto nel messaggio
> news:cuks8.60644$pT1.1...@news1.tin.it...
>
> > Scusate, è la prima volta che scrivo su questo NG e vorrei che qualcuno

mi
> > indicasse dove poter trovare il codice per il calcolo del Cod. Fiscale.
Ci
> > vuole pure un database dei comuni? E perchè?

> > Con gratitudine
> > Luisa.
>
> Qui trovi tutte le istruzioni:
>
> http://www.gmax.it/infocod.htm
>
> Il problema è, come supponevi tu, che bisogna avere un database dei

comuni.
> Io ce l'ho, lo avevo preso da un programma per il calcolo del codice
fiscale
> che mi era arrivato con una rivista. Se vuoi te lo posso mandare per
posta,
> oppure puoi fare come me e cercarlo in qualche software per il calcolo del
> CF
>
> ciao Pibe
>
> Grazie per la disponibilità, ho trovato il dabatase dei comuni ma
l'algoritmo per il calcolo del codice fiscale è davvero complesso ci vuole
troppo tempo e pazienza. Chissà magari qualcuno ha già un sorgente pronto o
conosce un sito da dove scaricarlo. Confesso di averlo cercato sul web ma
inutilmente.
Ciao.
Luisa


AleZen

unread,
Apr 8, 2002, 4:44:30 PM4/8/02
to
Luisa <Lu...@tiscali.it> wrote in message
8Sms8.61179$pT1.1...@news1.tin.it...

> > Grazie per la disponibilità, ho trovato il dabatase dei comuni ma
> l'algoritmo per il calcolo del codice fiscale è davvero complesso ci vuole
> troppo tempo e pazienza. Chissà magari qualcuno ha già un sorgente pronto
o
> conosce un sito da dove scaricarlo. Confesso di averlo cercato sul web ma
> inutilmente.
> Ciao.
> Luisa
>
>

Dove l'hai trovato il db dei comuni?

ciao
Alessandro


Luisa

unread,
Apr 8, 2002, 4:58:31 PM4/8/02
to

"AleZen" <aze...@inwind.it> ha scritto nel messaggio
news:mhns8.3208$m41....@twister2.libero.it...
L'ho trovato per caso a questo indirizzo:
http://rifrizzo.port5.com/cf/scarica.htm . Puoi scaricare un sorgente in PHP
(sic!) che contiene anche i codici dei comuni frazionati in quattro file
.csv. Fai come me, importali in un file Access e da li puoi esportarli nei
formati che vuoi.
E adesso forza, cerchiamo un buon sorgente in Delphi (meglio se D6).
Ciao. Luisa.

AleZen

unread,
Apr 8, 2002, 6:31:32 PM4/8/02
to

Luisa <Lu...@tiscali.it> wrote in message

Xvns8.74580$S52.2...@news2.tin.it...

Bè possiamo scrivercelo partendo dal sorgente php....

ciao
Alessandro


Andrea Laforgia

unread,
Apr 9, 2002, 5:16:29 AM4/9/02
to
"Luisa" <Lu...@tiscali.it> wrote in message
news:cuks8.60644$pT1.1...@news1.tin.it...

> Scusate, č la prima volta che scrivo su questo NG e vorrei che qualcuno mi
> indicasse dove poter trovare il codice per il calcolo del Cod. Fiscale. Ci
> vuole pure un database dei comuni? E perchč?

Per quanto riguarda il db dei comuni (Paradox):
http://www24.brinkster.com/walkietalkie/comuni.zip

Per quanto riguarda il codice, lo prendo pari pari da un mio
progetto:

unit uVerifCodici;

interface

type TSetCaratteri = set of Char;

function VerificaCodiceFiscale(CodiceFiscale: String): Boolean;
function VerificaPartitaIVA(PartitaIVA: String): Boolean;

function CalcolaCodiceFiscale(Cognome, Nome: String;
Sesso: Char;
Giorno, Mese, Anno: Word;
CodiceComune: String): String;

function FiltraStringa(S: String; SetCar: TSetCaratteri): String;

implementation

uses SysUtils;

const InsiemeConsonanti: TSetCaratteri =
['A'..'Z']-['A','E','I','O','U'];
InsiemeVocali: TSetCaratteri = ['A','E','I','O','U'];

const CodiciMesi: String = 'ABCDEHLMPRST';
CodiciControllo: String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function ValoreCarPosPari(C: Char): Integer;
begin
Result := -1;
case C of
'0' : Result := 0;
'1' : Result := 1;
'2' : Result := 2;
'3' : Result := 3;
'4' : Result := 4;
'5' : Result := 5;
'6' : Result := 6;
'7' : Result := 7;
'8' : Result := 8;
'9' : Result := 9;
'A' : Result := 0;
'B' : Result := 1;
'C' : Result := 2;
'D' : Result := 3;
'E' : Result := 4;
'F' : Result := 5;
'G' : Result := 6;
'H' : Result := 7;
'I' : Result := 8;
'J' : Result := 9;
'K' : Result := 10;
'L' : Result := 11;
'M' : Result := 12;
'N' : Result := 13;
'O' : Result := 14;
'P' : Result := 15;
'Q' : Result := 16;
'R' : Result := 17;
'S' : Result := 18;
'T' : Result := 19;
'U' : Result := 20;
'V' : Result := 21;
'W' : Result := 22;
'X' : Result := 23;
'Y' : Result := 24;
'Z' : Result := 25;
end;
end;


function ValoreCarPosDispari(C: Char): Integer;
begin
Result := -1;
case C of
'0' : Result := 1;
'1' : Result := 0;
'2' : Result := 5;
'3' : Result := 7;
'4' : Result := 9;
'5' : Result := 13;
'6' : Result := 15;
'7' : Result := 17;
'8' : Result := 19;
'9' : Result := 21;
'A' : Result := 1;
'B' : Result := 0;
'C' : Result := 5;
'D' : Result := 7;
'E' : Result := 9;
'F' : Result := 13;
'G' : Result := 15;
'H' : Result := 17;
'I' : Result := 19;
'J' : Result := 21;
'K' : Result := 2;
'L' : Result := 4;
'M' : Result := 18;
'N' : Result := 20;
'O' : Result := 11;
'P' : Result := 3;
'Q' : Result := 6;
'R' : Result := 8;
'S' : Result := 12;
'T' : Result := 14;
'U' : Result := 16;
'V' : Result := 10;
'W' : Result := 22;
'X' : Result := 25;
'Y' : Result := 24;
'Z' : Result := 23;
end;
end;

function FiltraStringa(S: String; SetCar: TSetCaratteri): String;
var
I: Integer;
T: String;
begin
T := '';
for I := 1 to Length(S) do
begin
if S[I] in SetCar then
T := T + S[I];
end;
Result := T;
end;

function CalcolaCodiceControllo(CodiceFiscale: String): Char;
var
I, CodiceControllo: Integer;
begin
CodiceControllo := 0;
for I := 1 to Length(CodiceFiscale) do
begin
if Odd(I) then
Inc(CodiceControllo, ValoreCarPosDispari(CodiceFiscale[I]))
else
Inc(CodiceControllo, ValoreCarPosPari(CodiceFiscale[I]))
end;
CodiceControllo := CodiceControllo mod 26;
Result := CodiciControllo[CodiceControllo+1];
end;

//
// ------ Interfaccia
//

function CalcolaCodiceFiscale;
var
ConsonantiCognome: String;
ConsonantiNome: String;

VocaliCognome: String;
VocaliNome: String;

CodiceCognome: String;
CodiceNome: String;
CodiceAnno: String;
CodiceMese: String;
CodiceGiorno: String;

begin
if (Sesso = '') or
(Cognome = '') or
(Nome = '') or
(CodiceComune = '') then
begin
Result := '';
Exit;
end;

Sesso := UpCase(Sesso);

Cognome := FiltraStringa(UpperCase(Trim(Cognome)), ['A'..'Z']);
Nome := FiltraStringa(UpperCase(Trim(Nome)), ['A'..'Z']);

ConsonantiCognome := FiltraStringa(Cognome, InsiemeConsonanti);
ConsonantiNome := FiltraStringa(Nome, InsiemeConsonanti);

VocaliCognome := FiltraStringa(Cognome, InsiemeVocali);
VocaliNome := FiltraStringa(Nome, InsiemeVocali);

CodiceCognome := Copy(ConsonantiCognome + VocaliCognome + 'XX', 1, 3);

CodiceNome := ConsonantiNome + VocaliNome + 'XX';
if (Length(ConsonantiNome) > 3) then
Delete(CodiceNome, 2, 1);
CodiceNome := Copy(CodiceNome, 1, 3);

CodiceAnno := Format('%.2d', [Anno mod 100]);

CodiceMese := CodiciMesi[Mese];

if (Sesso = 'F') then Giorno := Giorno + 40;

CodiceGiorno := Format('%.2d', [Giorno]);

Result := CodiceCognome + CodiceNome +
CodiceAnno + CodiceMese + CodiceGiorno +
CodiceComune;

Result := Result + CalcolaCodiceControllo(Result);
end;

function VerificaCodiceFiscale;
begin
CodiceFiscale := UpperCase(CodiceFiscale);
Result := (CalcolaCodiceControllo(
Copy(CodiceFiscale, 1, Length(CodiceFiscale)-1)
) =
CodiceFiscale[Length(CodiceFiscale)]);
end;

function VerificaPartitaIVA;
var
I: Integer;
Somma: Integer;
Cifre: array [1..11] of Integer;
K: Integer;
begin
PartitaIVA := Trim(PartitaIVA);

if Length(PartitaIVA) <> 11 then
begin
Result := false;
Exit;
end;
for I := 1 to Length(PartitaIVA) do
begin
if not (PartitaIVA[I] in ['0'..'9']) then
begin
Result := false;
Exit;
end;
end;

for I := 1 to 11 do
begin
Cifre[I] := Ord(PartitaIVA[I]) - Ord('0');
end;

Somma := Cifre[1] + Cifre[3] + Cifre[5] + Cifre[7] + Cifre[9];

I := 2;
while (I <= 10) do
begin
K := 2 * Cifre[I];
if K > 9 then K := K - 9;
Somma := Somma + K;
Inc(I, 2);
end;

Result := ((10 - Somma mod 10) mod 10) = Cifre[11];
end;

end.


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Luisa

unread,
Apr 9, 2002, 7:17:06 AM4/9/02
to

"Andrea Laforgia" <walkie...@libero.it> ha scritto nel messaggio
news:8781c9a53fdc18ac910...@mygate.mailgate.org...

> "Luisa" <Lu...@tiscali.it> wrote in message
> news:cuks8.60644$pT1.1...@news1.tin.it...
>
> > Scusate, č la prima volta che scrivo su questo NG e vorrei che qualcuno
mi
> > indicasse dove poter trovare il codice per il calcolo del Cod. Fiscale.
Ci
> > vuole pure un database dei comuni? E perchč?
>
> Per quanto riguarda il db dei comuni (Paradox):
> http://www24.brinkster.com/walkietalkie/comuni.zip
>
> Per quanto riguarda il codice, lo prendo pari pari da un mio
> progetto:
>
Grazie, lo proverň.
Intanto anch'io ho travato un sorgente simile (con meno linee di codice) che
funzione benissimo, se credete posso postarlo.
Luisa


Carlo Bertuccini

unread,
Apr 8, 2002, 6:41:21 PM4/8/02
to
Luisa,

"Luisa" <Lu...@tiscali.it> ha scritto nel messaggio:

> Scusate, č la prima volta che scrivo su questo NG e vorrei che qualcuno mi
> indicasse dove poter trovare il codice per il calcolo del Cod. Fiscale.

il codice per il calcolo del codice fiscale dovrebbe essere disponibile sul
news server di Marco Cantů. Fai l'iscrizione ai loro ng (č gratutita)
utilizzando il sito www.marcocantu.it e vai nella sezione repository,
dopodichč scarica il sorgente Delphi per il calcolo del codice fiscale.
Dovrebbe essere stato scritto da Antonio Tarolla ... č un programmatore di
cui ci si puň fidare, quindi scarica tranquillamente! :-)

Ciao

--
- Carlo -
c.b...@libero.it


Open Look

unread,
Apr 9, 2002, 7:22:41 AM4/9/02
to
Ottimizziamo un bel po` di codice....

"Andrea Laforgia" <walkie...@libero.it> wrote in message
news:8781c9a53fdc18ac910...@mygate.mailgate.org...

> Per quanto riguarda il db dei comuni (Paradox):
> http://www24.brinkster.com/walkietalkie/comuni.zip
>
> Per quanto riguarda il codice, lo prendo pari pari da un mio
> progetto:
>

> function ValoreCarPosPari(C: Char): Integer;
> begin
> Result := -1;

questo case secondo me genera troppo codice macchina, potresti fare un

case C of
'0'..'9': Result := Integer(C) - Integer('0');
'A'..'Z': Result := Integer(C) - Integer('A') + 10;
else
Result := -1;
end;

> case C of
> '0' : Result := 0;
> '1' : Result := 1;
> '2' : Result := 2;
> '3' : Result := 3;
> '4' : Result := 4;

...


> end;
> end;
>
>
> function ValoreCarPosDispari(C: Char): Integer;
> begin
> Result := -1;

anche qui come sopra... c'e' un metodo furbo: fare
2 array tipo:

const numeri:array['0'..'9'] of Integer = [1, 0, 5, etc];
caratteri:array['A'..'Z'] of Integer = [...];

e fare
case C of
'0'..'9': Result:=numeri[C];
'A'..'Z': Result:=caratteri[C];


> case C of
> '0' : Result := 1;
> '1' : Result := 0;
> '2' : Result := 5;
> '3' : Result := 7;

....

Andrea Laforgia

unread,
Apr 9, 2002, 8:58:50 AM4/9/02
to
"Open Look" <cele...@excite.it> wrote in message
news:fc898a5127f54915f48...@mygate.mailgate.org...

> > function ValoreCarPosPari(C: Char): Integer;
> > begin
> > Result := -1;
>
> questo case secondo me genera troppo codice macchina, potresti fare un
>
> case C of
> '0'..'9': Result := Integer(C) - Integer('0');
> 'A'..'Z': Result := Integer(C) - Integer('A') + 10;

Dal punto di vista prestazionale, se proprio vogliamo discutere
di queste idiozie, c'e' un costo maggiore nel tuo metodo che
non nel mio: vogliamo vedere quanto occupa una sottrazione
rispetto alla restituzione di un valore secco ?
Un case e' un case, se credi che venga prodotto piu' codice
macchina, perche' usi '0', '1, '2', '3,'..'9', anziche'
'0'..'9' ti sbagli.
Se parli di stile, poi, siamo d'accordo, ma io tendo ad ottimizzare
il codice, anche dal punto di vista stilistico, quando ne vale
realmente la pena e non e' questo il caso. Il codice e' stato
scritto per un progetto reale in tempi brevissimi.

Unforgiven

unread,
Apr 9, 2002, 5:20:05 PM4/9/02
to
interface
uses Open Look;
const date = Tue, 9 Apr 2002 11:22:41 +0000 (UTC);

>questo case secondo me genera troppo codice macchina, potresti fare un
>
> case C of
> '0'..'9': Result := Integer(C) - Integer('0');
> 'A'..'Z': Result := Integer(C) - Integer('A') + 10;
> else
> Result := -1;
> end;

Però è più lento e meno leggibile.

>anche qui come sopra... c'e' un metodo furbo: fare
>2 array tipo:
>
>const numeri:array['0'..'9'] of Integer = [1, 0, 5, etc];
> caratteri:array['A'..'Z'] of Integer = [...];
>
> e fare
> case C of
> '0'..'9': Result:=numeri[C];
> 'A'..'Z': Result:=caratteri[C];
>

Anche questo è più lento, occupi più memoria, è meno leggibile, è più
faticoso fare un eventuale debug e il codice macchina generato è
pressapoco uguale.


Open Look

unread,
Apr 11, 2002, 5:43:39 AM4/11/02
to
"Andrea Laforgia" <walkie...@libero.it> wrote in message
news:6f0a00acb0216c05d13...@mygate.mailgate.org...

> Dal punto di vista prestazionale, se proprio vogliamo discutere
> di queste idiozie, c'e' un costo maggiore nel tuo metodo che

caro Andrea, non sono idiozie dal punto di vista del programmatore.
siamo in un gruppo di programmazione e tutto quello che riguarda la
programmazione (ottimizzazione, stile di codice, prestazioni). Se per te
sono idiozie questi allora puoi benissimo postare su it.test o altri.

Ci sono ottimizzazioni e ottimizzazioni, di righe di codice, di tempo
esecuzione, di dimensione del codice generato dal compilatore.
Come sai gia' e' un campo abbastanza vasto...

> vogliamo vedere quanto occupa una sottrazione
> rispetto alla restituzione di un valore secco ?

Pochissimo. 2 o 4 cicli di clock. Che in un calcolo del CF e'
ampiamente trascurabile.

> Un case e' un case, se credi che venga prodotto piu' codice
> macchina, perche' usi '0', '1, '2', '3,'..'9', anziche'
> '0'..'9' ti sbagli.

Non lo so, lo provero' osservando il codice macchina generato,
quando lo compilero' a casa (sono all'universita' e non c'e'
delphi qui)

> Se parli di stile, poi, siamo d'accordo, ma io tendo ad ottimizzare
> il codice, anche dal punto di vista stilistico, quando ne vale
> realmente la pena e non e' questo il caso.

Infatti! Impiegavi meno tempo a scrivere set of che tutta la sfilza
dei case... cq anche a me piace ottimizzare e conoscere nuove tecniche
relative.

Open Look

unread,
Apr 11, 2002, 5:48:14 AM4/11/02
to
"Unforgiven" <unfor...@somehost.somedomain> wrote in message
news:tfm6buok72t7scnak...@4ax.com...

> >questo case secondo me genera troppo codice macchina, potresti fare un

> Però è più lento e meno leggibile.
>
> >anche qui come sopra... c'e' un metodo furbo: fare
> >2 array tipo:

> Anche questo è più lento, occupi più memoria, è meno leggibile, è più
> faticoso fare un eventuale debug e il codice macchina generato è
> pressapoco uguale.


ci sono ottimizzazioni e ottimizzazioni... velocita', dimensione,
linee di eseguibile...

Unforgiven

unread,
Apr 11, 2002, 9:20:36 AM4/11/02
to
interface
uses Open Look;
const date = Thu, 11 Apr 2002 09:48:14 +0000 (UTC);


>"Unforgiven" <unfor...@somehost.somedomain> wrote in message
>news:tfm6buok72t7scnak...@4ax.com...
>
>> >questo case secondo me genera troppo codice macchina, potresti fare un
>> Però è più lento e meno leggibile.
>>
>> >anche qui come sopra... c'e' un metodo furbo: fare
>> >2 array tipo:
>> Anche questo è più lento, occupi più memoria, è meno leggibile, è più
>> faticoso fare un eventuale debug e il codice macchina generato è
>> pressapoco uguale.
>
>
>ci sono ottimizzazioni e ottimizzazioni... velocita', dimensione,
>linee di eseguibile...

Appunto: con la tua correzione hai peggiorato la velocità, forse hai
migliorato la dimensione el le linee di eseguibile generato, che forse
rallentano di qualche millesimo di secondo il caricamento del
programma in memoria, ma le cose più importanti sono la leggibilità e
la facilità di debug del codice, che hai reso più complessi. Inoltre
la velocità dell'eseguibile non è una cosa trascurabile se hai un file
con i nomi e codici fiscali degli abitanti di un'intera città e ne
devi controllare l'esattezza ;)

Open Look

unread,
Apr 11, 2002, 11:12:33 AM4/11/02
to
"Unforgiven" <unfor...@somehost.somedomain> wrote in message
news:063bbuo5ofcpvc5rk...@4ax.com...

> programma in memoria, ma le cose più importanti sono la leggibilità e
> la facilità di debug del codice, che hai reso più complessi.

beh dipende... io programmo dall'86 quindi... ma dai, ogni buon
programmatore sa fare queste cazzate!! poi non mi sembra cosi' troppo
difficile da comprendere queste righe... prova un po' a leggere il
codice del Kernel di linux e confrontalo al mio... ;)

> Inoltre
> la velocità dell'eseguibile non è una cosa trascurabile se hai un file
> con i nomi e codici fiscali degli abitanti di un'intera città e ne
> devi controllare l'esattezza ;)

infatti sono d'accordo con te su questo :)

Andrea Laforgia

unread,
Apr 11, 2002, 11:46:29 AM4/11/02
to
"Open Look" <cele...@excite.it> wrote in message
news:43b0a75b38679efcf58...@mygate.mailgate.org...

> caro Andrea, non sono idiozie dal punto di vista del programmatore.

Non farmi lezioni di programmazione per cortesia: le "idiozie" di
cui parlo sono le (false) ottimizzazioni, irrilevanti, di cui
parli. Ribadisco: dal punto di vista stilistico, puo' essere piu'
bello parlare di '0'..'9', che di
'0','1','2','3','4','5','6','7,'8','9',
allora potrei anche essere d'accordo (e se ne stessimo parlando
dondolandoci su un'amaca al sole hawaiano in un agosto rovente).
Non parlarmi, pero', di prestazioni.

> > vogliamo vedere quanto occupa una sottrazione
> > rispetto alla restituzione di un valore secco ?
>
> Pochissimo. 2 o 4 cicli di clock. Che in un calcolo del CF e'
> ampiamente trascurabile.

Sensibilmente piu' lenta, quindi, di una restituzione secca.
In un calcolo del CF e' ampiamente trascurabile, quindi, che
vi sia una sottrazione o una restituzione di un valore secco.
Bene.
Non capisco, a questo punto, la tua puntualizzazione sul codice.
Ti faccio inoltre presente che potresti dover scorrere una
tabella di 100.000 record e calcolare il codice fiscale mancante
per ogni record. Ora fai il calcolo di quanti cicli di clock
ti servono.

Andrea Laforgia

unread,
Apr 11, 2002, 11:48:59 AM4/11/02
to
"Open Look" <cele...@excite.it> wrote in message
news:5a1261fef8d0fbd2eb7...@mygate.mailgate.org...

> beh dipende... io programmo dall'86 quindi...

Quindi ?

Open Look

unread,
Apr 13, 2002, 3:23:29 AM4/13/02
to
"Andrea Laforgia" <walkie...@libero.it> wrote in message
news:63092149720e9c2f2ab...@mygate.mailgate.org...

> Non farmi lezioni di programmazione per cortesia: le "idiozie" di
> cui parlo sono le (false) ottimizzazioni, irrilevanti, di cui
> parli.

vuoi una dimostrazione? ora pubblico su un sito i miei risultati e poi
vedi da te. Nemmeno io voglio lezioni di programmazione da te.

> Sensibilmente piu' lenta, quindi, di una restituzione secca.
> In un calcolo del CF e' ampiamente trascurabile, quindi, che
> vi sia una sottrazione o una restituzione di un valore secco.

Giustissimo, d'accordo con te.

> Ti faccio inoltre presente che potresti dover scorrere una
> tabella di 100.000 record e calcolare il codice fiscale mancante
> per ogni record. Ora fai il calcolo di quanti cicli di clock
> ti servono.

Sě questo lo so. Ma la mia dimsotrazione te lo farŕ vedere.

Open Look

unread,
Apr 13, 2002, 3:25:07 AM4/13/02
to
"Unforgiven" <unfor...@somehost.somedomain> wrote in message
news:tfm6buok72t7scnak...@4ax.com...

> >questo case secondo me genera troppo codice macchina, potresti fare un
> >
> > case C of
> > '0'..'9': Result := Integer(C) - Integer('0');
> > 'A'..'Z': Result := Integer(C) - Integer('A') + 10;
> > else
> > Result := -1;
> > end;
>
> Però è più lento e meno leggibile.

ho fatto dei test a casa con Delphi 6 enterprise. Il mio codice è
tutt'altro che più lento. Ora pubblico su internet i miei risultati.

Andrea Laforgia

unread,
Apr 13, 2002, 7:54:20 AM4/13/02
to
On Sat, 13 Apr 2002 07:23:29 +0000 (UTC), "Open Look"
<cele...@excite.it> wrote:

>vuoi una dimostrazione? ora pubblico su un sito i miei risultati e poi
>vedi da te.

Si, si, certo.

>Nemmeno io voglio lezioni di programmazione da te.

Io non te ne sto dando, difatti, per lo meno non
gratuitamente.

--
Andrea Laforgia (walkie...@libero.it)

"Usenet is a strange place" [Dennis Ritchie]

Andrea Laforgia

unread,
Apr 13, 2002, 7:56:25 AM4/13/02
to
On Sat, 13 Apr 2002 07:25:07 +0000 (UTC), "Open Look"
<cele...@excite.it> wrote:

>ho fatto dei test a casa con Delphi 6 enterprise. Il mio codice è
>tutt'altro che più lento.

Stiamo aspettando.

Marco Olivieri

unread,
Apr 15, 2002, 5:46:46 AM4/15/02
to
"Andrea Laforgia" <walkie...@libero.it> wrote in message
news:efc982f68b7e469adf2...@mygate.mailgate.org...

> "Open Look" <cele...@excite.it> wrote in message
> news:5a1261fef8d0fbd2eb7...@mygate.mailgate.org...
>
> > beh dipende... io programmo dall'86 quindi...
>
> Quindi ?

Nell'86 o giů di li si ottimizzava tutto, le famose date ddmmyy, i tempi
di cpu, e si,
c'erano i famosi server multiuser, multitasking etc etc.
Ma oggi, 15 Aprile 2002, dove mio nipote di soli 16 anni usa il PC per
giocarci che ha 512 Mb di RAM e 2 o 3 HD mi venite a parlare di
ottimizzazione
per migliorare di qualche decimo di secondo il risultato?
Parliamo di lana caprina.
Bye
Marco

Open Look

unread,
Apr 15, 2002, 7:51:39 AM4/15/02
to
"Marco Olivieri" <olivier...@inwind.it> wrote in message
news:1271725ae81164329a8...@mygate.mailgate.org...

> Parliamo di lana caprina.
> Bye
> Marco

non tutti hanno il picchio da 2Ghz e 512mb ram...e nemmeno la lana
caprina!

Marco Olivieri

unread,
Apr 15, 2002, 11:15:22 AM4/15/02
to
...ops...
sembra che tutti i permalosi di questo mondo me li trovi io.
Comunque mai dire ad un permaloso che è permaloso, quindi dimenticami ed
arriverderci e grazie.
Bye
Marco

"Open Look" <cele...@excite.it> wrote in message

news:bb0b63b3306c89859ca...@mygate.mailgate.org...

0 new messages