Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Conversion de nombre en litteraux [ SQL Server, MSDE, SQL Express / Functions ] (anspauldou)

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é 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...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.