FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Calculatrice
par joeeee2017 Aujourd'hui à 18:49

» EPP_V01 éditeur pour Panoramic
par Minibug Hier à 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Hier à 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 15:58

» Planétarium virtuel.
par Pedro Alvarez Hier à 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Formatage d'un nombre

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Formatage d'un nombre   Jeu 18 Aoû 2016 - 21:45

Plus précisément, d'une taille mémoire, pour affichage (taille d'un fichier, etc.)
C'est élémentaire, mais bon, c'est un petit devoir de vacances !
Code:
DIM v,mil$,virg$,u$,nd%
v = 7123456789
mil$ = " ": ' séparateur de milliers
virg$ = ",": ' séparateuir partie entière/partie fractionnaire
u$ = "kb": ' unité
nd% = 2: ' nombre de décimales
FormatNombre(v,mil$,virg$,u$,nd%)
MESSAGE CLIPBOARD_STRING_PASTE$+" "+u$
TERMINATE
' ==============================================================================
SUB FormatNombre(v,mil$,virg$,u$,nd%)
  ' Conversion du nombre entier v (taille mémoire) en chaîne ascii
  ' mil$ = séparateur de milliers: "", ou " ", ou "."
  ' vir$ = séparateur pour les nombres fractionnaires:  "." ou ","
  ' u$ = unités:
  ' "b" octets (implicite), "kb" kilo-octets, "mb" mega-octets, "gb" giga-octets
  ' nd% = nombre maxi de décimales
  DIM_LOCAL n$,a$,b$,i%
  n$ = STR$(v): u$ = UPPER$(u$)
  IF u$ = "KB" THEN n$ = STR$(v/1000)
  IF u$ = "MB" THEN n$ = STR$(v/1000000)
  IF u$ = "GB" THEN n$ = STR$(v/1000000000)
  a$ = n$: b$ = ""
  i% = INSTR(n$,".")
  IF i% > 0
      a$ = LEFT$(n$,i%-1): ' partie entière
      b$ = RIGHT_POS$(n$,i%+1): ' partie décimale
      IF LEN(b$)>nd%: ' dernier chiffre arrondi éventuel à la valeur supérieure
          b$ = LEFT$(b$,nd%+1): i% = VAL(b$)/10: b$ = STR$(i%)
      END_IF
  END_IF
  i% = 3
  WHILE LEN(a$) > i%
      a$ = LEFT$(a$,LEN(a$)-i%)+mil$+RIGHT$(a$,i%)
      i% = i%+3+LEN(mil$)
  END_WHILE
  IF nd% > 0
      IF LEN(b$) > nd% THEN b$ = LEFT$(b$,nd%)
      IF b$ <> "" THEN b$ = virg$ + b$: a$ = a$ + b$
  END_IF
  CLIPBOARD_STRING_COPY a$
END_SUB
' ==============================================================================
Le nombre à formater est en binaire dans v
On choisit le type de séparateur de milliers éventuel, le type de séparateur partie entière/partie fractionnaire, l'unité (octet, Kb, Mb, Gb) et le nombre maxi de décimales du résultat.
S'il y a une partie fractionnaire, elle est arrondie éventuellement au chiffre supérieur.

Le résultat est rendu sous forme de chaîne Ascii dans le presse-papier.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Formatage d'un nombre
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Obtenir le nombre de caractère d'un fichier sans le charger en mémoire vive
» Voir le nombre de points qu'à votre forum
» Le jeu du nombre !!
» Formatage impossible
» Article : Le formatage complice des nouveaux blockbusters

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: