home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / c / x_lib10 / xx.doc < prev   
Text File  |  1994-10-20  |  36KB  |  1,349 lines

  1. ════════════════════════════════════════════════════════════════════════════
  2. LES FONCTIONS UTILITAIRES
  3. ────────────────────────────────────────────────────────────────────────────
  4.  
  5. présentation
  6. ────────────
  7.  
  8.     Le groupe XX regroupe des fonctions indépendantes offrant des services
  9.     dans plusieurs domaines (dates, conversions, chaînes).
  10.  
  11.  
  12. opérations sur les dates
  13. ────────────────────────
  14.  
  15.     Trois formats de représentation des dates sont possibles : les formats
  16.     binaire, grégorien et julien.
  17.  
  18.     Le format binaire permet de compacter une date sur un entier long tout
  19.     en préservant l'ordre chronologique.
  20.  
  21.     Le format grégorien décompose une date en année, mois et jour.
  22.  
  23.     Le format julien permet de représenter une date comme un nombre de jours
  24.     écoulés depuis l'origine avec les propriétés suivantes :
  25.  
  26.             -- ordre chronologique respecté,
  27.             -- opérations arithmétiques possibles.
  28.  
  29.     Contrairement à d'autres applications ou librairies de fonctions, X/LIB
  30.     n'impose pas le format julien comme format interne de représentation des
  31.     dates, évitant ainsi le ralentissement dû à la complexité des opérations
  32.     de conversions depuis ou vers ce format.
  33.  
  34.     ╒═══════════════════════════════════════════════════════════════════╕
  35.     │   fonction    utilisation                                         │
  36.     ├───────────────────────────────────────────────────────────────────┤
  37.     │   _db2g       convertit une date binaire en date grégorienne      │
  38.     │   _db2j       convertit une date binaire en date julienne         │
  39.     │   _dchr       modifie le caractère séparateur des dates           │
  40.     │   _dcur       renvoie la date binaire courante                    │
  41.     │   _ddim       renvoie le nombre de jours dans un mois             │
  42.     │   _ddiy       renvoie le nombre de jours dans une année           │
  43.     │   _ddow       renvoie le numéro d'un jour dans la semaine         │
  44.     │   _ddoy       renvoie le numéro d'un jour dans l'année            │
  45.     │   _depq       modifie le millésime des dates                      │
  46.     │   _dg2b       convertit une date grégorienne en date binaire      │
  47.     │   _dg2j       convertit une date grégorienne en date julienne     │
  48.     │   _dj2b       convertit une date julienne en date binaire         │
  49.     │   _dj2g       convertit une date julienne en date grégorienne     │
  50.     │   _dstr       convertit une date binaire en chaîne                │
  51.     │   _dval       convertit une chaîne en date binaire                │
  52.     │   _dver       vérifie la validité d'une date grégorienne          │
  53.     │   _dwoy       renvoie le numéro d'une semaine dans l'année        │
  54.     └───────────────────────────────────────────────────────────────────┘
  55.  
  56.  
  57. opérations sur les heures
  58. ─────────────────────────
  59.  
  60.     Deux formats de représentation des heures sont possibles : les formats
  61.     binaire et classique.
  62.  
  63.     Le format binaire permet de compacter une heure sur un entier long tout
  64.     en préservant l'ordre chronologique.
  65.  
  66.     Le format classique décompose une heure en heures, minutes et secondes.
  67.  
  68.     ╒═══════════════════════════════════════════════════════════════════╕
  69.     │   fonction    utilisation                                         │
  70.     ├───────────────────────────────────────────────────────────────────┤
  71.     │   _tb2t       convertit une heure binaire en heure classique      │
  72.     │   _tchr       modifie le caractère séparateur des heures          │
  73.     │   _tcur       renvoie l'heure binaire courante                    │
  74.     │   _tmod       normalise une heure classique                       │
  75.     │   _tstr       convertit une heure binaire en chaîne               │
  76.     │   _tt2b       convertit une heure classique en heure binaire      │
  77.     │   _ttix       renvoie la valeur de l'horloge interne              │
  78.     │   _tval       convertit une chaîne en heure binaire               │
  79.     │   _tver       vérifie la validité d'une heure classique           │
  80.     └───────────────────────────────────────────────────────────────────┘
  81.  
  82.  
  83. conversions numériques
  84. ──────────────────────
  85.  
  86.     ╒═══════════════════════════════════════════════════════════════════╕
  87.     │   fonction    utilisation                                         │
  88.     ├───────────────────────────────────────────────────────────────────┤
  89.     │   _s2db       convertit une chaîne en nombre décimal double       │
  90.     │   _s2fl       convertit une chaîne en nombre décimal              │
  91.     │   _s2si       convertit une chaîne en entier signé                │
  92.     │   _s2sl       convertit une chaîne en entier long signé           │
  93.     │   _s2sv       convertit une chaîne en entier long signé           │
  94.     │   _s2ui       convertit une chaîne en entier non signé            │
  95.     │   _s2ul       convertit une chaîne en entier long non signé       │
  96.     │   _s2uv       convertit une chaîne en entier long non signé       │
  97.     └───────────────────────────────────────────────────────────────────┘
  98.  
  99.  
  100. opérations sur chaînes
  101. ──────────────────────
  102.  
  103.     ╒═══════════════════════════════════════════════════════════════════╕
  104.     │   fonction    utilisation                                         │
  105.     ├───────────────────────────────────────────────────────────────────┤
  106.     │   _scnt       compte les occurences d'un caractère de chaîne      │
  107.     │   _scpy       copie une chaîne dans une autre                     │
  108.     │   _scut       supprime les espaces autour d'une chaîne            │
  109.     │   _sdel       supprime des caractères autour d'une chaîne         │
  110.     │   _sdup       copie une chaîne dans une autre                     │
  111.     │   _smax       renvoie la longueur maximale d'une sous-chaîne      │
  112.     │   _snew       crée une chaîne ...                                 │
  113.     │   _spad       ajoute des caractères autour d'une chaîne           │
  114.     │   _sset       initialise une chaîne avec un caractère             │
  115.     │   _sval       évalue une expression arithmétique                  │
  116.     └───────────────────────────────────────────────────────────────────┘
  117.  
  118.  
  119. ════════════════════════════════════════════════════════════════════════════
  120. _db2g
  121. convertit une date binaire en date grégorienne
  122. ────────────────────────────────────────────────────────────────────────────
  123.  
  124. utilisation
  125.  
  126.     void    _db2g (long val, int *yer, int *mon, int *day)
  127.  
  128. paramètres
  129.  
  130.     val     date binaire
  131.     yer     pointeur sur année
  132.     mon     pointeur sur mois
  133.     day     pointeur sur jour
  134.  
  135. assertions
  136.  
  137.     val     date valide
  138.     yer     != 0
  139.     mon     != 0
  140.     day     != 0
  141.  
  142. description
  143.  
  144.     _db2g() convertit la date binaire val en date grégorienne et place ses
  145.     trois composantes (année, mois, jour) dans yer, mon et day.
  146.  
  147. voir aussi
  148.  
  149.     _dg2b()
  150.  
  151.  
  152. ════════════════════════════════════════════════════════════════════════════
  153. _db2j
  154. convertit une date binaire en date julienne
  155. ────────────────────────────────────────────────────────────────────────────
  156.  
  157. utilisation
  158.  
  159.     long    _db2j (long val)
  160.  
  161. paramètres
  162.  
  163.     val     date binaire
  164.  
  165. assertions
  166.  
  167.     val     date valide
  168.  
  169. description
  170.  
  171.     _db2j() convertit la date binaire val en une date julienne.
  172.  
  173. voir aussi
  174.  
  175.     _dj2b()
  176.  
  177.  
  178. ════════════════════════════════════════════════════════════════════════════
  179. _dchr
  180. modifie le caractère séparateur des dates
  181. ────────────────────────────────────────────────────────────────────────────
  182.  
  183. utilisation
  184.  
  185.     void    _dchr (char chr)
  186.  
  187. paramètres
  188.  
  189.     chr     séparateur
  190.  
  191. assertions
  192.  
  193.     chr     != 0
  194.  
  195. description
  196.  
  197.     _dchr() remplace le séparateur des dates par le caractère chr.
  198.  
  199.     Par défaut, le séparateur de dates est le caractère '/'.
  200.  
  201. voir aussi
  202.  
  203.     _depq(), _dstr()
  204.  
  205.  
  206. ════════════════════════════════════════════════════════════════════════════
  207. _dcur
  208. renvoie la date binaire courante
  209. ────────────────────────────────────────────────────────────────────────────
  210.  
  211. utilisation
  212.  
  213.     long    _dcur (void)
  214.  
  215. description
  216.  
  217.     _dcur() renvoie la date courante du système au format binaire.
  218.  
  219.  
  220. ════════════════════════════════════════════════════════════════════════════
  221. _ddim
  222. renvoie le nombre de jours dans un mois
  223. ────────────────────────────────────────────────────────────────────────────
  224.  
  225. utilisation
  226.  
  227.     int     _ddim (int yer, int mon)
  228.  
  229. paramètres
  230.  
  231.     yer     année
  232.     mon     mois
  233.  
  234. assertions
  235.  
  236.     yer     [1..9999]
  237.     mon     [1..12]
  238.  
  239. description
  240.  
  241.     _ddim() renvoie le nombre de jours dans le mois mon de l'année yer.
  242.  
  243. voir aussi
  244.  
  245.     _ddiy()
  246.  
  247.  
  248. ════════════════════════════════════════════════════════════════════════════
  249. _ddiy
  250. renvoie le nombre de jours dans une année
  251. ────────────────────────────────────────────────────────────────────────────
  252.  
  253. utilisation
  254.  
  255.     int     _ddiy (int yer)
  256.  
  257. paramètres
  258.  
  259.     yer     année
  260.  
  261. assertions
  262.  
  263.     yer     [1..9999]
  264.  
  265. description
  266.  
  267.     _ddiy() renvoie le nombre de jours dans l'année yer.
  268.  
  269. voir aussi
  270.  
  271.     _ddim()
  272.  
  273.  
  274. ════════════════════════════════════════════════════════════════════════════
  275. _ddow
  276. renvoie le numéro d'un jour dans la semaine
  277. ────────────────────────────────────────────────────────────────────────────
  278.  
  279. utilisation
  280.  
  281.     int     _ddow (int yer, int mon, int day)
  282.  
  283. paramètres
  284.  
  285.     yer     année
  286.     mon     mois
  287.     day     jour
  288.  
  289. assertions
  290.  
  291.     yer     [1..9999]
  292.     mon     [1..12]
  293.     day     [1..31]
  294.  
  295. description
  296.  
  297.     _ddow() renvoie le numéro dans la semaine du jour day du mois mon de
  298.     l'année yer.
  299.  
  300.     _ddow() renvoie un entier compris entre 0 et 6 :
  301.  
  302.             ╒═══════════════════════════════════════════════════════════╕
  303.             │   résultat    jour de la semaine                          │
  304.             ├───────────────────────────────────────────────────────────┤
  305.             │      0        dimanche                                    │
  306.             │      1        lundi                                       │
  307.             │      2        mardi                                       │
  308.             │      3        mercredi                                    │
  309.             │      4        jeudi                                       │
  310.             │      5        vendredi                                    │
  311.             │      6        samedi                                      │
  312.             └───────────────────────────────────────────────────────────┘
  313.  
  314. voir aussi
  315.  
  316.     _ddoy(), _dwoy()
  317.  
  318.  
  319. ════════════════════════════════════════════════════════════════════════════
  320. _ddoy
  321. renvoie le numéro d'un jour dans l'année
  322. ────────────────────────────────────────────────────────────────────────────
  323.  
  324. utilisation
  325.  
  326.     int     _ddoy (int yer, int mon, int day)
  327.  
  328. paramètres
  329.  
  330.     yer     année
  331.     mon     mois
  332.     day     jour
  333.  
  334. assertions
  335.  
  336.     yer     [1..9999]
  337.     mon     [1..12]
  338.     day     [1..31]
  339.  
  340. description
  341.  
  342.     _ddoy() renvoie le numéro dans l'année yer du jour day du mois mon.
  343.  
  344.     _ddoy() renvoie un entier compris entre 1 et 366.
  345.  
  346. voir aussi
  347.  
  348.     _ddow(), _dwoy()
  349.  
  350.  
  351. ════════════════════════════════════════════════════════════════════════════
  352. _depq
  353. modifie le millésime des dates
  354. ────────────────────────────────────────────────────────────────────────────
  355.  
  356. utilisation
  357.  
  358.     void    _depq (int val)
  359.  
  360. paramètres
  361.  
  362.     val     millésime
  363.  
  364. description
  365.  
  366.     _depq() remplace le millésime des dates par val.
  367.  
  368.     Le millésime est utilisé pour lier les années à un siècle par défaut.
  369.  
  370.     Par défaut, le millésime de dates vaut 1900.
  371.  
  372. voir aussi
  373.  
  374.     _dchr(), _dstr()
  375.  
  376.  
  377. ════════════════════════════════════════════════════════════════════════════
  378. _dg2b
  379. convertit une date grégorienne en date binaire
  380. ────────────────────────────────────────────────────────────────────────────
  381.  
  382. utilisation
  383.  
  384.     long    _dg2b (int yer, int mon, int day)
  385.  
  386. paramètres
  387.  
  388.     yer     année
  389.     mon     mois
  390.     day     jour
  391.  
  392. assertions
  393.  
  394.     yer     [1..9999]
  395.     mon     [1..12]
  396.     day     [1..31]
  397.  
  398. description
  399.  
  400.     _dg2b() convertit la date grégorienne (yer, mon, day) en date binaire.
  401.  
  402. voir aussi
  403.  
  404.     _db2g()
  405.  
  406.  
  407. ════════════════════════════════════════════════════════════════════════════
  408. _dg2j
  409. convertit une date grégorienne en date julienne
  410. ────────────────────────────────────────────────────────────────────────────
  411.  
  412. utilisation
  413.  
  414.     long    _dg2j (int yer, int mon, int day)
  415.  
  416. paramètres
  417.  
  418.     yer     année
  419.     mon     mois
  420.     day     jour
  421.  
  422. assertions
  423.  
  424.     yer     [1..9999]
  425.     mon     [1..12]
  426.     day     [1..31]
  427.  
  428. description
  429.  
  430.     _dg2j() convertit la date grégorienne (yer, mon, day) en date julienne.
  431.  
  432. voir aussi
  433.  
  434.     _dj2g()
  435.  
  436.  
  437. ════════════════════════════════════════════════════════════════════════════
  438. _dj2b
  439. convertit une date julienne en date binaire
  440. ────────────────────────────────────────────────────────────────────────────
  441.  
  442. utilisation
  443.  
  444.     long    _dj2b (long val)
  445.  
  446. paramètres
  447.  
  448.     val     date binaire
  449.  
  450. assertions
  451.  
  452.     val     date valide
  453.  
  454. description
  455.  
  456.     _dj2b() convertit la date julienne val en date binaire.
  457.  
  458. voir aussi
  459.  
  460.     _db2j()
  461.  
  462.  
  463. ════════════════════════════════════════════════════════════════════════════
  464. _dj2g
  465. convertit une date julienne en date grégorienne
  466. ────────────────────────────────────────────────────────────────────────────
  467.  
  468. utilisation
  469.  
  470.     void    _db2g (long val, int *yer, int *mon, int *day)
  471.  
  472. paramètres
  473.  
  474.     val     date julienne
  475.     yer     pointeur sur année
  476.     mon     pointeur sur mois
  477.     day     pointeur sur jour
  478.  
  479. assertions
  480.  
  481.     val     date valide
  482.     yer     != 0
  483.     mon     != 0
  484.     day     != 0
  485.  
  486. description
  487.  
  488.     _dj2g() convertit la date julienne val en date grégorienne et place ses
  489.     trois composantes (année, mois, jour) dans yer, mon et day.
  490.  
  491. voir aussi
  492.  
  493.     _dg2j()
  494.  
  495.  
  496. ════════════════════════════════════════════════════════════════════════════
  497. _dstr
  498. convertit une date binaire en chaîne
  499. ────────────────────────────────────────────────────────────────────────────
  500.  
  501. utilisation
  502.  
  503.     char *  _dstr (int fmt, long val, char *str)
  504.  
  505. paramètres
  506.  
  507.     fmt     format de conversion
  508.     val     date binaire
  509.     str     pointeur sur chaîne
  510.  
  511. assertions
  512.  
  513.     fmt     format valide
  514.     val     date valide
  515.     str     != 0
  516.  
  517. description
  518.  
  519.     _dstr() convertit la date binaire val en une chaîne placée dans str au
  520.     format fmt.
  521.  
  522.     Le format de conversion fmt est une des constantes suivantes :
  523.  
  524.             ╒═══════════════════════════════════════════════════════════╕
  525.             │   constante   format                          longueur    │
  526.             ├───────────────────────────────────────────────────────────┤
  527.             │   xx_DMY      JJMMAA                              6       │
  528.             │   xx_DMYY     JJMMCCAA                            8       │
  529.             │   xx_DMYC     JJ/MM/AA                            8       │
  530.             │   xx_DMYYC    JJ/MM/CCAA                         10       │
  531.             │   xx_MDY      MMJJAA                              6       │
  532.             │   xx_MDYY     MMJJCCAA                            8       │
  533.             │   xx_MDYC     MM/JJ/AA                            8       │
  534.             │   xx_MDYYC    MM/JJ/CCAA                         10       │
  535.             │   xx_YMD      AAMMJJ                              6       │
  536.             │   xx_YYMD     CCAAMMJJ                            8       │
  537.             └───────────────────────────────────────────────────────────┘
  538.  
  539.     Dans les formats ci-dessus, JJ indique le numéro du jour, MM le numéro
  540.     du mois, AA les années dans le millésime courant et CC le millésime.
  541.  
  542.     Le millésime peut être modifié par _depq().
  543.  
  544.     Le séparateur des dates peut être modifié par _dchr().
  545.  
  546.     str doit pouvoir contenir la chaîne résultant de la conversion plus le
  547.     délimiteur nul.
  548.  
  549.     _dstr() renvoie str.
  550.  
  551. voir aussi
  552.  
  553.     _dchr(), _depq()
  554.  
  555.  
  556. ════════════════════════════════════════════════════════════════════════════
  557. _dval
  558. convertit une chaîne en date binaire
  559. ────────────────────────────────────────────────────────────────────────────
  560.  
  561. utilisation
  562.  
  563.     int     _dval (int fmt, const char *str, long *val)
  564.  
  565. paramètres
  566.  
  567.     fmt     format de conversion
  568.     str     pointeur sur chaîne
  569.     val     pointeur sur date binaire
  570.  
  571. assertions
  572.  
  573.     fmt     format valide
  574.     str     != 0
  575.     val     != 0
  576.  
  577. description
  578.  
  579.     _dval() convertit la chaîne str en une date binaire selon le format de
  580.     conversion fmt.
  581.  
  582.     En cas de conversion réussie, _dval() place la date binaire dans val et
  583.     renvoie une valeur non nulle. Dans le cas contraire, _dval() renvoie 0
  584.     sans modifier le contenu de val.
  585.  
  586.     Le format de conversion fmt est le même que celui utilisé par _dstr().
  587.  
  588. voir aussi
  589.  
  590.     _dstr()
  591.  
  592.  
  593. ════════════════════════════════════════════════════════════════════════════
  594. _dver
  595. vérifie la validité d'une date grégorienne
  596. ────────────────────────────────────────────────────────────────────────────
  597.  
  598. utilisation
  599.  
  600.     int     _dver (int yer, int mon, int day)
  601.  
  602. paramètres
  603.  
  604.     yer     année
  605.     mon     mois
  606.     day     jour
  607.  
  608. description
  609.  
  610.     _dver() vérifie la validité de la date grégorienne (yer, mon, day).
  611.  
  612.     _dver() renvoie une valeur non nulle en cas de format correct et 0 dans
  613.     le cas contraire.
  614.  
  615.  
  616. ════════════════════════════════════════════════════════════════════════════
  617. _dwoy
  618. renvoie le numéro d'une semaine dans l'année
  619. ────────────────────────────────────────────────────────────────────────────
  620.  
  621. utilisation
  622.  
  623.     int     _dwoy (int yer, int mon, int day)
  624.  
  625. paramètres
  626.  
  627.     yer     année
  628.     mon     mois
  629.     day     jour
  630.  
  631. assertions
  632.  
  633.     yer     [1..9999]
  634.     mon     [1..12]
  635.     day     [1..31]
  636.  
  637. description
  638.  
  639.     _dwoy() renvoie le numéro de la semaine dans laquelle est située la date
  640.     grégorienne (yer, mon, day).
  641.  
  642.     _dwoy() suppose que le lundi est le premier jour de la semaine et que la
  643.     première semaine de l'année commence avec le premier lundi de janvier.
  644.  
  645. voir aussi
  646.  
  647.     _ddow(), _ddoy()
  648.  
  649.  
  650. ════════════════════════════════════════════════════════════════════════════
  651. _s2..
  652. convertit une chaîne en ...
  653. ────────────────────────────────────────────────────────────────────────────
  654.  
  655. utilisation
  656.  
  657.     int     _s2db (const char *str, double *val)
  658.     int     _s2fl (const char *str, float *val)
  659.     int     _s2si (const char *str, int *val)
  660.     int     _s2sl (const char *str, long *val)
  661.     int     _s2sv (const char *str, int rad, long *val)
  662.     int     _s2ui (const char *str, unsigned int *val)
  663.     int     _s2ul (const char *str, unsigned long *val)
  664.     int     _s2uv (const char *str, int rad, unsigned long *val)
  665.  
  666. paramètres
  667.  
  668.     str     pointeur sur chaîne
  669.     rad     base de conversion entière
  670.     val     pointeur sur résultat
  671.  
  672. assertions
  673.  
  674.     str     != 0
  675.     rad     base valide
  676.     val     != 0
  677.  
  678. description
  679.  
  680.     _s2..() convertit la chaîne str en un nombre placé dans val.
  681.  
  682.     Si la conversion est réussie, le nombre résultant est conservé dans val.
  683.  
  684.     Si la conversion échoue, le contenu de val est indéfini.
  685.  
  686.     Les conversions entières sont faites en base décimale sauf pour _s2sv()
  687.     et _s2uv() qui utilisent une base précise.
  688.  
  689.     La base de conversion rad est une des valeurs suivantes :
  690.  
  691.             ╒═══════════════════════════════════════════════════════════╕
  692.             │   base        utilisation                                 │
  693.             ├───────────────────────────────────────────────────────────┤
  694.             │   0           conversion avec base implicite selon les    │
  695.             │               premiers caractères de la chaîne.           │
  696.             │                                                           │
  697.             │               ────────────────────────────                │
  698.             │                   1°car   2°car  base                     │
  699.             │               ────────────────────────────                │
  700.             │                   0       X       base 16                 │
  701.             │                           x       base 16                 │
  702.             │                           1..7    base 8                  │
  703.             │                   1..9            base 10                 │
  704.             │               ────────────────────────────                │
  705.             │                                                           │
  706.             │                                                           │
  707.             │   2..36       conversion dans les bases 2 à 36            │
  708.             └───────────────────────────────────────────────────────────┘
  709.  
  710.     _s2..() renvoit une valeur non nulle si la conversion est réussie et 0
  711.     en cas d'échec.
  712.  
  713.  
  714. ════════════════════════════════════════════════════════════════════════════
  715. _scnt
  716. compte les occurences d'un caractère de chaîne
  717. ────────────────────────────────────────────────────────────────────────────
  718.  
  719. utilisation
  720.  
  721.     int     _scnt (const char *str, char chr)
  722.  
  723. paramètres
  724.  
  725.     str     pointeur sur chaîne
  726.     chr     caractère
  727.  
  728. assertions
  729.  
  730.     str     != 0
  731.  
  732. description
  733.  
  734.     _scnt() renvoie le nombre d'occurences de chr dans la chaîne str.
  735.  
  736.     En complément à _smax(), _scnt() permet d'obtenir le nombre de lignes
  737.     logiques terminées par le caractère '\n' et composant une chaîne.
  738.  
  739. voir aussi
  740.  
  741.     _smax()
  742.  
  743.  
  744. ════════════════════════════════════════════════════════════════════════════
  745. _scpy
  746. copie une chaîne dans une autre
  747. ────────────────────────────────────────────────────────────────────────────
  748.  
  749. utilisation
  750.  
  751.     char *  _scpy (char *dst, const char *src, int max)
  752.  
  753. paramètres
  754.  
  755.     dst     pointeur sur chaîne destination
  756.     src     pointeur sur chaîne source
  757.     max     longueur maximale
  758.  
  759. assertions
  760.  
  761.     dst     != 0
  762.  
  763. description
  764.  
  765.     _scpy() copie la chaîne src dans dst à concurrence de max caractères.
  766.  
  767.     Si dst est nul, _scpy() considère que la chaîne est vide.
  768.  
  769.     _scpy() ajoute toujours un délimiteur nul à la fin de dst qui doit donc
  770.     pouvoir recevoir (max + 1) caractères.
  771.  
  772.     _scpy() renvoie dst.
  773.  
  774. voir aussi
  775.  
  776.     _sdup
  777.  
  778.  
  779. ════════════════════════════════════════════════════════════════════════════
  780. _scut
  781. supprime les espaces autour d'une chaîne
  782. ────────────────────────────────────────────────────────────────────────────
  783.  
  784. utilisation
  785.  
  786.     int     _scut (char *str, int bos, int eos)
  787.  
  788. paramètres
  789.  
  790.     str     pointeur sur chaîne
  791.     bos     suppression au début
  792.     eos     suppression en fin
  793.  
  794. assertions
  795.  
  796.     str     != 0
  797.  
  798. description
  799.  
  800.     _scut() supprime les espaces autour de la chaîne str.
  801.  
  802.     Si bos est non nul, _scut() supprime les espaces situés au début de la
  803.     chaîne.
  804.  
  805.     Si eos est non nul, _scut() supprime les espaces situés en fin de la
  806.     chaîne.
  807.  
  808.     _scut() renvoie la longueur de la chaîne résultante.
  809.  
  810. voir aussi
  811.  
  812.     _sdel()
  813.  
  814.  
  815. ════════════════════════════════════════════════════════════════════════════
  816. _sdel
  817. supprime des caractères autour d'une chaîne
  818. ────────────────────────────────────────────────────────────────────────────
  819.  
  820. utilisation
  821.  
  822.     int     _sdel (char *str, chr lch, char rch)
  823.  
  824. paramètres
  825.  
  826.     str     pointeur sur chaîne
  827.     lch     caractère
  828.     rch     caractère
  829.  
  830. assertions
  831.  
  832.     str     != 0
  833.  
  834. description
  835.  
  836.     _sdel() supprime les caractères lch et rch autour de la chaîne str.
  837.  
  838.     Si lch est non nul, _sdel() supprime les caractères lch situés au début
  839.     de la chaîne.
  840.  
  841.     Si rch est non nul, _sdel() supprime les caractères rch situés en fin de
  842.     la chaîne.
  843.  
  844.     _sdel() renvoie la longueur de la chaîne résultante.
  845.  
  846. voir aussi
  847.  
  848.     _scut()
  849.  
  850.  
  851. ════════════════════════════════════════════════════════════════════════════
  852. _sdup
  853. copie une chaîne dans une autre
  854. ────────────────────────────────────────────────────────────────────────────
  855.  
  856. utilisation
  857.  
  858.     int     _sdup (char *dst, const char *src, int max)
  859.  
  860. paramètres
  861.  
  862.     dst     pointeur sur chaîne destination
  863.     src     pointeur sur chaîne source
  864.     max     longueur maximale
  865.  
  866. assertions
  867.  
  868.     dst     != 0
  869.  
  870. description
  871.  
  872.     _sdup() copie la chaîne src dans dst à concurrence de max caractères
  873.  
  874.     _sdup() appelle _scpy() et renvoie le nombre de caractères copiés.
  875.  
  876. voir aussi
  877.  
  878.     _scpy()
  879.  
  880.  
  881. ════════════════════════════════════════════════════════════════════════════
  882. _smax
  883. renvoie la longueur maximale d'une sous-chaîne
  884. ────────────────────────────────────────────────────────────────────────────
  885.  
  886. utilisation
  887.  
  888.     int     _smax (const char *str, char chr)
  889.  
  890. paramètres
  891.  
  892.     str     pointeur sur chaîne
  893.     chr     caractère
  894.  
  895. assertions
  896.  
  897.     str     != 0
  898.  
  899. description
  900.  
  901.     _smax() renvoie la longueur de la plus longue portion de la chaîne str
  902.     délimitée par chr.
  903.  
  904.     Le délimiteur ne fait pas partie du nombre de caractères renvoyés.
  905.  
  906.     En complément à _scnt(), _smax() permet d'obtenir la longueur maximale
  907.     des lignes logiques terminées par le caractère '\n' et composant une
  908.     chaîne.
  909.  
  910. voir aussi
  911.  
  912.     _scnt()
  913.  
  914.  
  915. ════════════════════════════════════════════════════════════════════════════
  916. _snew
  917. crée une chaîne ...
  918. ────────────────────────────────────────────────────────────────────────────
  919.  
  920. utilisation
  921.  
  922.     char *  _snew (int max)
  923.     char *  _snew (char chr, int max)
  924.     char *  _snew (const char *str)
  925.  
  926. paramètres
  927.  
  928.     max     longueur maximale
  929.     chr     caractère
  930.     str     pointeur sur chaîne
  931.  
  932. assertions
  933.  
  934.     str     != 0
  935.  
  936. description
  937.  
  938.     Dans sa première forme, _snew() crée une chaîne vide pouvant recevoir un
  939.     maximum de max caractères en plus du délimiteur nul.
  940.  
  941.     Dans sa deuxième forme, _snew() crée une chaîne initialisée avec max
  942.     caractères chr et terminée par le délimiteur nul.
  943.  
  944.     Dans sa troisième forme, _snew() crée une copie de la chaîne str.
  945.  
  946.     _snew() crée une chaîne en appelant malloc() ; un appel à free() est
  947.     donc nécessaire pour libérer l'espace mémoire ainsi alloué.
  948.  
  949.     _snew() renvoie un pointeur sur la chaîne allouée ou 0 en cas de pénurie
  950.     de mémoire.
  951.  
  952.  
  953. ════════════════════════════════════════════════════════════════════════════
  954. _spad
  955. ajoute des caractères autour d'une chaîne
  956. ────────────────────────────────────────────────────────────────────────────
  957.  
  958. utilisation
  959.  
  960.     char *  _spad (char *str, char lch, char rch, int max)
  961.  
  962. paramètres
  963.  
  964.     str     pointeur sur chaîne
  965.     lch     caractère
  966.     rch     caractère
  967.     max     longueur maximale
  968.  
  969. assertions
  970.  
  971.     str     != 0
  972.  
  973. description
  974.  
  975.     _spad() ajoute les caractères lch et rch autour de la chaîne str.
  976.  
  977.     Les caractères lch et rch ne sont ajoutés que s'ils sont non nuls : au
  978.     début de str pour lch et en fin pour rch. Dans ce cas, _spad() répartit
  979.     équitablement le nombre de chaque caractère pour obtenir une chaîne
  980.     d'une longueur finale de max caractères.
  981.  
  982.     La chaîne str doit pouvoir recevoir (max + 1) caractères.
  983.  
  984.     _spad() est sans effet si la longueur de la chaîne avant traitement est
  985.     déjà supérieure à max.
  986.  
  987.     _spad renvoie dst.
  988.  
  989. voir aussi
  990.  
  991.     _sdel()
  992.  
  993.  
  994. ════════════════════════════════════════════════════════════════════════════
  995. _sset
  996. initialise une chaîne avec un caractère
  997. ────────────────────────────────────────────────────────────────────────────
  998.  
  999. utilisation
  1000.  
  1001.     char *  _sset (char *str, char chr, int max)
  1002.  
  1003. paramètres
  1004.  
  1005.     str     pointeur sur chaîne
  1006.     chr     caractère
  1007.     max     longueur maximale
  1008.  
  1009. assertions
  1010.  
  1011.     str     != 0
  1012.  
  1013. description
  1014.  
  1015.     _sset() initialise la chaîne str avec max caractères chr.
  1016.  
  1017.     _sset() ajoute un délimiteur à la fin de la chaîne str qui doit donc
  1018.     pouvoir recevoir (max + 1) caractères.
  1019.  
  1020.     _sset() renvoie str.
  1021.  
  1022.  
  1023. ════════════════════════════════════════════════════════════════════════════
  1024. _sval
  1025. évalue une expression arithmétique
  1026. ────────────────────────────────────────────────────────────────────────────
  1027.  
  1028. utilisation
  1029.  
  1030.     int     _sval (char *str, double *val)
  1031.  
  1032. paramètres
  1033.  
  1034.     str     pointeur sur chaîne
  1035.     val     pointeur sur résultat
  1036.  
  1037. assertions
  1038.  
  1039.     str     != 0
  1040.     val     != 0
  1041.  
  1042. description
  1043.  
  1044.     _sval évalue l'expression arithmétique contenue dans la chaîne str et
  1045.     place son résultat dans val.
  1046.  
  1047.     _sval est un évaluateur simple d'expressions arithmétiques incluant les
  1048.     quatre opérations de base (+, -, *, /) ainsi que la négation.
  1049.  
  1050.     Les opérations sont évaluées dans leur ordre d'apparition dans la chaîne
  1051.     et seules les parenthèses permettent de modifier cet ordre. Un maximum
  1052.     de huit niveaux de parenthèses est autorisé.
  1053.  
  1054.     Si l'évaluation réussit, _sval renvoie une valeur non nulle. Dans le cas
  1055.     contraire, _sval renvoie 0 et le contenu de val est indéfini.
  1056.  
  1057.  
  1058. ════════════════════════════════════════════════════════════════════════════
  1059. _tb2t
  1060. convertit une heure binaire en heure classique
  1061. ────────────────────────────────────────────────────────────────────────────
  1062.  
  1063. utilisation
  1064.  
  1065.     void    _tb2t (long val, int *hor, int *min, int *sec)
  1066.  
  1067. paramètres
  1068.  
  1069.     val     heure binaire
  1070.     hor     pointeur sur les heures
  1071.     min     pointeur sur les minutes
  1072.     sec     pointeur sur les secondes
  1073.  
  1074. assertions
  1075.  
  1076.     val     heure valide
  1077.     hor     != 0
  1078.     min     != 0
  1079.  
  1080. description
  1081.  
  1082.     _tb2t() convertit l'heure binaire val en heure classique et place ses
  1083.     trois composantes (heures, minutes, secondes) dans hor, min et sec.
  1084.  
  1085.     Les secondes ne sont renvoyées que si sec est non nul.
  1086.  
  1087. voir aussi
  1088.  
  1089.     _tt2b()
  1090.  
  1091.  
  1092. ════════════════════════════════════════════════════════════════════════════
  1093. _tchr
  1094. modifie le caractère séparateur des heures
  1095. ────────────────────────────────────────────────────────────────────────────
  1096.  
  1097. utilisation
  1098.  
  1099.     void    _tchr (char chr)
  1100.  
  1101. paramètres
  1102.  
  1103.     chr     séparateur
  1104.  
  1105. assertions
  1106.  
  1107.     chr     != 0
  1108.  
  1109. description
  1110.  
  1111.     _tchr() remplace le séparateur des heures par le caractère chr.
  1112.  
  1113.     Par défaut, le séparateur des heures est le caractère ':'.
  1114.  
  1115. voir aussi
  1116.  
  1117.     _tstr()
  1118.  
  1119.  
  1120. ════════════════════════════════════════════════════════════════════════════
  1121. _tcur
  1122. renvoie l'heure binaire courante
  1123. ────────────────────────────────────────────────────────────────────────────
  1124.  
  1125. utilisation
  1126.  
  1127.     long    _tcur (void)
  1128.  
  1129. description
  1130.  
  1131.     _tcur() renvoie l'heure courante du système au format binaire.
  1132.  
  1133.  
  1134. ════════════════════════════════════════════════════════════════════════════
  1135. _tmod
  1136. normalise une heure classique
  1137. ────────────────────────────────────────────────────────────────────────────
  1138.  
  1139. utilisation
  1140.  
  1141.     int     _tmod (int *hor, int *min, int *sec)
  1142.  
  1143. paramètres
  1144.  
  1145.     hor     pointeur sur les heures
  1146.     min     pointeur sur les minutes
  1147.     sec     pointeur sur les secondes
  1148.  
  1149. assertions
  1150.  
  1151.     hor     != 0
  1152.     min     != 0
  1153.  
  1154. description
  1155.  
  1156.     _tmod() normalise l'heure classique (*hor, *min, *sec) en convertissant
  1157.     les secondes en minutes, les minutes en heures et les heures en jours
  1158.     puis en replaçant les résultats dans hor, min et sec.
  1159.  
  1160.     Les secondes ne sont renvoyées que si sec est non nul.
  1161.  
  1162.     _tmod() renvoie le nombre de jours résultant de la normalisation.
  1163.  
  1164.  
  1165. ════════════════════════════════════════════════════════════════════════════
  1166. _tstr
  1167. convertit une heure binaire en chaîne
  1168. ────────────────────────────────────────────────────────────────────────────
  1169.  
  1170. utilisation
  1171.  
  1172.     char *  _tstr (int fmt, long val, char *str)
  1173.  
  1174. paramètres
  1175.  
  1176.     fmt     format de conversion
  1177.     val     heure binaire
  1178.     str     pointeur sur chaîne
  1179.  
  1180. assertions
  1181.  
  1182.     fmt     format valide
  1183.     val     heure valide
  1184.     str     != 0
  1185.  
  1186. description
  1187.  
  1188.     _tstr() convertit l'heure binaire val en une chaîne placée dans str au
  1189.     format fmt.
  1190.  
  1191.     Le format de conversion fmt est une des constantes suivantes :
  1192.  
  1193.             ╒═══════════════════════════════════════════════════════════╕
  1194.             │   constante   format                          longueur    │
  1195.             ├───────────────────────────────────────────────────────────┤
  1196.             │   xx_HMS      HHMMSS                              6       │
  1197.             │   xx_HMSC     HH:MM:SS                            8       │
  1198.             │   xx_HM       HHMM                                4       │
  1199.             │   xx_HMC      HH:MM                               5       │
  1200.             └───────────────────────────────────────────────────────────┘
  1201.  
  1202.     Dans les formats ci-dessus, HH indique les heures, MM les minutes et SS
  1203.     les secondes.
  1204.  
  1205.     Le séparateur des heures peut être modifié par _tchr().
  1206.  
  1207.     str doit pouvoir contenir la chaîne résultant de la conversion plus le
  1208.     délimiteur nul.
  1209.  
  1210.     _tstr() renvoie str.
  1211.  
  1212. voir aussi
  1213.  
  1214.     _tchr()
  1215.  
  1216.  
  1217. ════════════════════════════════════════════════════════════════════════════
  1218. _tt2b
  1219. convertit une heure classique en heure binaire
  1220. ────────────────────────────────────────────────────────────────────────────
  1221.  
  1222. utilisation
  1223.  
  1224.     long    _tt2b (int hor, int min, int sec)
  1225.  
  1226. paramètres
  1227.  
  1228.     hor     heures
  1229.     min     minutes
  1230.     sec     secondes
  1231.  
  1232. assertions
  1233.  
  1234.     hor     [0..23]
  1235.     min     [0..59]
  1236.     sec     [0..59]
  1237.  
  1238. description
  1239.  
  1240.     _tt2b() convertit l'heure classique (hor, min, sec) en heure binaire.
  1241.  
  1242. voir aussi
  1243.  
  1244.     _tb2t()
  1245.  
  1246.  
  1247. ════════════════════════════════════════════════════════════════════════════
  1248. _ttix
  1249. renvoie la valeur de l'horloge interne
  1250. ────────────────────────────────────────────────────────────────────────────
  1251.  
  1252. utilisation
  1253.  
  1254.     long    _ttix (void)
  1255.  
  1256. description
  1257.  
  1258.     _ttix() renvoie la valeur de l'horloge interne.
  1259.  
  1260.     Le résultat de _ttix() est le nombre de battements comptés depuis minuit
  1261.     à la cadence d'un battement tous les 1/18° de seconde.
  1262.  
  1263.  
  1264. ════════════════════════════════════════════════════════════════════════════
  1265. _tval
  1266. convertit une chaîne en heure binaire
  1267. ────────────────────────────────────────────────────────────────────────────
  1268.  
  1269. utilisation
  1270.  
  1271.     int     _tval (int fmt, const char *str, long *val)
  1272.  
  1273. paramètres
  1274.  
  1275.     fmt     format de conversion
  1276.     str     pointeur sur chaîne
  1277.     val     pointeur sur heure binaire
  1278.  
  1279. assertions
  1280.  
  1281.     fmt     format valide
  1282.     str     != 0
  1283.     val     != 0
  1284.  
  1285. description
  1286.  
  1287.     _tval() convertit la chaîne str en une heure binaire selon le format de
  1288.     conversion fmt.
  1289.  
  1290.     En cas de conversion réussie, _tval() place l'heure binaire dans val et
  1291.     renvoie une valeur non nulle. Dans le cas contraire, _tval() renvoie 0
  1292.     sans modifier le contenu de val.
  1293.  
  1294.     Le format de conversion fmt est le même que celui utilisé par _tstr().
  1295.  
  1296. voir aussi
  1297.  
  1298.     _tstr()
  1299.  
  1300.  
  1301. ════════════════════════════════════════════════════════════════════════════
  1302. _tver
  1303. vérifie la validité d'une heure classique
  1304. ────────────────────────────────────────────────────────────────────────────
  1305.  
  1306. utilisation
  1307.  
  1308.     int     _tver (int hor, int min, int sec)
  1309.  
  1310. paramètres
  1311.  
  1312.     hor     heures
  1313.     min     minutes
  1314.     sec     secondes
  1315.  
  1316. description
  1317.  
  1318.     _tver() vérifie la validité de l'heure classique (hor, min, sec).
  1319.  
  1320.     _tver() renvoie une valeur non nulle en cas de format correct et 0 dans
  1321.     le cas contraire.
  1322.  
  1323.  
  1324. ════════════════════════════════════════════════════════════════════════════
  1325. ────────────────────────────────────────────────────────────────────────────
  1326.  
  1327. utilisation
  1328.  
  1329.     .       .
  1330.  
  1331. paramètres
  1332.  
  1333.     .       .
  1334.  
  1335. assertions
  1336.  
  1337.     .       .
  1338.  
  1339. description
  1340.  
  1341.             ╒═══════════════════════════════════════════════════════════╕
  1342.             ├───────────────────────────────────────────────────────────┤
  1343.             └───────────────────────────────────────────────────────────┘
  1344.  
  1345. voir aussi
  1346.  
  1347.  
  1348.  
  1349.