begin process at 2010 02 10 04:13:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Functions

 > 

Conversion de nombre en litteraux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Conversion de nombre en litteraux

mardi 21 août 2007 à 19:20:14 | Conversion de nombre en litteraux

anspauldou

Salut

Je voudrai savoir si quelqu'un a déjà un script qui permet de convertir des nombres en litteraux (en fonction definie par l'utilisateur ou procédures stockées) sinon quel site me conseillez vous pour l'obtenir ?

Merci d'avance
mercredi 22 août 2007 à 08:08:54 | Re : Conversion de nombre en litteraux

dominique.stock

Bonjour,
Qu'entends-tu par des "nombres en littéraux" ?
2 = deux ?
ou une variable float en varchar ? (regarde dans l'aide "convert" ou "cast" )

Dom
mercredi 22 août 2007 à 12:28:55 | Re : Conversion de nombre en litteraux

anspauldou

j'entends par convertsion de nombre en littéreaux 2 = deux

mercredi 22 août 2007 à 12:46:44 | Re : Conversion de nombre en litteraux

dominique.stock

Réponse acceptée !

Voilà un code d'une fonction delphi . A traduire en TSQL:
function TForm1.EnLettres(N:integer):string;

const
  Unite: Array[1..16] of string=('un','deux','trois','quatre','cinq','six',
                                'sept','huit','neuf','dix','onze','douze',
                                'treize','quatorze','quinze','seize');
  Dizaine: Array[2..8] of string=('vingt','trente','quarante','cinquante',
                                 'soixante','','quatre-vingt');
  Coefs:Array[0..3] of string=('cent','mille','million','milliard');
var
  Temp: string;
  C,D,U: Byte;
  Coef: Byte;
  I: Word;
  Neg: boolean;
begin
  if N = 0 then
  begin
    Result := ' Zéro';
    Exit;
  end;
  Result := '';
  Neg := N <0;
  if Neg then N := -N;
  Coef := 0;
  Repeat
    U := N mod 10; N := N div 10; {Récupère unité et dizaine}
    D := N mod 10; N := N div 10; {Récupère dizaine}
    if D in [1,7,9] then
    begin
      Dec(D);
      Inc(U, 10);
    end;
    Temp := '';
    if D > 1 then
    begin
      Temp := ' ' + Dizaine[D];
      if (D < 8) and ((U = 1) or (U = 11)) then
        Temp := Temp + ' et';
    end;
    if U > 16 then
    begin
      Temp := Temp + ' ' + Unite[10];
      Dec(U,10);
    end;
    if U > 0 then Temp := Temp + ' ' + Unite[U];
    if (Result = '') and (D = 8) and (U = 0) then Result := 's';
    Result := Temp + Result;
    C := N mod 10; N := N div 10; {Récupère centaine}
    if C > 0 then
    begin
      Temp := '';
      if C > 1 then Temp := ' ' + Unite[C] + Temp;
      Temp := Temp + ' ' + Coefs[0];
      if (Result = '') and (C > 1) then Result := 's';
      Result := Temp + Result;
    end;
    if N > 0 then
    begin
      Inc(Coef);
      I := N mod 1000;
      if (I > 1) and (Coef > 1) then Result := 's' + Result;
      if I > 0 then Result := ' ' + Coefs[Coef] + Result;
      if (I= 1) and (Coef = 1) then Dec(N);
    end;
  until N = 0;
  if Neg then Result := 'Moins' + Result
  else
  Result[2] := UpCase (Result[2]);
end;

Dom

jeudi 23 août 2007 à 12:30:22 | Re : Conversion de nombre en litteraux

dominique.stock

Si tu as traduis le code ci-dessus en TSQL , cela m'interresse et je pense ne pas être le seul ...

Dom


Cette discussion est classée dans : nombre, conversion, litteraux


Répondre à ce message

Sujets en rapport avec ce message

Nombre de session [ par cispo ] Bonjour,Je travaille sous Access 2003 et je voudrais savoir si il existe une requete pour savoir si quelqu'un est déja connecté à la base de données, deux count dans une requete [ par Matt67 ] Bonsoir, J'ai le champs suivant | champs |     1     2     3     1     3     2     5  &n Compter avec SQL [ par roud59 ] Bonjour (Bonsoir) à vous tous. J'ai posé une question (par erreur) sur DelphiFR, mais je pense trouver quelqu'un qui pourra m'aider pus faciement ici. PB grosse vue [ par zlackzj ] Salut tout le mondeJ'ai un problème au niveau d'une vue (je ne connais pas le nombre de lignes puisque je n'arrive même pas à faire un Count !).Il y a Nombre de ligne optimal d'une table? sql server 2000 [ par vindavid38 ] ZanTarBonjour est ce quelqu'un saurait s'il y a une taille optimale (en nombre de ligne) pour une table avec SQL server 2000.??merci bcp de rep@+ Binary 16 to String [ par vapo ] Bonjour, Je m'explique, j'aimerai dans une procédure stockée  (SQLServer 2000)  faire une copie de données  d'une table vers une autre, jus requete pour compter le nombre d'elements? [ par firas_tn ] Salut a tous :)j'ai une table ou il ya deux champs le 1er NE et le 2eme est ospf, le probleme c'est que je n'ai pas trouvé de requete pour me sélectio Transformation d'un binary16 eb String.... [ par vapo ] Bonjour, Je m'explique, j'aimerai dans une requête SQL (SQLServer 2000)  faire une copie de données  d'une table vers une autre, jusque obtenir le nombre de ligne de plusieures tables dans le meme tableau ? [ par MrdJack ] bonjour, je recherche une facon d'obtenir le nombre de ligne de plusieures tables de ma base de donnée et récupérer le résultat dans un tableau d'une [MsSQL 2000]Conversion heure GMT [ par ProphetKy ] Bonjour, j'ai un peit soucis avec la mise en production de mon application. J'effectue dans pas mal de requêtes des GetDate(), mais le serveur SQL


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales