<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2899116945945422341</id><updated>2011-11-28T00:28:56.197+01:00</updated><category term='Code'/><category term='Homebank'/><category term='Documentation'/><category term='Suneido'/><category term='Word'/><category term='Recette'/><title type='text'>SuneidoFR</title><subtitle type='html'>Espace Francophone autour de Suneido</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-4412174211277151572</id><published>2008-01-02T19:21:00.000+01:00</published><updated>2008-01-02T19:29:50.791+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>RIBControl : Saisie et validation d'un RIB</title><content type='html'>RIBControl est un contrôle Suneido permettant la saisie et la validation d'un Relevé d'Identité Bancaire.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le code de RIBControl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;PatternControl&lt;br /&gt; {&lt;br /&gt;  Name: "RIB"&lt;br /&gt;  New(width= 23, mandatory= false)&lt;br /&gt;    {&lt;br /&gt;      super('&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ##',&lt;br /&gt;      width : width,&lt;br /&gt;      mandatory : mandatory,&lt;br /&gt;      status: 'RIB')&lt;br /&gt;      .mandatory = mandatory&lt;br /&gt;    }&lt;br /&gt;  Valid?()&lt;br /&gt;    {&lt;br /&gt;      value = .Get()&lt;br /&gt;      if (.mandatory is false and value is '')&lt;br /&gt;        return true&lt;br /&gt;      return super.Valid?() and RIBValid?(value)&lt;br /&gt;    }&lt;br /&gt;  }&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le code de RIBValid ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;function (rib)&lt;br /&gt; {&lt;br /&gt;  rib = rib.Tr(" " )&lt;br /&gt;  dict = #("0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9, A:1, B:2, C:3, D:4, E:5, F:6, G:7, H:8, I:9,J:1, K:2, L:3, M:4, N:5, O:6, P:7, Q:8, R:9,S:2, T:3, U:4, V:5, W:6, X:7, Y:8, Z:9)&lt;br /&gt;  num = ""&lt;br /&gt;  for (i=0; i&amp;lt;= rib.Size()-1; ++i)&lt;br /&gt;    {&lt;br /&gt;      num $= dict[rib.Substr(i,1)]&lt;br /&gt;    }&lt;br /&gt;  cle = num.Substr(-2)&lt;br /&gt;  if (Number(cle)&amp;lt;1 or Number(cle)&gt;97)&lt;br /&gt;    {&lt;br /&gt;      return false&lt;br /&gt;    }&lt;br /&gt;  a = num.Substr(0,7)&lt;br /&gt;  b = num.Substr(7,7)&lt;br /&gt;  c = num.Substr(14,7)&lt;br /&gt;  verifcle = 97-((62*a+34*b+3*c)%97)&lt;br /&gt;  return Number(cle) == verifcle&lt;br /&gt; }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Le code code de RIBValidTest&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Test&lt;br /&gt; {&lt;br /&gt;  Test_main()&lt;br /&gt;    {&lt;br /&gt;      AssertEq(RIBValid?('15459 45000 0411700920U 62'),true)&lt;br /&gt;      AssertEq(RIBValid?('10207 00026 04026011770 83'),true)&lt;br /&gt;      AssertEq(RIBValid?('30002 06971 0000072002D 05'),false)&lt;br /&gt;    }&lt;br /&gt; }&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Explications&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;RIBControl est un PatternControl avec comme masque de saisie &lt;span style="color: rgb(0, 0, 153);"&gt;&gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ##&lt;/span&gt; ou &gt; représente un chiffre ou une lettre majuscule et # un chiffre.&lt;br /&gt;&lt;br /&gt;Les données entrées avec ce masque sont alors vérifiées avec la fonction RIBValid?&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;blockquote&gt;function (rib)&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;RIBValid ? est une fonction prenant en paramètre d'entrée un RIB&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;{&lt;br /&gt;    rib = rib.Tr(" " )&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;on enlève du RIB tous les espaces&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;dict = #("0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9,A:1, B:2, C:3, D:4, E:5, F:6, G:7, H:8, I:9,J:1, K:2, L:3, M:4, N:5, O:6, P:7, Q:8, R:9,S:2, T:3, U:4, V:5, W:6, X:7, Y:8, Z:9)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;On créé un dictionnaire nommé dict contenant la correspondance entre chaque caractère possible du RIB avec une valeur numérique&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;num = ""&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;On initialise la variable num&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;&lt;br /&gt;for (i=0; i&amp;lt;= rib.Size()-1; ++i)&lt;/blockquote&gt;&lt;br /&gt;Pour chaque caractère du RIB&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;{&lt;br /&gt; num $= dict[rib.Substr(i,1)]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;On concatène à num la valeur correspondante du caractère encours dans le dictionnaire (par ex : U donne 4)&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;  }&lt;br /&gt;  cle = num.Substr(-2)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;On détermine la clé (ce sont les deux derniers caractères du RIB d'où le -2)&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt; if (Number(cle)&amp;lt;1 or Number(cle)&gt;97)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Si la clé n'est pas comprise entre 1 et 97 alors le RIB n'est pas valide&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;  {&lt;br /&gt;  return false&lt;br /&gt;  }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Sinon, on décompose le nouveau « RIB » entièrement numérique num en tois partie de 7 caractères&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;&lt;br /&gt; a = num.Substr(0,7)&lt;br /&gt; b = num.Substr(7,7)&lt;br /&gt; c = num.Substr(14,7)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;On calcule la clé de vérification verifcle&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt; verifcle = 97-((62*a+34*b+3*c)%97)&lt;/blockquote&gt;&lt;br /&gt;Le RIB est juste si la clé du RIB est égale à verifcle (on utilise Number(cle) pour convertir la clé qui est une sous chaîne de la chaîne RIB en valeur numérique, sinon il y a un conflit de type)&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;&lt;br /&gt; return Number(cle) == verifcle&lt;br /&gt; }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Et voilà votre RIB est validé.&lt;br /&gt;&lt;br /&gt;Et Comme d'habitude on met en place un ensemble de tests pour valider le tout :&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;Test&lt;br /&gt; {&lt;br /&gt;  Test_main()&lt;br /&gt;    {&lt;br /&gt;      AssertEq(RIBValid?('15459 45000 0411700920U 62'),true)&lt;br /&gt;      AssertEq(RIBValid?('10207 00026 04026011770 83'),true)&lt;br /&gt;      AssertEq(RIBValid?('30002 06971 0000072002D 05'),false)&lt;br /&gt;    }&lt;br /&gt;  }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Les RIB testés ci-dessus ne sont plus actifs, mais si vous voulez faire un gros virement sur un RIB actif, je peut vous communiquer le mien ,-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-4412174211277151572?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/4412174211277151572/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=4412174211277151572' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/4412174211277151572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/4412174211277151572'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2008/01/ribcontrol-saisie-et-validation-dun-rib.html' title='RIBControl : Saisie et validation d&apos;un RIB'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-5125706960912097473</id><published>2007-12-24T09:49:00.000+01:00</published><updated>2007-12-26T09:51:57.704+01:00</updated><title type='text'>Joyeux Noël et bonne année</title><content type='html'>Joyeux Noël et bonne année 2008 à tous.&lt;br /&gt;&lt;br /&gt;J'espère terminer le transfert de l'ancien SuneiDojo bientôt. et J'espère surtout à la communauté Suneido francophone de faire grandir ce site à la mesure du site Anglophone ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-5125706960912097473?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/5125706960912097473/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=5125706960912097473' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/5125706960912097473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/5125706960912097473'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/12/joyeux-nol-et-bonne-anne.html' title='Joyeux Noël et bonne année'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-130555067723330417</id><published>2007-11-26T21:51:00.000+01:00</published><updated>2007-11-26T22:03:44.386+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Field_naf : un champ donnant le code et le libellé d'un NAF</title><content type='html'>Field_naf permet la recherche d'un code NAF (Nomenclature d'Activités Française) dans la base de donnée INSEE (NAF rév. 1, 2003) et l'affichage de la désignation complète de celui-ci.&lt;br /&gt;&lt;br /&gt;Tout d'abord nous devons définir une table qui importera la Nomenclature d'Activités Française Niveau 700 (la plus détaillée, voir le site de l'&lt;a href="http://www.insee.fr/fr/nom_def_met/nomenclatures/naf/pages/naf.htm"&gt;INSEE&lt;/a&gt; pour plus de détail)&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Définition de la table NAF700&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Database("ensure naf700 (naf_code, naf_libelle) key(naf_code) index(naf_libelle)" )&lt;br /&gt;File("naf/naf_700.txt" )&lt;br /&gt; { |f|&lt;br /&gt;   while (false isnt (ligne = f.Readline()))&lt;br /&gt;     {&lt;br /&gt;       enr = Record()&lt;br /&gt;       valeurs = ligne.Split('\t')&lt;br /&gt;       for (i in valeurs.Members())&lt;br /&gt;         enr[champs1[i]] = valeurs[i]&lt;br /&gt;       QueryOutput ("naf700", enr)&lt;br /&gt;     }&lt;br /&gt; }&lt;/blockquote&gt;Cette fonction définie la table naf700 qui est composée des colonnes naf_code et naf_libelle et à comme clé primaire naf_code.&lt;br /&gt;&lt;br /&gt;Nous définissons ensuite un paramètre de champs pour un fichier d'import et importons dans la table naf700 les données du fichier naf/naf_700.txt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Définition du champs naf700&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;blockquote&gt;Field_string&lt;br /&gt; {&lt;br /&gt; Prompt: 'NAF'&lt;br /&gt; Control: (Key 'naf700' field:'naf_code', width: 4)&lt;br /&gt; Format: (Text width: 4)&lt;br /&gt; }&lt;/blockquote&gt;&lt;/span&gt;Le champ naf est défini comme un champ string qui est basé sur un contrôle Key prenant en paramètre la table naf700.&lt;br /&gt;&lt;br /&gt;Exemple dans Suneido:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0szI96yggI/AAAAAAAAAC8/uOA52kJ3De8/s1600-h/field_naf.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0szI96yggI/AAAAAAAAAC8/uOA52kJ3De8/s320/field_naf.jpg" alt="" id="BLOGGER_PHOTO_ID_5137256029099295234" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-130555067723330417?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/130555067723330417/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=130555067723330417' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/130555067723330417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/130555067723330417'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/fieldnaf-un-champ-donnant-le-code-et-le.html' title='Field_naf : un champ donnant le code et le libellé d&apos;un NAF'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0szI96yggI/AAAAAAAAAC8/uOA52kJ3De8/s72-c/field_naf.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-2182297753183874313</id><published>2007-11-26T21:42:00.000+01:00</published><updated>2007-11-26T21:58:57.817+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Une petite fonction pour convertir une somme en toutes lettres</title><content type='html'>Une petite fonction utilisant le méthode EnFrancais pour écrire une somme en euro et toute lettre.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Le code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;function(somme)&lt;br /&gt; {&lt;br /&gt;   return (somme.Int().EnFrancais())  $ " euro"&lt;br /&gt;     $ ((somme.Int())&gt;1? "s" : "" )&lt;br /&gt;     $ (somme.Frac() == 0? ( "" ) : ( " et " &lt;br /&gt;     $ ((somme.Frac())*100).Round(0).EnFrancais() &lt;br /&gt;     $ " centime" $ (((somme.Frac())*100)&gt;1? "s" : "" )))&lt;br /&gt;  }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Explications&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On décompose la somme en sa partie entière et sa partie décimale :&lt;br /&gt;-Partie entière : somme.Int()&lt;br /&gt;-Partie décimale : somme.Frac()&lt;br /&gt;&lt;br /&gt;On applique la méthode EnFrancais à ces deux parties.&lt;br /&gt;&lt;br /&gt;On rassemble le tout en tenant compte :&lt;br /&gt;-du pluriel de euro : somme.Int()&gt;1? "s" : ""&lt;br /&gt;-de l'affichage ou nom de centime : somme.Frac()==0?"": ...&lt;br /&gt;-du pluriel de centime : somme.Frac()*100&gt;1? "s" : ""&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-2182297753183874313?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/2182297753183874313/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=2182297753183874313' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/2182297753183874313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/2182297753183874313'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/une-petite-fonction-pour-convertir-une.html' title='Une petite fonction pour convertir une somme en toutes lettres'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-8391464862458951633</id><published>2007-11-26T18:52:00.000+01:00</published><updated>2007-11-26T18:56:15.017+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recette'/><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Utiliser Browse dans un Access pour les liaisons Entête Lignes (Parent Enfants, ...)</title><content type='html'>Par Jeff Ferguson Suneido Software&lt;br /&gt;Traduit par Jean Charles Hoarau&lt;br /&gt;&lt;br /&gt;Vous avez une table Entête avec une ou plusieurs tables Ligne qui ont une clé étrangère vers la table Entête et vous voulez permettre la saisie de données Lignes dans la fenêtre Entête;&lt;br /&gt;&lt;br /&gt;Nous allons utiliser l'exemple d'une facture. La facture aura des lignes normales ainsi que des lignes de port. Voici les tables :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;facture (fact_num, fact_date, fact_tiers)&lt;br /&gt;    Key(fact_num)&lt;br /&gt;&lt;br /&gt;fact_ligne (ligne_num, fact_num, ligne_desc, ligne_montant)&lt;br /&gt;    Key(ligne_num)&lt;br /&gt;    Index(fact_num) in facture&lt;br /&gt;&lt;br /&gt;fact_port(port_num, fact_num, extra_desc, extra_montant)&lt;br /&gt;    Key(port_num)&lt;br /&gt;    Index(fact_num) in facture&lt;/blockquote&gt;&lt;br /&gt;Pour gérer les clés des tables, nous définissons des règles qui retournent un Timestamp (tampon horaire). Ceci assurera que la valeur du champ est unique. De plus les clés seront renommées de façon à prévenir l'exécution des règles sur les clés étrangères des tables de détail.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Rule_fact_num_new&lt;br /&gt;function()&lt;br /&gt;    {&lt;br /&gt;    return Timestamp()&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Rule_ligne_num_new&lt;br /&gt;function()&lt;br /&gt;    {&lt;br /&gt;    return Timestamp()&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Rule_port_num_new&lt;br /&gt;function()&lt;br /&gt;    {&lt;br /&gt;    return Timestamp()&lt;br /&gt;    }&lt;/blockquote&gt;&lt;br /&gt;Il est important de définir les Champs pour les clés pour s'assurer qu'elles seront traité comme des dates.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Field_fact_num&lt;br /&gt;Field_num&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Field_fact_num_new&lt;br /&gt;Field_fact_num&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Field_ligne_num_new&lt;br /&gt;Field_num&lt;br /&gt;    {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Field_port_num&lt;br /&gt;Field_num&lt;br /&gt;    {&lt;br /&gt;    }&lt;/blockquote&gt;&lt;br /&gt;Nous avons aussi besoin de dupliquer fact_num. Nous avons besoins de fact_num_new2 parce que nous avons deux contrôles (des BrowseControl) avec le même nom dans RecordControl, les contrôles étant reconnu par leur nom.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Rule_fact_num2&lt;br /&gt;function()&lt;br /&gt;    {&lt;br /&gt;    return .fact_num_new&lt;br /&gt;    }&lt;/blockquote&gt;&lt;br /&gt;Maintenant nous devons pouvoir définir un Access pour entrer nos factures :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;FactureAccess&lt;br /&gt;#(Access "facture rename fact_num to fact_num_new"&lt;br /&gt;    (Vert&lt;br /&gt;        fact_date&lt;br /&gt;        fact_tiers&lt;br /&gt;        (Browse "fact_ligne rename ligne_num to ligne_num_new"&lt;br /&gt;            columns: (ligne_desc, ligne_montant)&lt;br /&gt;            linkField: "invoice_num",&lt;br /&gt;            name: "fact_num_new")&lt;br /&gt;        (Browse "fact_port rename port_num to port_num_new"&lt;br /&gt;            columns: (port_desc, port_montant)&lt;br /&gt;            linkField: "invoice_num",&lt;br /&gt;            name: "fact_num_new2")&lt;br /&gt;    )&lt;br /&gt; )&lt;/blockquote&gt;&lt;br /&gt;l'argument 'name' de Browse doit être un champ ou une règle de la requette maître. l'argument 'linkField' doit être un champ de la requette détail.&lt;br /&gt;&lt;br /&gt;Maintenant vous pouvez accéder à l'Access en lançant dans le WorkSpace :&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Window(FactureAccess)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-8391464862458951633?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/8391464862458951633/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=8391464862458951633' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/8391464862458951633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/8391464862458951633'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/utiliser-browse-dans-un-access-pour-les.html' title='Utiliser Browse dans un Access pour les liaisons Entête Lignes (Parent Enfants, ...)'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-7624677018006372499</id><published>2007-11-23T19:25:00.000+01:00</published><updated>2007-11-23T19:30:47.495+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recette'/><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Obtenir les lignes selectionnées d'un BrowseControl</title><content type='html'>Par Jenebelle&lt;br /&gt;Traduit par Jean-Charles Hoarau&lt;br /&gt;&lt;br /&gt;Ingrédient : BrowseControl&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Comment obtenir l'enregistrement correspondant à la ligne sélectionnée d'un BrowseControl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pour obtenir l'enregistrement de la ligne sélectionnée :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sel = browse.GetSelection()&lt;/blockquote&gt;Ceci retourne un objet contenant les index de la ou des lignes sélectionnées.&lt;br /&gt;&lt;br /&gt;Pour avoir les données d'un ligne sélectionnée :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;row = sel[0]&lt;/blockquote&gt;on obtient l'index de la première ligne sélectionnée si il y en a plusieurs.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;data = browse.GetRow(row)&lt;/blockquote&gt;data contient toutes les valeurs de tous les champs de la ligne.&lt;br /&gt;&lt;br /&gt;Exemple :&lt;br /&gt;&lt;blockquote&gt;Controller&lt;br /&gt;   {&lt;br /&gt;   Controls: #(Vert&lt;br /&gt;       (Browse 'tables')&lt;br /&gt;       (Button "Montrer l enregistrement"))&lt;br /&gt;   On_Montrer_l_enregistrement()&lt;br /&gt;       {&lt;br /&gt;       browse = .Vert.Browse&lt;br /&gt;       selected = browse.GetSelection()&lt;br /&gt;       if selected.Empty?()&lt;br /&gt;           {&lt;br /&gt;           Alert("Vous n'avez pas selectionné de ligne")&lt;br /&gt;           return&lt;br /&gt;           }&lt;br /&gt;       if selected.Size() &gt; 1&lt;br /&gt;           {&lt;br /&gt;           Alert("Vous ne pouvez selectionner qu'une ligne")&lt;br /&gt;           return&lt;br /&gt;           }&lt;br /&gt;       index = selected[0]&lt;br /&gt;       rec = browse.GetRow(index)&lt;br /&gt;       Alert('Vous avez selectionné la table ' $ Display(rec.tablename))&lt;br /&gt;       }&lt;br /&gt;   }&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-7624677018006372499?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/7624677018006372499/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=7624677018006372499' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/7624677018006372499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/7624677018006372499'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/obtenir-les-lignes-selectionnes-dun.html' title='Obtenir les lignes selectionnées d&apos;un BrowseControl'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-7026004696082339553</id><published>2007-11-23T19:13:00.000+01:00</published><updated>2007-11-23T19:21:32.720+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recette'/><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Utiliser Excel avec Suneido</title><content type='html'>Lire et écrire dans un document Excel à partir de Suneido (testé par moi-même (le traducteur) avec Excel 2002 sur Windows 2000)&lt;br /&gt;&lt;br /&gt;Par Claudio Mascioni&lt;br /&gt;Traduit par Jean-charles Hoarau&lt;br /&gt;Ingrédients : COMobject&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Recette&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Pour Ouvrir une feuille excel à partir de Suneido&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;excelapp = COMobject("Excel.Application")&lt;br /&gt;excelapp.Visible = true&lt;br /&gt;   // true = montre la fenetre excel&lt;br /&gt;   // false = cache la fenetre excel&lt;br /&gt;wrkbks = excelapp.Workbooks.Open("c:/test.xls") // le fichier Excel à ouvrir&lt;br /&gt;wrkbks.Release()&lt;br /&gt;excelapp.Release() // pour libérer la mémoire occupée par Excel&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Pour obtenir la valeur d'une cellule d'une feuille Excel&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;excelapp = COMobject("Excel.Application")&lt;br /&gt;excelapp.Visible = false    // cache la fenetre excel&lt;br /&gt;wrkbks = excelapp.Workbooks.Open('c:/test.xls')&lt;br /&gt;cellvalue = excelapp.Cells(2,2).Value // retourne la valeur de la cellule B2&lt;br /&gt;wrkbks.Close    // ferme la feuille Excel  &lt;br /&gt;Print(Display(cellvalue))&lt;br /&gt;wrkbks.Release()&lt;br /&gt;excelapp.Release()&lt;/blockquote&gt;NdT : si vous essayer de lire un nombre flottant (25.00) dans une cellule Excel vous obtiendrez une erreur car les nombres flottants ne sont pas gérés dans l'interface COM de Suneido. Il semblerait que cela ne soit pas très compliqué à mettre en œuvre (fichier sucomobject.cpp méthode com2su) mais comme mes connaissances en C sont nulles alors si cela vous tente...&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Pour écrire une valeur dans une cellule d'une feuille Excel existante et sauvegarder la feuille&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;excelapp = COMobject("Excel.Application")&lt;br /&gt;excelapp.Visible = true;    // montre la fenêtre&lt;br /&gt;wrkbks = excelapp.Workbooks.Open("c:\\test.xls")&lt;br /&gt;excelapp.Cells(2,2).Value = Display(Timestamp()) // écrit quelque chose dans la cellule B2&lt;br /&gt;wrkbks.Save&lt;br /&gt;wrkbks.Close&lt;br /&gt;wrkbks.Release()&lt;br /&gt;excelapp.Release()&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Pour écrire une valeur dans une cellule d'une nouvelle feuille Excel et la montrer&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;excelapp = COMobject("Excel.Application")&lt;br /&gt;excelapp.Visible = true;&lt;br /&gt;wrkbks = excelapp.Workbooks.Add()&lt;br /&gt;excelapp.Cells(2,2).Value = Display(Timestamp())&lt;br /&gt;wrkbks.Release()&lt;br /&gt;excelapp.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour écrire une valeur dans une cellule d'une nouvelle feuille Excel et enregistrer la feuille&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;blockquote&gt;excelapp = COMobject("Excel.Application")&lt;br /&gt;excelapp.Visible = false;   // cache la fenêtre&lt;br /&gt;wrkbks = excelapp.Workbooks.Add()&lt;br /&gt;excelapp.Cells(2,2).Value = Display(Timestamp())&lt;br /&gt;wrkbks.SaveAs("c:\\testnew.xls")&lt;br /&gt;wrkbks.Close&lt;br /&gt;wrkbks.Release()&lt;br /&gt;excelapp.Release()&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Pour changer le nom des feuilles affichées dans les onglets et écrire une valeur dans chacune d'elle&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;Modifié car la version d'origine ne fonctionne pas sur Excel 2002/Windows 2000&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;excelapp = COMobject("Excel.Application")&lt;br /&gt;excelapp.Visible = true;&lt;br /&gt;wrkbks = excelapp.Workbooks.Add()&lt;br /&gt;//&lt;br /&gt;sheet1 = wrkbks.WorkSheets.Add() // original : sheet1 = wrkbks.WorkSheets.(1)&lt;br /&gt;sheet1.Name = 'nameofsheet1'   // change le non de la feuille&lt;br /&gt;sheet1.Cells(1,1).Value = 'valuesheet1' // on écrit quelque chose&lt;br /&gt;//&lt;br /&gt;sheet2 = wrkbks.WorkSheets.Add() // original : sheet1 = wrkbks.WorkSheets.(2)&lt;br /&gt;sheet2.Name = 'nameofsheet2'&lt;br /&gt;sheet2.Cells(2,2).Value = 'valuesheet2'&lt;br /&gt;//&lt;br /&gt;sheet3 = wrkbks.WorkSheets.Add() //  original  :sheet1 = wrkbks.WorkSheets.(3)&lt;br /&gt;sheet3.Name = 'nameofsheet3'&lt;br /&gt;sheet3.Cells(3,3).Value = 'valuesheet3'&lt;br /&gt;//&lt;br /&gt;wrkbks.Release()&lt;br /&gt;sheet1.Release()&lt;br /&gt;sheet2.Release()&lt;br /&gt;sheet3.Release()&lt;br /&gt;excelapp.Release()&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;ps. copier et coller ce code dans votre espace de travail pour tester si cela marche chez vous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-7026004696082339553?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/7026004696082339553/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=7026004696082339553' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/7026004696082339553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/7026004696082339553'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/utiliser-excel-avec-suneido.html' title='Utiliser Excel avec Suneido'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-3395148956443885526</id><published>2007-11-22T22:20:00.000+01:00</published><updated>2007-11-23T11:49:10.451+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recette'/><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Maintenir plusieurs bases de données</title><content type='html'>Par Biame&lt;br /&gt;Traduit par Jean Charles Hoarau&lt;br /&gt;&lt;br /&gt;Est-ce qu'une méthode de travail avec différentes bases Suneido peut vous aider et rendre les développements plus simples? Quels en sont les bénéfices ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Bénéfices&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Chaque projet est « propre » avec seulement « stdlib » et la ou les librairies que vous désirez&lt;/li&gt;&lt;li&gt;Lancer Suneido ou votre application depuis le bureau ou le menu démarrer&lt;/li&gt;&lt;li&gt;Faire cohabiter plusieurs bases de données ou versions de librairie dans différents dossiers&lt;/li&gt;&lt;li&gt;... utiliser seulement une copie de l'exécutable suneido.exe&lt;/li&gt;&lt;li&gt;retour en arrière et contrôle de version facilité&lt;/li&gt;&lt;li&gt;lancer plusieurs espace de travail et vues des bibliothèques en même temps&lt;/li&gt;&lt;li&gt;lancer des tests tout en continuant à développer&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Il y en a surement d'autres&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Comment?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;installer votre suneido comme d'habitude avec l'installateur.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;optionnel : je fait une copie de la base standard suneido.db, la renomme base-suneido.db et la met en lecture seule&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;optionnel : mettre votre dossier d'installation de Suneido dans votre PATH&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;faire un raccourci pour Suneido.exe&lt;br /&gt;&lt;br /&gt;Pour chaque projet (par exemple « CRM »)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;créer un répertoire « c:\projets\CRM »&lt;/li&gt;&lt;li&gt;copier la base suneido.db dans le dossier de votre projet c:\projets\CRM\&lt;/li&gt;&lt;li&gt;copier le raccourci Suneido dans le dossier de votre projet c:\projets\CRM\&lt;/li&gt;&lt;li&gt;Modifier le dossier de démarrage du raccourci Suneido par le dossier de votre projet c:\projets\CRM\&lt;/li&gt;&lt;li style="font-style: italic;"&gt;optionnel : renommer le raccourci Suneido en quelque chose comme « CRM Suneido »&lt;/li&gt;&lt;li&gt;c'est terminé&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Maintenant quand vous cliquer sur le raccourci « CRM Suneido », votre projet ou application démarre Suneido avec la base de donnée située dans le dossier CRM : c:\projets\CRM\suneido.db&lt;br /&gt;... et pas la base de donnée installée dans le répertoire Suneido&lt;br /&gt;&lt;br /&gt;Remarque de A. McKinlay : Lors d'une mise à jour de Suneido, vous devez importer dans la base de donnée de votre projet les  stdlib, suneidoc et imagebook de la base d'origine mise à jour (on peut créer un fichier .bat pour automatiser tout cela).&lt;br /&gt;&lt;br /&gt;Remarque du Traducteur : lorsque voulez travailler en ligne de commande sur votre projet il faut taper : Suneido.lnk -r pour reconstruire la base par exemple (noter bien le .lnk)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-3395148956443885526?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/3395148956443885526/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=3395148956443885526' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/3395148956443885526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/3395148956443885526'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/maintenir-plusieurs-bases-de-donnes.html' title='Maintenir plusieurs bases de données'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-1591599298287816523</id><published>2007-11-20T22:37:00.000+01:00</published><updated>2007-11-22T22:19:21.479+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>La syntaxe de Suneido - Les types de données</title><content type='html'>&lt;span style="font-size:130%;"&gt;Ce manuel est inspiré par le Manuel Syntax de Ajith.R&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tout langage de programmation manipule des données. Suneido (comme d'autres langages) divise les données en plusieurs types. Ce sont Boolean, Number, String, Date &amp;amp; Object. Je laisse de coté les autres types de données appelés Symbol et Buffer intentionnellement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Boolean&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un booléen représente une présence ou une absence, un oui ou un non, vrai ou faux.&lt;br /&gt;&lt;br /&gt;Quelque chose (une question) qui génère l'une de ces valeurs produit une donnée booléenne.&lt;br /&gt;&lt;br /&gt;Dans Suneido, les valeurs booléennes sont représentées par &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;true &lt;/span&gt;et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;. &lt;/span&gt;Rien d'autre ne peut représenter une valeur booléenne.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Number&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans Suneido un nombre peut être représenté dans trois systèmes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;décimal : Un nombre représenté en système décimal ne peut pas commencer par &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0&lt;/span&gt;. Il peut commencer par un chiffre compris entre &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;1 &lt;/span&gt;et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;9&lt;/span&gt;. Il peut contenir un &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0&lt;/span&gt; à toutes les autres positions.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;octal : Un nombre représenté en système octal peut commencer par un &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0&lt;/span&gt;. Il peut contenir des chiffre de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;1&lt;/span&gt; à&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt; 7&lt;/span&gt; mais ni &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;8&lt;/span&gt; ni &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;9.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;hexadécimal : Pour représenter un nombre en hexadécimal, il doit commencer par &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0x&lt;/span&gt;. Il peut contenir tous les chiffres et des lettres de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;a&lt;/span&gt; à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;f&lt;/span&gt; en majuscule ou minuscule (le &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;x&lt;/span&gt; aussi).&lt;/li&gt;&lt;/ul&gt;Dans toutes les représentations d'un nombre, un signe &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;+&lt;/span&gt; ou &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;-&lt;/span&gt; est permis devant le nombre pour représenter une valeur positive ou négative. Ainsi, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;21&lt;/span&gt;, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;025&lt;/span&gt;, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0x15&lt;/span&gt; représente la même valeur dans différent système numérique. De même, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;-21&lt;/span&gt;, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;-O25&lt;/span&gt;, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;-Ox15&lt;/span&gt; sont identique mais différent de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;21&lt;/span&gt; ou &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;+0x15&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Les nombres écrits en système décimal peuvent avoir une partie décimale représentée par un point (.) suivi d'un nombre quelconque de chiffres. Seuls les chiffres sont autorisés après le point décimal, aucune des lettres de l'alphabet hexadécimal n'est permis. Si un point suit un nombre octal, il est considéré comme un nombre décimal.&lt;br /&gt;&lt;br /&gt;Ainsi, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;123.123&lt;/span&gt; est valide. &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0123.123&lt;/span&gt; est la même chose que &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;123.123&lt;/span&gt;. &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0x7b.123&lt;/span&gt; n'est pas valide. &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0x7b.0x7b &lt;/span&gt;n'est pas valide.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans Suneido, une chaîne est un nombre quelconque de caractères entourés par des guillemets. Les guillemets peuvent être simples ' ou doubles ", mais le même type doit être utilisé pour le début et la fin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"suneido" &lt;/span&gt;et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;'suneido' &lt;/span&gt;représente tous les deux la chaîne &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;suneido&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Si vous avez un type différent de guillemets à l'intérieur des guillemets de début et de fin, ils sont considérés comme faisant partie de la chaîne. Les guillemets de début et de fin marque la chaîne, mais ne fait pas partie de celle ci.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"Suneido, 'génial!'"&lt;/span&gt;  représente la chaîne &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Suneido, 'génial!'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Si vous voulez avoir un guillemet du même type que ceux entourant la chaîne  à l'intérieur de celle ci, vous devez le précédé d'un antislash (&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;\&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"Suneido, \"génial!\""&lt;/span&gt; représente la chaîne &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Suneido, "génial!"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Notez que l'antislash n'est pas compté comme un caractère de la chaîne, mais précise que le caractère suivant à une signification particulière ou à perdu sa signification particulière. On l'utilise pour insérer un guillemet, mais aussi dans d'autres situations :&lt;br /&gt;- Antislash suivi de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;n &lt;/span&gt;signifie un passage à la ligne : &lt;span style="color: rgb(51, 0, 153);"&gt;"Suneido, \nc'est génial!"&lt;/span&gt; représente la chaîne &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Suneido, &lt;/span&gt; &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;c'est génial!&lt;/span&gt;&lt;br /&gt;- Antislash suivi de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;t &lt;/span&gt;signifie une tabulation : &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"Suneido, \tc'est génial!" &lt;/span&gt;représente la chaîne &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Suneido,           c'est génial!&lt;/span&gt;&lt;br /&gt;- Antislash suivi de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;r&lt;/span&gt; signifie un retour à la ligne : semble identique à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;\n&lt;/span&gt;&lt;br /&gt;- Deux antislash signifie qu'un antislash est inséré dans la chaîne : &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"Suneido\\Suneida"&lt;/span&gt; représente la chaîne Suneido\Suneida&lt;br /&gt;&lt;br /&gt;Notez qu'un antislash n'impacte qu'&lt;span style="font-weight: bold;"&gt;un seul caractère&lt;/span&gt; sauf dans deux cas précis :&lt;br /&gt;- l'antislash suivi de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;x&lt;/span&gt; et de deux chiffres ou lettres hexadécimales  est utilisé pour représenter une valeur hexadécimale.&lt;br /&gt;- l'antislash suivi de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;0&lt;/span&gt; et trois chiffres octaux est utilisé pour représenter une valeur octale.&lt;br /&gt;&lt;br /&gt;Notez que dans ces deux cas, à moins que les deux ou trois caractères suivant l'antislash forment une valeur octale ou hexadécimale valide, tous les caractères sont inclus dans la chaîne y compris l'antislash.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Date&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dans Suneido une date est représentée de la façon suivante :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#AAAAMMJJ.HHMMSSmmm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Chaque date commence par un dièse (&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#&lt;/span&gt;). Huit chiffres suivent le dièse et éventuellement un point suivi d'au plus neuf chiffres. Les huit chiffres suivant le dièse sont obligatoire, mais pas le point ni les neuf chiffres suivants. Toutes les positions ont une tranche de valeur valide.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;AAAA&lt;/span&gt; : représente l'année et doit former une année valide. Bien que Suneido ne gère que les années après 1600, seule la valeur 0000 est refusée.&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;MM&lt;/span&gt; : représente le mois et doit être compris entre 00 et 12. Vous ne devez pas oublier le 0 devant les mois à un chiffre.&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;JJ &lt;/span&gt;: représente le jour et doit être un jour valide du mois et de l'année défini par AAAAMM. Ici aussi il ne faut pas oublier le 0 sur les jours à un chiffre.&lt;br /&gt;&lt;br /&gt;Si vous avez un point, au moins un chiffre doit suivre.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;HH&lt;/span&gt; : représente les heures et doit être compris entre 00 et 23. Si seulement un chiffre est entré après le point alors &lt;span style="color: rgb(51, 0, 153);"&gt;HH&lt;/span&gt; vaut &lt;span style="color: rgb(51, 0, 153);"&gt;00&lt;/span&gt;.&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;MM&lt;/span&gt; : représente les minutes et doit être compris entre 00 et 59. Si il y a moins de quatre chiffres après le point alors &lt;span style="color: rgb(51, 0, 153);"&gt;MM&lt;/span&gt; vaut &lt;span style="color: rgb(51, 0, 153);"&gt;00&lt;/span&gt;.&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;SS&lt;/span&gt; : représente les secondes et doit être compris entre 00 et 59. Si il y a moins de six chiffres après le point alors&lt;span style="color: rgb(51, 0, 153);"&gt; SS&lt;/span&gt; vaut &lt;span style="color: rgb(51, 0, 153);"&gt;00&lt;/span&gt;.&lt;br /&gt;- &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;mmm&lt;/span&gt; : représente les millisecondes et doit être compris entre 000 et 999. Si il y a moins de neuf chiffres après le point alors &lt;span style="color: rgb(51, 0, 153);"&gt;mmm &lt;/span&gt;vaut &lt;span style="color: rgb(51, 0, 153);"&gt;000&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ainsi &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104&lt;/span&gt; représente le 4 Janvier 2005. Les heures les minutes, secondes et millisecondes sont à 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#200514&lt;/span&gt; n'est pas valide puisqu'il n'y a que 6 chiffres.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20051412&lt;/span&gt; n'est pas valide puisque 14 ne représente pas un mois valide.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104.&lt;/span&gt; n'est pas valide puisqu'une date ne peut pas se terminer par un .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104.01&lt;/span&gt; représente le 4 janvier 2005 1 heure. Les minutes, secondes et millisecondes sont à 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104.014 &lt;/span&gt;représente le 4 Janvier 2005 1 heure. Les minutes n'ayant qu'un chiffre ils sont à 0. Les secondes et millisecondes sont à 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153); font-style: italic;"&gt;#20050104.0104&lt;/span&gt; représente le 4 janvier 2005 1 heure 4 minutes. Les secondes et millisecondes sont à 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104.010405 &lt;/span&gt;représente le 4 janvier 2005 1 heure 4 minutes 5 secondes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104.010405010&lt;/span&gt; représente le 4 janvier 2005 1 heure 4 minutes 5 secondes et 10 millisecondes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Object&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un Objet est un conteneur. Il contient un ou plusieurs autres types de données. Il s'écrit &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt; ou &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#().&lt;/span&gt; Ce qu'il contient est écrit entre les parenthèses et séparé par une virgule.&lt;br /&gt;&lt;br /&gt;Par exemple &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("votre nom", 26, #20050104)&lt;/span&gt; est un objet. Notre exemple contient les données suivantes :&lt;br /&gt;- une chaîne : "votre nom"&lt;br /&gt;- un nombre : 26&lt;br /&gt;- une date : #20050104&lt;br /&gt;&lt;br /&gt;La virgule n'est pas indispensable. Ainsi notre exemple pourra s'écrire &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("votre nom" 26 #20050104)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Chaque valeur appartient à un membre. Les noms des membres sont déclarés ainsi : &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(nom:"votre nom", age:26, dateentree:#20050104)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Notez qu'aucun des noms de membre ne sont entourés par des guillemets. Notre exemple &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("votre nom" 26 #20050104)&lt;/span&gt; est équivalent à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(0:"votre nom" 1:"26 2:#20050104)&lt;/span&gt;. En d'autres termes, "votre nom" est la valeur assigné au membre 0 de l'objet, 26 au membre 1 et &lt;span style="color: rgb(51, 0, 153);"&gt;#20050104&lt;/span&gt; au membre 2. Si vous ne fournissez qu'une liste de valeur à un objet, alors ils sont assignés à des membres numérotés depuis 0.&lt;br /&gt;&lt;br /&gt;Il n'est pas nécessaire que toutes les valeurs soient nommées ou non nommées. Vous pouvez avoir un mixte des deux : &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(nom:"votre nom", 26, dateentree:#20050104)&lt;/span&gt;. Ici "votre nom" est la valeur du membre nom, 26 est la valeur du membre 0 (puisque c'est la première valeur non nommée) et #20050104 est la valeur du membre dateentree.&lt;br /&gt;&lt;br /&gt;Si vous spécifiez un nom de membre, mais pas de valeur, alors la valeur du membre est true. Par exemple &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(sexemasculin:) &lt;/span&gt;est équivalent à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(sexemasculin:true)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Un objet peut avoir d'autres objets comme valeur : &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(nom:"votre nom", 26, dateentree: #20050104, #(poste:"PDG", #20050104), true)&lt;/span&gt;. Dans cet exemple, il y a 3 valeurs non nommées &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;26 &lt;/span&gt;un nombre membre 0, &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(poste:"PDG", #20050104)&lt;/span&gt; un objet membre 1 et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;true &lt;/span&gt;un booléen membre 2, et deux valeurs nommées &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"votre nom"&lt;/span&gt; assigné à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;nom &lt;/span&gt;et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#20050104&lt;/span&gt;  assigné à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt; dateentree&lt;/span&gt;. Le membre nommé &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;poste &lt;/span&gt;ayant la valeur &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;"PDG"&lt;/span&gt; ne fait pas directement partie de notre objet. C'est un membre du deuxième membre de notre objet.&lt;br /&gt;&lt;br /&gt;Ainsi les objets peuvent représenter des tableaux à une ou plusieurs dimensions.&lt;br /&gt;&lt;br /&gt;Comme indiqué ci-dessus, un objet peut être écrit &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt; ou &lt;span style="color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt;. Bien que les deux notations décrivent un objet, il y a des différences.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt; décrit un objet statique et &lt;span style="color: rgb(51, 0, 153); font-style: italic;"&gt;Object() &lt;/span&gt;un objet modifiable. Dans un &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt;, toutes les valeurs sont considérées comme des valeurs statiques. Si on écrit &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(monnom)&lt;/span&gt; cela équivaut à &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("monnom")&lt;/span&gt;. Si on écrit &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object(monnom)&lt;/span&gt;, Suneido va vérifier si une variable &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;monnom &lt;/span&gt;existe, si c'est le cas sa valeur sera assigné au premier membre de l'objet, sinon une erreur signalera qu'il n'y a pas de variable &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;monnom&lt;/span&gt;. Pour spécifier que &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;monnom &lt;/span&gt;est une chaîne vous devrez l'entourer de guillemet &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object("monnom")&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Une autre différence concerne les membres de l'objet. Dans un &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt;, si vous avez un autre objet (qui ne peut être que statique), il peut être représenté seulement par des parenthèses. Le # n'est pas nécessaire. Mais à l'intérieur d'un&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt; Object()&lt;/span&gt;, vous pouvez inclure un objet statique ou modifiable et le # ne peut être omis. Dans &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt; vous ne pouvez inclure &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt;, mais dans &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt; vous pouvez inclure &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt; ou &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt;. Vous pouvez assigner la valeur retournée par une fonction à un membre de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt; mais pas à un membre de &lt;span style="color: rgb(51, 0, 153); font-style: italic;"&gt;#()&lt;/span&gt;. De même des classes peuvent être assignées à des membres de &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object()&lt;/span&gt; mais pas de &lt;span style="color: rgb(51, 0, 153);"&gt;#()&lt;/span&gt;. Enfin si vous avez des valeurs nommées et non nommées dans un &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Oject()&lt;/span&gt;, les valeurs nommées doivent être placées après les valeurs non nommées.&lt;br /&gt;&lt;br /&gt;Par exemple &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(Date()) &lt;/span&gt;représente &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("Date" #())&lt;/span&gt;, un objet avec deux membres, le premier un chaîne et le second un objet statique vide. &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object(Date())&lt;/span&gt; est un objet modifiable avec un membre dont la valeur est le résultat de la fonction &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Date() &lt;/span&gt;(la date système).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("monnom" Object())&lt;/span&gt; n'est pas valide alors que &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object("monnom" Object()) &lt;/span&gt;est un objet valide modifiable avec deux membres. Si vous tapez &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;x=26 &lt;/span&gt;et ensuite &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(x)&lt;/span&gt; dans l'espace de travail, la valeur imprimée sera &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("x")&lt;/span&gt;. Mais si vous tapez &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;x=26 &lt;/span&gt;et ensuite &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object(x)&lt;/span&gt;, la valeur imprimée sera &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#(26)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Attention &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("monnom", 26, #20050105) &lt;/span&gt;et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object("monnom", 26, #20050105)&lt;/span&gt; sont égaux bien que le premier représente un objet statique et le second un objet modifiable, puisque qu'ils ont les mêmes valeurs assignées au mêmes membres. Mais &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;#("monnom", 26, #20050105)&lt;/span&gt; et &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;Object(26, #20050105, "monnom")&lt;/span&gt; ne sont pas égaux bien qu"ils aient les mêmes valeurs, mais elles ne sont pas assignées aux mêmes membres.&lt;br /&gt;&lt;br /&gt;Record sont comme des objets. La différences est qu'ils sont représentés par des &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;{} &lt;/span&gt;au lieu des &lt;span style="font-style: italic; color: rgb(51, 0, 153);"&gt;()&lt;/span&gt; et qu'ils n'ont que des membres nommées, bien qu'ils soit autorisé d'avoir des membres non nommées. Ici aussi, il y a des Record statiques et modifiables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-1591599298287816523?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/1591599298287816523/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=1591599298287816523' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/1591599298287816523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/1591599298287816523'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/la-syntaxe-de-suneido-les-types-de.html' title='La syntaxe de Suneido - Les types de données'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-6901279572369388430</id><published>2007-11-20T22:16:00.000+01:00</published><updated>2007-11-20T22:30:07.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>Installer Suneido</title><content type='html'>&lt;span style="font-size:180%;"&gt;Comment télécharger Suneido, l'installer et le paramétrer en langue française.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Téléchargement de Suneido&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vous pouvez vous procurer la dernière version du logiciel sur le &lt;a href="http://www.suneido.com/"&gt;site officiel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Mise en route&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Vous avez téléchargé un fichier SuneidoSetupAAMMJJ.exe où AA=année, MM=mois et JJ=jour.&lt;br /&gt;Cliquez sur ce fichier et suivez les instructions en anglais.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Paramétrage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nous allons installer la version en langue française.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fermez Suneido&lt;/li&gt;&lt;li&gt;Ouvrez la ligne de commande dans démarrez / exécutez ou appuyez en même temps sur la Touche Windows et sur R, et tapez :&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;C:\Suneido\suneido -load translatelanguage&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;et ouvrez une fenêtre MS-Dos et saisissez :&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;C:\Suneido&gt; suneido -load FrenchSuneidoc&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Ouvrez Suneido et dans Workspace, dans le menu IDE, sélectionnez Library View. Ensuite dans la librairie stdlib, cliquez sur init. Dans la ligne :&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Suneido.Language = #(name:"english", charset: "DEFAULT")&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;remplacez "english" par "french" pour avoir la langue française par défaut.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;(La manœuvre inverse vous ramènerait de la langue de Molière à la langue de Shakespeare). Les messages ne sont pas traduits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-6901279572369388430?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/6901279572369388430/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=6901279572369388430' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6901279572369388430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6901279572369388430'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/installer-suneido.html' title='Installer Suneido'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-3149709924024024520</id><published>2007-11-20T22:04:00.000+01:00</published><updated>2007-11-21T10:17:35.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Recette'/><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>Utiliser Word avec Suneido</title><content type='html'>Lire et écrire dans un document Word à partir de Suneido (testé par Claudio avec Word 97 sur Windows 98 et par moi-même (le traducteur) avec Word 2002 sur Windows 2000)&lt;br /&gt;&lt;br /&gt;Auteur : Claudio Mascioni&lt;br /&gt;Traducteur : Jean Charles Hoarau&lt;br /&gt;Ingrédients : COMobject&lt;br /&gt;&lt;br /&gt;Quelques documentations sur Word 97 :&lt;br /&gt;&lt;a href="http://www.microsoft.com/officedev/articles/Opg/intro/intro.htm"&gt;http://www.microsoft.com/officedev/articles/Opg/intro/intro.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dno97ta/html/msdn_autooff.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dno97ta/html/msdn_autooff.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Recette&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Pour ouvrir un document dans une fenêtre Word&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.WindowState = 0             // 0 = défaut, 1=agrandi, 2=réduit&lt;br /&gt;word.Visible= true             // true = montre la fenêtre Word, false = cache la fenêtre Word&lt;br /&gt;doc= word.Documents.Open("c:\\test.doc")&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour ouvrir un document dans Word et l'imprimer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.WindowState = 0&lt;br /&gt;word.Visible= true&lt;br /&gt;doc= word.Documents.Open("c:\\test.doc")&lt;br /&gt;doc.PrintOut()&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour écrire dans un nouveau document word et changer la police&lt;/span&gt;&lt;blockquote&gt;&lt;br /&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Add()&lt;br /&gt;word.Selection.Font.Name = 'Times New Roman';&lt;br /&gt;word.Selection.Font.Size = 18;&lt;br /&gt;word.Selection.Font.Bold = true;&lt;br /&gt;word.Selection.Font.Italic = true;&lt;br /&gt;word.Selection.TypeText("Bonjour ")&lt;br /&gt;word.Selection.Font.Name = 'Arial';&lt;br /&gt;word.Selection.Font.Size = 12;&lt;br /&gt;word.Selection.Font.Bold = false;&lt;br /&gt;word.Selection.TypeText("de ")&lt;br /&gt;word.Selection.Font.Name = 'Times New Roman';&lt;br /&gt;word.Selection.Font.Size = 14;&lt;br /&gt;word.Selection.Font.Bold = true;&lt;br /&gt;word.Selection.Font.Underline = true;&lt;br /&gt;word.Selection.TypeText("Suneido!")&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour remplacer des mots dans un document Word&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Open("c:\\test.doc")&lt;br /&gt;// merci à Björn Lietz-Spendig&lt;br /&gt;word.Selection.Find.Execute("@CUSTOMERCODE@ &amp;lt;mailto:CUSTOMERCODE@&gt;",False,True,False,False,False,True,1,False,"CUSTXYZ",2)&lt;br /&gt;//&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour ecrire dans un nouveau document word et l'enregistrer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Add()&lt;br /&gt;range = doc.Range(0,0)     // définit la position dans le document&lt;br /&gt;range.InsertBefore("Bonjour de Suneido!")&lt;br /&gt;// ou range.InsertAfter("Bonjour de Suneido!")&lt;br /&gt;doc.SaveAs("c:\\test.doc")&lt;br /&gt;word.Documents.Close()  // ferme le document&lt;br /&gt;range.Release()&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour créer un tableau dans Word et écrire dans ses cellules&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Add()&lt;br /&gt;wtable = doc.Tables.Add(word.Selection.Range, 3, 3);     // colonnes, lignes&lt;br /&gt;//&lt;br /&gt;wtable.Cell(1, 2).Range.Font.Name = 'Times New Roman';&lt;br /&gt;wtable.Cell(1, 2).Range.Font.Size = 18;&lt;br /&gt;wtable.Cell(1, 2).Range.Bold = true;&lt;br /&gt;wtable.Cell(1, 2).Range.Font.Italic = true;&lt;br /&gt;wtable.Cell(2, 1).Range.ParagraphFormat.Alignment = 1 // 0= gauche, 1=centrer, 2=droite&lt;br /&gt;wtable.Cell(1, 2).Range.Text = 'ligne1-colonne2' // ligne, colonne&lt;br /&gt;//&lt;br /&gt;wtable.Cell(2, 1).Range.Font.Name = 'Arial';&lt;br /&gt;wtable.Cell(2, 1).Range.Font.Size = 12;&lt;br /&gt;wtable.Cell(2, 1).Range.Bold = false;&lt;br /&gt;wtable.Cell(2, 1).Range.ParagraphFormat.Alignment = 2&lt;br /&gt;wtable.Cell(2, 1).Range.Text = 'ligne2-colonne1'&lt;br /&gt;//&lt;br /&gt;wtable.Cell(3, 3).Range.Font.Name = 'Times New Roman';&lt;br /&gt;wtable.Cell(3, 3).Range.Font.Size = 14;&lt;br /&gt;wtable.Cell(3, 3).Range.Bold = true;&lt;br /&gt;wtable.Cell(3, 3).Range.Font.Underline = true;&lt;br /&gt;wtable.Cell(2, 1).Range.ParagraphFormat.Alignment = 0&lt;br /&gt;wtable.Cell(3, 3).Range.Text = 'ligne3-colonne3'&lt;br /&gt;//&lt;br /&gt;wtable.Release()&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Autres propriétés des polices&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Range.Font.Emboss = true&lt;br /&gt;Range.Font.Engrave = true&lt;br /&gt;Range.Font.Kerning = true&lt;br /&gt;Range.Font.Shadow = true&lt;br /&gt;Range.Font.StrikeThrough = true&lt;br /&gt;Range.Font.Subscript = true&lt;br /&gt;Range.Font.Superscript = true&lt;br /&gt;Range.Font.Color:= wdColorBlue;&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour lire des valeurs dans un document Word&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Open("c:\\test.doc")&lt;br /&gt;wtable = word.ActiveDocument.Tables.Item(1);&lt;br /&gt;tCols = wtable.Rows.Count;&lt;br /&gt;tRows = wtable.Columns.Count;&lt;br /&gt;cellText = wtable.Cell(1, 2).Range.Text;  // Cell(x,x) commence à 1,1&lt;br /&gt;//&lt;br /&gt;// enlève les tabs et les retours à la lignes de celltext&lt;br /&gt;// "\x0D" ctrl M - CR,  "\x07" ctrl G - Bell&lt;br /&gt;cellValue = cellText.Tr("\x0D").Tr("\x07")&lt;br /&gt;//&lt;br /&gt;Print(Display(cellValue))&lt;br /&gt;//&lt;br /&gt;wtable.Release()&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Mise en page des documents&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;doc.PageSetup.LeftMargin = 100   // en points&lt;br /&gt;doc.PageSetup.RightMargin = 200&lt;br /&gt;doc.PageSetup.TopMargin = 300&lt;br /&gt;doc.PageSetup.BottomMargin = 300&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Pour changer les propriétés du document Word &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Open("c:\\test.doc")&lt;br /&gt;//&lt;br /&gt;word.ActiveDocument.BuiltInDocumentProperties(0x00000001).Value = 'Titre du document';&lt;br /&gt;word.ActiveDocument.BuiltInDocumentProperties(0x00000002).Value = 'Sujet du document';&lt;br /&gt;word.ActiveDocument.BuiltInDocumentProperties(0x00000003).Value = 'Auteur du document';&lt;br /&gt;word.ActiveDocument.BuiltInDocumentProperties(0x00000005).Value = 'Commentaires du document';&lt;br /&gt;//&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;Quelques BuiltInDocumentProperties:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;  wd_Title = 0x00000001&lt;br /&gt; wd_Subject = 0x00000002&lt;br /&gt; wd_Author = 0x00000003&lt;br /&gt; wd_Keywords = 0x00000004&lt;br /&gt; wd_Comments = 0x00000005&lt;br /&gt; wd_Template = 0x00000006&lt;br /&gt; wd_LastAuthor = 0x00000007&lt;br /&gt; wd_Revision = 0x00000008&lt;br /&gt; wd_AppName = 0x00000009&lt;br /&gt; wd_TimeLastPrinted = 0x0000000A&lt;br /&gt; wd_TimeCreated = 0x0000000B&lt;br /&gt; wd_TimeLastSaved = 0x0000000C&lt;br /&gt; wd_VBATotalEdit = 0x0000000D&lt;br /&gt; wd_Pages = 0x0000000E&lt;br /&gt; wd_Words = 0x0000000F&lt;br /&gt; wd_Characters = 0x00000010&lt;br /&gt; wd_Security = 0x00000011&lt;br /&gt; wd_Category = 0x00000012&lt;br /&gt; wd_Format = 0x00000013&lt;br /&gt; wd_Manager = 0x00000014&lt;br /&gt; wd_Company = 0x00000015&lt;br /&gt; wd_Bytes = 0x00000016&lt;br /&gt; wd_Lines = 0x00000017&lt;br /&gt; wd_Paras = 0x00000018&lt;br /&gt; wd_Slides = 0x00000019&lt;br /&gt; wd_Notes = 0x0000001A&lt;br /&gt; wd_HiddenSlides = 0x0000001B&lt;br /&gt; wd_MMClips = 0x0000001C&lt;br /&gt; wd_HyperlinkBase = 0x0000001D&lt;br /&gt; wd_CharsWSpaces = 0x0000001E&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Pour obtenir la langue par défaut de Word&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;word = COMobject("Word.Application")&lt;br /&gt;word.Visible = true&lt;br /&gt;doc = word.Documents.Open("c:\\test.doc")&lt;br /&gt;Print(Display(word.System.Country)); // retourne le code langue i.e. 33 France&lt;br /&gt;doc.Release()&lt;br /&gt;word.Release()&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Je pense que ce sont quelques valeurs retournées :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;id_USA           =  1&lt;br /&gt;id_Canada        =  2&lt;br /&gt;id_LatinAmerica  =  3&lt;br /&gt;id_wdNetherlands =  31&lt;br /&gt;id_France        =  33&lt;br /&gt;id_Spain         =  34&lt;br /&gt;id_Italy         =  39&lt;br /&gt;id_UK            =  44&lt;br /&gt;id_Denmark       =  45&lt;br /&gt;id_Sweden        =  46&lt;br /&gt;id_Norway        =  47&lt;br /&gt;id_Germany       =  49&lt;br /&gt;id_Peru          =  51&lt;br /&gt;id_Mexico        =  52&lt;br /&gt;id_Argentina     =  54&lt;br /&gt;id_Brazil        =  55&lt;br /&gt;id_Chile         =  56&lt;br /&gt;id_Venezuela     =  58&lt;br /&gt;id_Iceland       = 354&lt;br /&gt;id_Finland       = 358&lt;/blockquote&gt;ps. copier et coller le code dans l'espace de travail de Suneido pour tester si celà marche chez vous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-3149709924024024520?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/3149709924024024520/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=3149709924024024520' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/3149709924024024520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/3149709924024024520'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/utiliser-word-avec-suneido.html' title='Utiliser Word avec Suneido'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-6305227891605950626</id><published>2007-11-20T21:51:00.000+01:00</published><updated>2007-11-20T21:57:55.764+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Homebank'/><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Comment télécharger et installer Homebank</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Téléchargement&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://suneidofr.googlegroups.com/web/HomeBank1.2.zip?gda=_JoeXUAAAABCpT6gmqxlwlKHNa8cPJbf-1wyVihqmO-jq7OUkjUUNWG1qiJ7UbTIup-M2XPURDRIf0OVUat3bv-w9hTiK7si&amp;amp;hl=fr"&gt;&lt;span style="font-size:100%;"&gt;Homebank.zip&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ce fichier compressé comprend :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;hb_compte.su : fichier des comptes&lt;/li&gt;&lt;li&gt;hb_operation.su : fichier des opérations &lt;/li&gt;&lt;li&gt;hb_affectation.su : fichier des affectations&lt;/li&gt;&lt;li&gt;hb_ecritures.su : fichier des écritures&lt;/li&gt;&lt;li&gt;hb_abonnement.su : fichier des abonnements&lt;/li&gt;&lt;li&gt;bankbook.su : manuel d'aide&lt;/li&gt;&lt;li&gt;banklib.su : la bibliothèque&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;et aussi pour les perfectionnistes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;bankappli : fichier de paramétrage au démarrage de l'application&lt;/li&gt;&lt;li&gt;HomeBank.ico : icone&lt;/li&gt;&lt;li&gt;HomeBank.iss : script pour l'installateur InnoSetup&lt;/li&gt;&lt;li&gt;licence.txt : mise en garde de l'utilisateur&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;ainsi que :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;installation.txt : rappel des explications que vous pouvez trouver ci-dessous&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;(Pour les impatients, il existe une version de démonstration prête à l'emploi)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://suneidofr.googlegroups.com/web/HomeBank1.2Install.zip?gda=RHTAoEcAAABCpT6gmqxlwlKHNa8cPJbf-1wyVihqmO-jq7OUkjUUNWG1qiJ7UbTIup-M2XPURDReSY_3_uQwsnD7aDVTCpQAGA2k_k_b-rhlVAn0igiakA&amp;amp;hl=fr"&gt;HomebankInstall.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Installation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Vous devez au préalable copier tous les fichiers dans votre répertoire Suneido. Pour cela, ouvrez la ligne de commande dans démarrez / exécutez ou appuyez en même temps sur la Touche Windows et sur R, et tapez :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;C:\Suneido\suneido -load bankbook&lt;br /&gt;C:\Suneido\suneido -load banklib&lt;/blockquote&gt;&lt;br /&gt;Ensuite, il faut ouvrir la bibliothèque banklib dans Vue de bibliothèques / Fichier / Ouvre une bibliothèque-&gt; banklib&lt;br /&gt;&lt;br /&gt;Puis sélectionnez banklib/Database/CreateTable et créez les tables en faisant "F9" ou"!" ou Outils/Exécuter&lt;br /&gt;&lt;br /&gt;Enfin dans Espace de travail exécutez et admirez le travail :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Window(Bank_FenetreControl)&lt;br /&gt;&lt;/blockquote&gt;C'est mieux avec un raccourci sur le bureau. Pour cela :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;créez un icone sur le bureau d'un clic droit Nouveau / Raccourci, puis Parcourir, avec en ligne de commande C:\Suneido\suneido.exe bankappli, cliquez sur suivant et changez le nom de suneido.exe par "Homebank" et validez sur Terminer.&lt;/li&gt;&lt;li&gt;faites un clic droit sur l'icone, cliquez sur Propriétés, puis sur Changer d'icone, Parcourir, Suneido, HomeBank.ico, Ouvrir, Ok, Ok et vous aurez droit à une petite maison.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Détail de bankappli :&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Use ("banklib"); Window(Bank_FenetreControl, exitOnClose:)&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-6305227891605950626?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/6305227891605950626/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=6305227891605950626' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6305227891605950626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6305227891605950626'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/comment-tlcharger-et-installer-homebank.html' title='Comment télécharger et installer Homebank'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-4967325098990032429</id><published>2007-11-20T21:43:00.000+01:00</published><updated>2007-11-20T21:48:58.185+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>Télécharger le manuel utilisateur</title><content type='html'>Le manuel utilisateur est disponible en version francisée d'après la mise à jour du 1er septembre 2005.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Il existe sous trois formes :&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://suneidofr.googlegroups.com/web/FrenchSuneidoc.zip?gda=0BEhfUMAAABCpT6gmqxlwlKHNa8cPJbf6eKKkJSTVCk_BV6eyB6fPmG1qiJ7UbTIup-M2XPURDQwNJik38JlYEEpdGOnSaIWwySpC5iqnQuEglXv8t93-A&amp;amp;hl=fr"&gt;un livre à installer dans Suneido&lt;/a&gt;. Pour cela, après avoir décompressé ce fichier, copiez le dans votre répertoire Suneido. Puis chargez le fichier :&lt;br /&gt;&lt;br /&gt;En utilisant la ligne de commande, que l'on obtient avec démarrez/exécutez ou Touche Windows+R, tapez :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;c:\Suneido\suneido -load FrenchSuneidoc&lt;/blockquote&gt;&lt;br /&gt;Ou en ouvrant une fenêtre MS-Dos et saisissez :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;C:\Suneido&gt; suneido -load FrenchSuneidoc&lt;/blockquote&gt;&lt;br /&gt;(Dans les deux cas, Suneido doit être fermé au risque d'avoir un message Error Fatal : can't open : suneido.db)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ensuite allez dans Espace de travail/IDE/Ouvrir un livre/FrenchSuneidoc. &lt;a href="http://suneidofr.googlegroups.com/web/FrenchSuneidoc.zip?gda=0BEhfUMAAABCpT6gmqxlwlKHNa8cPJbf6eKKkJSTVCk_BV6eyB6fPmG1qiJ7UbTIup-M2XPURDQwNJik38JlYEEpdGOnSaIWwySpC5iqnQuEglXv8t93-A&amp;amp;hl=fr"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vous pouvez également modifier le menu de Suneido pour utiliser le manuel en français (avec la touche d'accès rapide F1) tout en conservant la version originale en anglais. Pour cela, dans EDI/Vue des bibliothèques, ouvrez stdlib/Tools/Ide/Plugin_HelpMenu et remplacer le code :&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;(UI, action, menu: Help, name: "&amp;amp;Users Manual",&lt;br /&gt;    target: function (@args) { PersistentWindow(#(Book, suneidoc,&lt;br /&gt;              "User's Manual", help_book:)) })&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;par le code suivant :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;(UI, action, menu: Help, name: "&amp;amp;Users Manual",&lt;br /&gt;    target: function (@args) { PersistentWindow(#(Book, FrenchSuneidoc,&lt;br /&gt;    "User's Manual", help_book:)) })&lt;br /&gt;(UI, action, menu: Help, name: "&amp;amp;Manuel original en anglais",&lt;br /&gt;    target: function (@args) { PersistentWindow(#(Book, suneidoc,&lt;br /&gt;           "User's Manual", help_book:)) })&lt;/blockquote&gt;&lt;br /&gt;- &lt;a href="http://suneidofr.googlegroups.com/web/FrenchSuneidocHtml.zip?gda=x9Wl70cAAABCpT6gmqxlwlKHNa8cPJbf6eKKkJSTVCk_BV6eyB6fPmG1qiJ7UbTIup-M2XPURDTjQU6mAlNTS9Kw-xDjUxGnzoZ2BJUxILpwTBmpTgJ-Ew&amp;amp;hl=fr"&gt;un dossier au format Html&lt;/a&gt; à lire avec votre navigateur préféré. Après avoir décompressé et copié le dossier, cliquez sur Cover.htm pour démarrer la visualisation.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://suneidofr.googlegroups.com/web/FrenchSuneidocPdf.zip?gda=oF9b-0YAAABCpT6gmqxlwlKHNa8cPJbf6eKKkJSTVCk_BV6eyB6fPmG1qiJ7UbTIup-M2XPURDR7tf2H8ixEmwU0o6GmK0NPtJXKklD_f8l2jIlN1yhaNw&amp;amp;hl=fr"&gt;un fichier au format pdf &lt;/a&gt;de 539 pages à lire avec Acrobat Reader (après l'avoir décompressé)&lt;br /&gt;&amp;lt;doc84|center&gt;&lt;/texte&gt;&lt;br /&gt;&lt;br /&gt;ps : Vérification des 16775 liens le 16/09/2005 : 4 liens brisés dans Outils/Créateurs d'états (sera modifié dans la prochaine mise à jour de Suneido)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-4967325098990032429?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/4967325098990032429/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=4967325098990032429' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/4967325098990032429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/4967325098990032429'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/tlcharger-le-manuel-utilisateur.html' title='Télécharger le manuel utilisateur'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-6363379512845080421</id><published>2007-11-20T21:35:00.000+01:00</published><updated>2007-11-20T21:42:06.496+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><title type='text'>Ecrans de Suneido</title><content type='html'>Quelques Ecrans de Suneido en action&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Espace de  travail Suneido&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzfC3mBI/AAAAAAAAACI/CCrLuaWxfq4/s1600-h/Espace_de_Travail.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzfC3mBI/AAAAAAAAACI/CCrLuaWxfq4/s320/Espace_de_Travail.jpg" alt="" id="BLOGGER_PHOTO_ID_5135024750941673490" border="0" /&gt;&lt;/a&gt;Vue des bibliothèques de code Suneido&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzvC3mCI/AAAAAAAAACQ/Eh4-eUSHgPY/s1600-h/Vue_des_bibliotheques.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzvC3mCI/AAAAAAAAACQ/Eh4-eUSHgPY/s320/Vue_des_bibliotheques.jpg" alt="" id="BLOGGER_PHOTO_ID_5135024755236640802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Vue des requêtes Suneido&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzvC3mDI/AAAAAAAAACY/Hyg7buoMyVI/s1600-h/Vue_des_requetes.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzvC3mDI/AAAAAAAAACY/Hyg7buoMyVI/s320/Vue_des_requetes.jpg" alt="" id="BLOGGER_PHOTO_ID_5135024755236640818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Vue des schémas de la base de donnée Suneido&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y_xIIXQxg1s/R0NFz_C3mEI/AAAAAAAAACg/xRaxiNSmIh8/s1600-h/Vue_des_shemas.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Y_xIIXQxg1s/R0NFz_C3mEI/AAAAAAAAACg/xRaxiNSmIh8/s320/Vue_des_shemas.jpg" alt="" id="BLOGGER_PHOTO_ID_5135024759531608130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Le contrôleur de version intégré à Suneido&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y_xIIXQxg1s/R0NF0PC3mFI/AAAAAAAAACo/xz5Dszl5kAU/s1600-h/Controleur_de_version.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_Y_xIIXQxg1s/R0NF0PC3mFI/AAAAAAAAACo/xz5Dszl5kAU/s320/Controleur_de_version.jpg" alt="" id="BLOGGER_PHOTO_ID_5135024763826575442" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-6363379512845080421?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/6363379512845080421/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=6363379512845080421' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6363379512845080421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6363379512845080421'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/ecrans-de-suneido.html' title='Ecrans de Suneido'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y_xIIXQxg1s/R0NFzfC3mBI/AAAAAAAAACI/CCrLuaWxfq4/s72-c/Espace_de_Travail.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-9196747443487367581</id><published>2007-11-20T21:31:00.000+01:00</published><updated>2007-11-20T21:34:39.511+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Bienvenue sur SuneidoFR</title><content type='html'>SuneidoFR est un espace collaboratif sur Suneido et les projets Francophones l'utilisant.&lt;br /&gt;&lt;br /&gt;Vous y trouverez dans la documentation, de quoi débuter avec Suneido, des trucs et astuces et des articles de fond.&lt;br /&gt;&lt;br /&gt;Si vous développez une application avec Suneido, nous pouvons et vous pouvez en parler sur ce Blog.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.suneido.com"&gt;Suneido(R)&lt;/a&gt; est une plateforme d'application intégrée - un système complet et homogène pour développer et déployer des applications, sans avoir recours à différents produits. Suneido comprend son langage de programmation orienté-objet, sa base de données client-serveur, ses interfaces de travail et ses composants. Il inclut l'environnement de développement utilisé pour créer des applications monopostes ou réseau, aussi bien comme client que comme serveur. Suneido est un logiciel libre (Open Source), fourni gratuitement avec son code source complet.&lt;br /&gt;&lt;br /&gt;Suneido fête ses 7 ans : la première version Open Source date d'octobre 2000!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-9196747443487367581?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/9196747443487367581/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=9196747443487367581' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/9196747443487367581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/9196747443487367581'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/bienvenue-sur-suneidofr.html' title='Bienvenue sur SuneidoFR'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2899116945945422341.post-6806147640608304090</id><published>2007-11-20T07:56:00.000+01:00</published><updated>2007-11-20T14:50:07.345+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suneido'/><title type='text'>Bienvenue</title><content type='html'>Bienvenue sur le nouveau site Francophone dédié à Suneido.&lt;br /&gt;&lt;br /&gt;Ce site reprend le flambeau de SuneiDojo et fonctionnera en paralelle avec le GoogleGroup &lt;a href="http://groups.google.com/group/suneidofr?hl=fr"&gt;SuneidoFR&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Dans les prochaines semaines je vais transférer l'ancien site sur ce Blog et sur le Groupe.&lt;br /&gt;&lt;br /&gt;alors à bientôt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2899116945945422341-6806147640608304090?l=suneidofr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://suneidofr.blogspot.com/feeds/6806147640608304090/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2899116945945422341&amp;postID=6806147640608304090' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6806147640608304090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2899116945945422341/posts/default/6806147640608304090'/><link rel='alternate' type='text/html' href='http://suneidofr.blogspot.com/2007/11/bienvenue.html' title='Bienvenue'/><author><name>JessiHash</name><uri>http://www.blogger.com/profile/17988770783158005352</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
