La Vache En Liberté

24 septembre 2020

Expressions régulières (Regex) EN VRAC

 

 


 

Il y a plusieurs façons d'utiliser les expressions régulières avec Delphi.

Si vous possédez Delphi XE ou une version postérieure, le plus simple est d'utiliser l'unité System.RegularExpressions.

Si vous possédez une version antérieure à Delphi XE, plusieurs possibilités s'offrent à vous. Le choix peut-être le plus recommandable est d'utiliser la classe TPerlRegEx de l'unité PerlRegEx. L'avantage de cette unité est d'être identique à l'unité System.RegularExpressionsCore livrée avec les versions récentes de Delphi (à partir de Delphi XE). Votre code sera donc réutilisable en cas de migration vers une version plus récente.

Une autre possibilité est d'utiliser la classe TRegExpr de l'unité RegExpr. L'avantage de cette unité est d'être identique à l'unité du même nom livrée avec Free Pascal. Toutefois cette unité n'est pas compatible avec les versions récentes de Delphi.

Une autre possibilité encore est d'utiliser la classe IRegex de l'unité PCRE. Il s'agit d'une unité pour Delphi 7, qui peut également être compilée avec Free Pascal.

Une autre possibilité enfin est d'utiliser la classe TFLRE de l'unité FLRE. L'avantage de cette bibliothèque est, outre sa rapidité, le fait qu'elle soit compatible aussi bien avec Delphi ancienne et nouvelle génération qu'avec Free Pascal.

Mis à jour le 9


https://moncoachdata.com/blog/tuto-regex/

Tuto regex : extraire des informations d'un texte

Les expressions régulières (regex ou regexp) sont extrêmement utiles pour extraire des informations d’un texte en recherchant une ou plusieurs correspondances à l’aide d’un modèle de recherche spécifique (c’est-à-dire une séquence spécifique de caractères ASCII ou Unicode). Voici un rapide tuto regex pour avoir une vision d’ensemble de ce domaine.

Les domaines d’application vont de la validation à l’analyse/remplacement de chaînes de caractères, en passant par la transposition de données vers d’autres formats mais aussi le web scraping (lire l’article).

L’une des fonctionnalités les plus intéressantes c’est qu’une fois que vous avez appris la syntaxe, vous pouvez l’utiliser dans (presque) tous les langages de programmation (JavaScript, Java, VB, C #, C / C ++, Python, Perl, Ruby). , Delphi, R, Tcl et bien d’autres) avec quelques légères distinctions pour les fonctionnalités les plus avancées et les versions de syntaxe prises en charge par les moteurs.

Commençons par regarder quelques exemples et explications.

Tuto regex : Les bases

Les ancres  ^ et $

  • ^Alors correspond à toute chaîne de caractères qui commence par “Alors” -
  • fin$ correspond à toute chaîne de caractères qui se termine par “fin
  • ^la fin$ correspond exactement à la chaîne de caractères “la fin
  • on correspond à toute chaîne de caractères qui a “on” à l’intérieur

Les quantificateurs  *, +, ? et {}

  • abc* correspond à une chaîne de caractères qui possède “ab” suivi de zéro ou plusieurs “c” -
  • abc+ correspond à une chaîne de caractères qui possède “ab” suivi d’un ou plusieurs “c
  • abc? correspond à une chaîne de caractères qui possède “ab” suivi de zéro ou un “c
  • abc{2} correspond à une chaîne de caractères qui possède “ab” suivi de 2 “c
  • abc{2,} correspond à une chaîne de caractères qui possède “ab” suivi de 2 (ou plus) “c
  • abc{2,5} correspond à une chaîne de caractères qui possède “ab” suivi de 2 à 5 “c
  • a(bc)* correspond à une chaîne de caractères qui possède un “a” suivi de zéro ou plusieurs séquences “bc
  • a(bc){2,5} correspond à une chaîne de caractères qui possède un “a” suivi de 2 à 5 copies de la séquence “bc

L’opérateur OU : | ou []

  • a(b|c) correspond à une chaîne de caractères qui possède un “a” suivi de “b” ou “c
  • a[bc] exactement même résultat, toutes les lettres entre crochet sont une alternative, retourne donc les chaînes de caractères correspondant à “ab” ou “ac

Les classes de caractère: \d, \w, \s et .

  • \d correspond à un seul caractère qui est un chiffre -
  • \w correspond à un caractère de mot (comprend lettres, chiffres et underscore)
  • \s correspond à un caractère d’espace (comprend les tabulations et les sauts de ligne)
  • . correspond à n’importe quel caractère -

Utilisez l’opérateur . avec précaution car souvent la classe de caractères ou la classe de caractères inversée (traitée ci-dessous) sont plus rapides et plus précises.

\d, \w et \s présentent également leurs négations avec \D, \W et \S respectivement.

Par exemple, \D effectuera la correspondance inverse par rapport à celle obtenue avec \d.

  • \D correspond à un seul caractère non numérique -

Pour être pris littéralement, vous devez annuler l’effet des caractères ^. [$ () | * +? {\ avec une barre oblique inversée \ car ces éléments ont une signification particulière (contrairement à d, w et s).

  • \$\d correspond à une chaîne qui a un $ avant un chiffre -

Notez que vous pouvez également faire correspondre des caractères non affichables tels que les tabulations \t, les nouvelles lignes \n et les retours chariot \r.

Les indicateurs

Afin d’apprendre à construire un regex efficacement, on ne peut oublier un concept fondamental: les indicateurs.

Une expression rationnelle vient généralement avec cette forme /abc/, où le motif de recherche est délimité par deux barres obliques /. A la fin, nous pouvons spécifier un indicateur avec ces valeurs (nous pouvons également les combiner):

  • g (global) permet de ne pas revenir après la première correspondance trouvée, cela relance les recherches suivantes à partir de la fin du match précédent
  • m (multi line): lorsqu’il est activé ^ et $ correspondront au début et à la fin d’une ligne, au lieu de la chaîne de caractères entière
  • i (insensitive) rend l’expression entière insensible à la case (par exemple, /aBc/i correspondrait à AbC)

Tuto regex : Niveau intermédiaire

Regroupement et capture: ()

  • a(bc) crée un groupe de capture avec la valeur bc -
  • a(?:bc)* en utilisant ?: nous désactivons le groupe de capture -
  • a(?<foo>bc) en utilisant ?<foo> nous donnons un nom au groupe

Cet opérateur est très utile lorsque nous devons extraire des informations de chaînes de caractères ou de données en utilisant votre langage de programmation préféré. Toutes les occurrences multiples capturées par plusieurs groupes seront exposées sous la forme d’un tableau classique: nous accéderons à leurs valeurs en spécifiant à l’aide d’un index sur le résultat de la correspondance.

Si nous choisissons de nommer les groupes (avec (?<Foo>…)), nous pourrons récupérer les valeurs du groupe en utilisant le résultat de la correspondance, comme un dictionnaire où les clés seront le nom de chaque groupe.

Expressions entre crochets : []

  • [abc] correspond à une chaîne de caractères qui a un a ou un b ou un c (est identique à a|b|c) -
  • [a-c] exactement la même chose, littéralement tout caractère de a à c.
  • [a-fA-F0-9] une chaîne de caractères représentant un seul caractère d’un chiffre hexadécimal, sans distinction de case -
  • [0-9]% une chaîne de caractères qui a un chiffre de 0 à 9 avant le signe %
  • [^a-zA-Z] une chaîne de caractères qui ne contient aucune lettre de a à z ou de A à Z. Dans ce cas, le ^ est utilisé comme négation de l’expression -

Rappelez-vous que dans les expressions entre crochets, tous les caractères spéciaux (y compris la barre oblique inverse \) perdent leurs pouvoirs spéciaux: nous n’appliquerons donc pas la règle d’annulation.

Correspondance généreuse vs. plus sélect

Les quantificateurs (* + {}) sont des opérateurs généreux. Ils étendent la correspondance aussi loin que possible à travers le texte fourni.

Par exemple, <.+> correspond à <div>simple div</div> dans Ceci est un test d’un <div>simple div</div>. Afin d’attraper uniquement la balise div, nous pouvons utiliser un ? pour le rendre plus sélect:
<.+?> correspond à tout caractère une ou plusieurs fois inclus entre < et > -

Notez qu’une meilleure solution devrait éviter l’utilisation de . en faveur d’un regex plus strict:
<[^<>]+> correspond à n’importe quel caractère sauf < ou > une ou plusieurs fois inclus entre < et >

Tuto regex : Niveau avancé

Limites : \b et \B

  • \babc\b effectue une recherche “mots entiers uniquement” -

\b représente une ancre lambda (il est similaire à $ et ^) des positions correspondantes où un côté est un caractère de mot (comme \w) et l’autre côté n’est pas un caractère de mot (par exemple, il peut s’agir du début de la chaîne de caractères ou un espace).

Il vient avec sa négation \B. Cela correspond à toutes les positions où \b ne correspond pas. Cela peut être le cas si nous voulons trouver un modèle de recherche entièrement entouré de caractères.

  • \Babc\B ne correspond que si le motif est entièrement entouré de caractères -

Références arrières : \1

  • ([abc])\1 en utilisant \1, il correspond au même texte que le premier groupe de capture -
  • ([abc])([de])\2\1 nous pouvons utiliser \2 (\3, \4, etc.) pour identifier le même texte correspondant au deuxième (troisième, quatrième, etc.) groupe de capture. -
  • (?<foo>[abc])\k<foo> nous donnons le nom foo au groupe et nous le référençons plus tard (\k<foo>). Le résultat est le même que celui du premier regex -

Observation avant et après : (?=) Et (?<=)

  • d(?=r) ne correspond à d que si l’est suivi de r, mais r ne fera pas partie du résultat -
  • (?<=r)d ne correspond à d que s’il est précédé d’un r, mais r ne fera pas partie du résultat

Vous pouvez également utiliser l’opérateur de négation!

  • d(?!r) ne correspond à d que s’il n’est pas suivi de r, mais r ne fera pas partie du résultat -
  • (?<!r)d ne correspond à d que s’il n’est pas précédé d’un r, mais r ne fera pas partie du résultat -

 


regular-expressions.info

Regular Expressions Quick Start

Jan Goyvaerts

On this site, you can find everything you need to know about regular expressions:

 


 

http://edutechwiki.unige.ch/fr/Expression_r%C3%A9guli%C3%A8re

Expression régulière

1 Définition

Les expressions régulières (abrégé expreg) aussi appelées expressions rationnelles, en anglais regular expressions (abrégé regexp), sont une écriture compacte pour représenter un ensemble (peut-être infini) de séquences de caractères semblables. Elles rappellent et étendent la notion de "Joker" ou "Wild-card" qu'on trouve dans MS-DOS (e.g. DIR *.EXE ), comme d'ailleurs dans les "shells" UNIX (sous le nom de "globbing"), ou encore Authorware.

Les expressions régulières sont une chaîne de caractères permettant de décrire un ensemble variable par l'utilisation d'une syntaxe précise, qui se retrouvent dans une foule de langages et d'outils. Pour le détail, veuillez consulter la documentation des expressions régulières. Elles diffèrent d'un environnement à l'autre par quelques détails, avec un noyau commun. Cependant, la maîtrise de cette syntaxe permet une manipulation de textes dans la majeure partie des langages de programmation.

1.1 Résumé des conventions "universelles" pour les expressions régulières

  • ^ représente le début (d'une ligne, d'une chaîne de caractères)
  • $ représente la fin (d'une ligne, d'une chaîne de caractères)
  • . représente n'importe quel caractère
  • * représente 0 ou plus occurrences d'un élément. Donc e* représente soit "" ou "e" ou "ee" ou "eee"
  • + représente 1 ou plus occurrences de e. Donc e+ représente soit "e","ee","eee", etc
  • ? représente 0 ou 1 occurrences, comme s? dans villes? qui représente l'ensemble { "ville" , "villes" }
  • | représente un choix entre chaînes de caractères, comme la|le qui représente l'ensemble { "la" , "le" }
  • ( ) groupage d'expressions, qui permet par ex. d'écrire (e|f)g au lieu de eg|fg. Le groupage est aussi utile pour faire des substitutions (voir plus bas).
  • [xyz] classes de caractères - un de caractères dans la liste doit être dans la cible représentée, [A-Za-z] représente toutes les lettres.

Cette dizaine de symboles et de constructions constituent un noyau commun à presque tous les modules d'expressions régulières.

1.2 Conventions "universelles" pour les expressions régulières de type "Perl"

(Ne correspond pas à la norme POSIX. Voir aussi la notice sur la syntaxe de citation ci-dessus ! (Par exemple dans Javascript utilisez '\\w' à la place de '\w').

  • \w représente tout caractère alphanumérique (donc qui peut faire partie d'un mot au sens formel, c.a.d. lettres et chiffres).
  • \W représente tout caractère non alphanumérique (donc qui ne peut pas faire partie d'un mot au sens formel, c.a.d. ponctuations, espaces, etc.)
  • Voir les manuels pour le reste.

1.3 Une complication, la syntaxe de citation

Comment écrire des expressions régulières qui reconnaissent les signes spéciaux ci-dessus dans une chaîne de caractères ? Comme ils ont un sens spécial, ils ne peuvent se représenter eux-mêmes sans autre (ce qui est le sens normal des autres caractères). Afin de permettre de distinguer deux cas d'usage de ces caractères-là, on utilise un caractère d'échappement de code - mais sur ce point les environnements diffèrent entre eux.

  • D'une part le caractère d'échappement varie, c'est \ dans le cas d'emacs, de PhP et de Perl, \\ dans JavaScript et % dans le cas du MOO.

(N.B. Les "regexps" d'emacs/PhP et du MOO ne diffèrent que par ce caractère d'échappement)

  • D'autre part le choix sens normal/sens spécial en fonction de la présence ou de l'absence du caractère d'échappement varie. Dans le cas d'emacs et du MOO, les caractères: (, |, ) ont leur sens spécial lorsqu'ils sont précédés du caractère d'échappement, et leur sens normal autrement. Dans le cas de Perl et de JavaScript, c'est le contraire ! Notez également qu'il faut utiliser \\ dans JavaScript !
  • Enfin, certains langages (Python) permettent de stipuler quelle convention de citation on utilise.

Les séquences d’échappement suivantes sont ainsi supportées : (wikipedia)

Séquence POSIXDescription
\b retour arrière (correction).
\t tabulation horizontale.
\n saut de ligne.
\v tabulation verticale.
\f saut de page.
\r retour chariot.

2 Comment accéder aux expressions régulières

2.1 Dans Emacs, à titre d'exemple:

La recherche incrémentale par exemple avec le raccourci-clavier :C-M-s, 
le remplacement incrémental avec le raccourci-clavier :C-M-%,
Chercher des lignes qui contiennent la méme regexp: voir le menu.

Il est utile d'utiliser Xemacs pour tester vos expressions faites en PHP, JS etc. Faites attention à la syntaxe de citation qui n'est pas forcément la même. Par exemple pour chercher à la fois "is" et "in" il faut utiliser i\(s\|n\).

2.2 En JavaScript 1.2 et plus

Avec les méthodes match, replace, search de string. Voir:

Pour utiliser une regexp dans JavaScript il faut d'abord la placer entre deux / / suivi de "modifieurs" Dans l'exemple ci-dessous gi veut dire d'ignorer la casse et chercher toutes les occurences dans le string: (g=global pattern matching) et (i=case-insentitive pattern matching). En ce qui concerne l'expression régulière entre les deux / /, ^[A-Z{1,} signifie qu'au début de notre suite de caractères (indiqué par ^) on cherche un nombre qui va de 1 à indéfini {1,} de lettres majuscules [A-Z]. Ensuite on définit qu'on veut un tiret \- (ici on a échappé le tiret avec un backslash), puis on s'attend à une suite de 4 ou plus {4,} chiffres [0-9]; le $ de fin nous dit qu'on ne veut aucun autre caractère après les chiffres.

var code_postal_ch = /^[A-Z]{1,}\-[0-9]{4,}$/gi;
var input_string1 = "CH-1227";
var input_string2 = "CH-12273";

Pour tester avec la méthode test d'un objet regexp

if (code_postal_ch.test(input_string1)) alert ("wow");

Pour tester avec la méthode match de l'objet string:

if (input_string1.match(code_postal_ch)) alert ("wow");

2.3 Dans PHP

Voir le chapitre "Regular Expression Functions" et surtout les fonctions eregi(pattern, string) et ereg(pattern, string)

eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);
/* Returns true if client browser
is Netscape 2, 3 or MSIE 3. */

2.4 Dans le MOO

Avec le verbe match()

2.5 Dans R

La fonction grep() permet de rechercher les éléments d’une liste qui présentent un pattern donné. Ainsi, pour rechercher dans une chaîne de caractères des expressions régulières avec la fonction grep, il faut fixer l’attribut « fixed » à la valeur FALSE. Exemples :

 Texte1 <- c("argue", "sténo", "huons", "remet", "ponce", "mites", "ligie", "vitre", "fluée", "floué", "ahana", "fonte", "boche", "tinté", "frime", "tente", "cédez")
grep(pattern = "^a", Texte1, value = TRUE, fixed=FALSE) # Donne les mots qui commencent par la lettre « a »
grep(pattern = "e$", Texte1, value = TRUE, fixed=FALSE) # Donne les mots qui se terminent par la lettre « e »
grep(pattern = "te", Texte1, value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence « te »
grep(pattern = "n.e", Texte1, value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence « n.e »
grep(pattern = "na|ce" , Texte1 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence « na » ou la séquence « ce »
grep(pattern = "n.e|c.e" , Texte1 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence « n.e » ou la séquence « c.e »
grep(pattern = "[cdt]e" , Texte1 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence « ce » ou « de » ou « te »
grep(pattern = "[^cdt]e" , Texte1 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la lettre « e » et qui ne présentent pas les séquences « ce », « de » et « te »
Texte2 <- c("ab","abc", "ababc", "ababab", "abababc" ,"bab","cbabab","abba","abbc","ca","abaabc", "ababbc", "acac")
grep(pattern = "ab*c" , Texte2 , value = TRUE, fixed=FALSE) # Donne les mots "abc" "ababc" "abababc" "abbc" "abaabc" "ababbc" "acac"
grep(pattern = "ab+c" , Texte2 , value = TRUE, fixed=FALSE) # Donne les mots "abc" "ababc" "abababc" "abbc" "abaabc" "ababbc"
grep(pattern = "ab?c" , Texte2 , value = TRUE, fixed=FALSE) # Donne "abc" "ababc" "abababc" "abaabc" "acac"
grep(pattern = "ab{2}c" , Texte2 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence : abbc, donc: "abbc" "ababbc"
grep(pattern = "(ab)*c" , Texte2 , value = TRUE, fixed=FALSE) # Donne "abc" "ababc" "abababc" "cbabab" "abbc" "ca" "abaabc" "ababbc" "acac"
grep(pattern = "(ab)+c" , Texte2 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence : (ab)+ c
grep(pattern = "(ab)?c" , Texte2 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence : (ab)? c
grep(pattern = "(ab){2}c" , Texte2 , value = TRUE, fixed=FALSE) # Donne les mots qui contiennent la séquence : ababc

2.6 Avec les outils Unix grep et egrep

Grep et egrep sont des outils UNIX très utiles, qui permettent de retrouver des fichiers et des lignes de texte dans des fichiers contenant un "pattern". Un usage typique sera

 egrep -i -l 'd\.?k\.?s\.?|schneider' /www/*.html

Qui va afficher les noms des fichiers *.html du répertoire /www/ contenant soit les initiales "D.K.S." soit le string "schneider".

Même chose, mais en cherchant dans des sous-répertoires (ATTENTION: ce type de commande est gourmande en ressources CPU). Le résultat de la recherche est mis dans le fichier "t".

find . -name "*.html" -exec grep -il 'd\.?k\.?s\.?|schneider' {} >> t \;
Quelques explications en plus
  • le -i indique que la recherche ne doit pas tenir compte des majuscules/minuscules
  • le -l indique qu'on ne veut que les noms de fichiers, sinon on a aussi toutes les lignes correspondantes (essayez)
  • le *.html est un cas de "filename globbing" et pas une expression régulière
  • l'expression régulière étant tapée dans le contexte du shell UNIX, il faut se méfier du fait que le shell lui-même interprète divers caractères spéciaux à sa manière. Afin d'éviter tout problème, on entoure l'expression d'apostrophes.
  • Sans les apostrophes, le shell interpréterait à sa façon les caractères \ | et ? avec des résultats (presque) imprévisibles

3 Remplacement avec des expressions régulières

En dehors des recherches, les expressions régulières sont beaucoup employées pour modifier du texte de manière systématique dans un fichier. On peut se référer à des expressions groupées (...)trouvées dans un input avec une syntaxe spéciale. (Voir ci-dessus)

3.1 Dans des éditeurs

Dans Emacs:

M-x Replace query-replace-regexp <\(/?\)b> RET <\1em> RET remplacera tous les <b> par des <em> et les </b> par des </em>, en demandant une confirmation pour chaque apparition.

  • les signes \( \) ? et \1 font partie de la syntaxe regexp d'emacs, les signes < > et / appartiennent à HTML
  • le signe \1 signifie "le contenu de ce qui a été reconnu dans la 1ère paire de \( \), on peut de même employer \2, \3 etc pour faire référence à la seconde, troisième paire, etc
  • ici ce contenu sera un / facultatif, selon qu'on remplace un tag <b> ou </b>;

Dans Notepad++:

Cochez "Regular expression" dans les popups pour les fonctions de recherche/remplacement.

Dans PSPad:

Chochez "expressions régulières" dans les popups pour les fonctions de recherche/remplacement

  • Voir le help (Regular expressions)

3.2 Avec PhP

$string = ereg_replace ("$", "<BR>", $string);
/* Mettre un <BR> tag à la fin de $string. */
$string = ereg_replace ("\n", "", $string);
/* Tuer les caractères newline dans $string. */

3.3 Avec JavaScript

  • Pour se référer à une expression il faut utiliser $n, par exemple $1 ou $2 ci-dessous.
 input = "surf is green";
pattern = "/(\\w*) is (.*)/ig";
replyPattern = "What is so $2 about $1?";
result = input.replace(pattern, replyPattern);
Ca donne result = What is so green about surf?

3.4 Avec Perl

Perl est un langage de programmation complet, mais il admet des options d'invocations qui permettent d'accéder directement à son composant d'expressions régulières particulièrement puissant.

perl -pi.bak -e 's:<(/?)b>:<\\1em>:' mon_fichier.html

est l'équivalent de la commande emacs ci-dessus

  • Malgré les apostrophes, le shell unix interprète les \ comme un caractère d'échappement, c'est pourquoi il faut écrire \\1 pour que perl obtienne \1
  • -p signifie de recopier chaque ligne du fichier de l'entrée vers la sortie
  • -i.bak signifie de mettre le résultat à la place du fichier original, et garder l'original en ajoutant .bak à son nom** -e 'instructions' signifie d'effectuer les instructions sur chaque ligne du fichier en cours de copie
  • L'instruction de substitution a la forme s:expression:substitution:
  • On peut remplacer les : par un autre caractère; le / est traditionellement utilisé, mais dans le cas présent / intervient dans le texte à remplacer.
  • On peut mettre plusieurs instructions Perl entre les apostrophes, séparées par des ;

4 Modification de l'ordre dans une chaîne d'entrée dans JavaScript

L'exemple suivant illustre la formation d'expressions régulières et l'utilisation de string.split () et String.Replace () . Il nettoie une chaîne d'entrée plus ou moins formaté contenant les noms (prénom) séparés par des espaces, les tabulations et exactement une virgule. Enfin, il inverse l'ordre des noms (nom de famille en premier) et trie la liste. Le code n'a pas été testé. Se référer à l'original

/
// et peuvent avoir de multiples espaces entre les noms et prénoms.
var nom = "Harry Trump, Fred Barney, Helen Rigby, Bill Abel; Chris Hand" ;
var sortie = [ "---------- chaîne originale \n" , nom + "\n" ] ;
// Préparer deux modèles d'expressions régulières et de stockage de tableau.
// Diviser la chaîne en éléments de tableau.
// Motif: possible l'espace blanc puis virgule puis de l'espace blanc possible
var motif = /\s*;\s*/;
// Pause de la chaîne en morceaux séparés par le schéma ci-dessus et
// Stocker les morceaux dans un tableau appelé nameList
var nameList = noms.split ( motif ) ;
// Nouveau modèle: un ou plusieurs caractères, puis des espaces, les caractères.
// Utilisez les parenthèses pour "mémoriser" des parties du modèle.
// Les parties mémorisées sont appelées plus tard.
motif = /(\w+)\s+(\w+)/;
// Nouvelle gamme pour la tenue de noms en cours de traitement.
var bySurnameList = [ ] ;
// Affichage du tableau de nom et remplir le nouveau tableau
// Avec les noms séparés par des virgules, dernier premier.
//
// La méthode replace enlève rien correspondant au modèle
// et la remplace par la chaîne-deuxième partie mémorisée mémorisé
// suivi de l'espace virgule suivie première partie mémorisée.
// Les variables $1 et $2 se réfèrent à des parties
// mémorise tout en faisant correspondre le motif.
sortie.push ( "---------- après division par expression régulière" ) ;
var i, len;
for (i = 0, len = nameList.length; i < len; i++){
sortie.push(nameList[i]);
bySurnameList[i] = nameList[i].replace(pattern, "$2, $1");
}
// Affichage de la nouvelle gamme.
sortie.push ( "---------- noms inversé" ) ;
for (i = 0, len = bySurnameList.length; i < len; i++){
sortie.push(bySurnameList[i]);
}
}
// Tri par nom, puis afficher le tableau trié.
bySurnameList.sort ( ) ;
sortie.push ( "---------- Classé" ) ;
for (i = 0, len = bySurnameList.length; i < len; i++){
sortie.push(bySurnameList[i]);
sortie.push ( "---------- End" ) ;
console.log ( sortie.join ( "\n" ) ) ;

Travailler avec les expressions régulières :

5 Aide mémoire

Métacaractères

caractèresignification
^ début de la chaîne
$ fin de la chaîne
. n'importe quel caractère sauf retour à la ligne
* matche 0 ou plusieurs fois
+ matche au moins 1 fois
? matche 0 ou 1 fois
  alternative
() groupement; mémorisation
[] jeu de caractères
{} répétition

 

  • [1] (Travailler avec les expressions régulières)

Répétition

caractèresignification
a* zéro ou plusieurs a
a+ un ou plusieurs a
a? zéro ou un a
a{m} exactement m a
a{m,} au moins m a
a{m,n } au minimum m a et au maximum n a

6 Les expressions régulières ont une puissance limitée

(un peu de philosophie ....)

Il y a une foule de modèles d'ordinateurs et de langages de programmation. Néanmoins, d'un point de vue théorique (c'est-à dire en ignorant les questions de performance et de limitation de mémoire) toutes ces machines (et langages) sont équivalentes, en ce sens qu'il est en principe possible de simuler chaque machine ou langage au moyen d'un programme (dit émulateur ou interpréteur) tournant sur une autre machine/langage. Ce fait est bien illustré, d'ailleurs, par les divers émulateurs Windows tournant sur Sun ou Mac.

De manière générale, les langages de programmation appartiennent à cette classe, dite de "la machine universelle". Les expressions régulières sont le cas d'exception d'un modèle de machine formellemoins puissant que la machine universelle mais néanmoins très utile et employé. Mais le plus souvent comme un "sous-langage", compartiment d'un langage plus puissant.

Un exemple de tâche simple mais hors de portée du langage des expressions régulières : vérifier que les paires de parenthèses correspondent.

(.*) va admettre 1) "(x)" et 2) "(x))

([^)]*) élimine 2) mais admet 3) "((x)"

([^()]*) reconnaît correctement une paire de parenthèses mais n'autorise pas 4: "((x))"

En fait, il est possible d'écrire des expressions régulières qui vont reconnaître les chaînes de caractères ayant un nombre maximum prédéterminé de parenthèses imbriquées. Ecrivez-en une qui reconnaît deux niveaux de parenthèses.

7 Liens

7.1 Survols

7.2 Manuels etc. par langage

Éditeur Emacs
  • Regular Expression Search (copie d'une page info de Emacs)
  • Une aide complète sur (X)Emacs est disponible dans "Help->Info" (d'où ce texte a été tiré).
Éditeur Notepad++
PHP
JavaScript
MOOs
Perl
Python
Outils Unix

7.3 Résumés (Cheatsheets)

7.4 Outils en ligne

7.5 Tutoriels

Génériques
JavaScript (f)
JavaScript (en)
Chatterbot MOO / Javascript

Quelques exemples d'implantation de robots de conversation dans les bibliothèques européennes :

PHP
  • expreg.com Les expressions régulières en PHP. C'est carrément un portail dédié à cela ....

7.6 Exemples

 


 

 

 

http://astuces.jeanviet.info/bureautique/rechercher-et-remplacer-du-texte-avec-notepad-et-quelques-regex.htm

Voki quelques exemples de ce que peuvent faire les regex :

  • Trouver dans un texte toutes les phrases qui commencent par "il était une foie" et remplacer le texte par "Il était une fois" (^il était une foie)
  • Chaque fois qu’un texte se termine par un point, on peut forcer un retour à la ligne (.$)
  • Trouver dans un texte tous les mots qui contiennent 2 o consécutifs (.*oo.*)

Les Principales Regex  à utiliser avec notepad

regexeffetexemple
. pour remplacer un caractère ex: "jeanvie." va trouver "jeanviet" et "jeanvier"
[…] pour indiquer un ensemble de caractère ex: "[éèêë]" pour trouver un accent
[^…] pour indiquer des caractères complémentaires ex: "[^0-9]" pour trouver tout ce qui est différent d’un chiffre
^ pour indiquer que le caractère doit être au début d’une ligne ex: "^jeanviet" pour trouver toutes les lignes qui commencent par jeanviet
$ pour indiquer que le caractère doit être en fin de ligne ex: "jeanviet$" pour trouver toutes les lignes qui se terminent par jeanviet
.* n’importe quel nombre de caractère entre deux caractères ex:"j.*t" trouvera jeanviet, jet, jouet

Conserver le texte d’une regex

Soit ces 4 lignes de texte :

  • mois : janviet 2010
  • mois : février 2010
  • mois : mars 2010
  • mois : avril 2010

Je ne veux garder que le mois, c’est à dire jeanviet, février, mars, avril. On va donc supprimer tout ce qui se trouve avant les " : " et l’année " 2010" et conserver le mois entre les deux.

Voici la manip sous notepad :

Conserver une regex


 

http://www.expreg.com/symbole.php

Les Symboles dans les Expressions Régulières



Nous allons dans cette partie vous donner et vous expliquer les différents symboles utilisés dans les expressions régulières.

Une des premières choses à réaliser dans la conception d'une expression régulière, c'est de définir le motif (pattern en anglais)

Pour construire ces motifs, vous avez besoin de créer une structure formée de caractères littéraux, puis de symboles qui sont définis en tant que métacaractères et délimiteurs et qui seront utilisés séparément ou en combinaison à l'intérieur d'un même groupement ou d'une classe.

Oups, me direz-vous... je suis déjà largué là !
Aucune inquiétude, on va développer le sujet.

1) Les caractères littéraux : On appelle littéral une valeur qui est écrite exactement comme elle est interprétée.
Exemple :

Littéraux Signification

a correspond à la lettre "a" et rien d'autre
chat correspond au mot "chat" et rien d'autre
toto correspond au mot "toto" et rien d'autre



Vous constatez que les littéraux permettent une identification exacte et précise du motif recherché. L'intérêt des expressions régulières ne serait pas bien grand si elles étaient limitées à cette seule possibilité. De plus, pour une recherche simplifiée, une fonction comme strpos() le fera bien plus rapidement qu'un simple preg_match(). Il existe heureusement des symboles spécifiques qui ont un sens plus général et que nous présentons dans la suite de ce cours.

2) Les symboles de début et fin de chaîne et le point .

L'accent circonflexe ^ et le symbole dollar $ et enfin le point .

Symbole Description

^ Indique le début de la chaîne - exemple ^chat
reconnaît une ligne qui commence par chat
$ Indique la fin de la chaîne - exemple : chat$
reconnaît une ligne qui finit par chat
. Le point indique n'importe quel caractère


Ces symboles sont des métacaractères : >>> cf -> Qu'est ce qu'un métacaractère ?

3) Les symboles quantificateurs

Ils sont au nombre de trois :
le point d'interrogation (?), l'étoile (*) et le plus (+)

Symbole Description

* Indique 0, 1 ou plusieurs occurrences du caractère ou de la classe précédente
+ Indique une ou plusieurs occurrences du caractère ou de la classe précédente
? Indique 0 ou une occurrence du caractère ou de la classe précédente


Ces symboles sont des métacaractères : >>> cf -> Qu'est ce qu'un métacaractère ?

Bof... oui... mais encore ?
On va travailler avec des exemples, c'est le but du jeu et, selon l'adage, un petit dessin vont mieux qu'un long discours.

Exemple :
a* correspond à aucune ou plusieurs occurrences de la lettre (a)
soit pas de a, ou a, aa, aaa, aaaa, etc...
a+ correspond à une ou plusieurs occurrences de la lettre (a)
soit au moins un a ou aa, aaa, aaaa, etc...
a? correspond à 0 ou une seule occurrence de la lettre (a)
soit a ou pas de a

4) Les intervalles de reconnaissance

Ce sont les accolades { }

Exemple Signification

a{3} correspond exactement à aaa
a{2,} correspond à un minimum de deux a consécutifs
soit aa, aaa, aaaaa....
a{2,4} correspond uniquement à aa, aaa, aaaa


Ces symboles sont des métacaractères : >>> cf -> Qu'est ce qu'un métacaractère ?

5) Les classes de caractères

Délimitées grâce aux crochets [ ]

Exemple Signification

[..-..] Le tiret représente l'intervalle à l'intérieur de la classe
Il s'agit d'un métacaractère s'il est placé dans cette position. Pour permettre sa lecture en tant que caractère "tiret" il convient de le placer en début de la classe comme ceci [-....]
br[iu]n ce qui signifie, trouver br suivi de i ou de u suivi de n comme brun ou brin
  exemple de recherche sur une balise de titre <h1> <h2> <h3>,

 etc...


Ces symboles sont des métacaractères : >>> cf -> Qu'est ce qu'un métacaractère ?

6) Les classes pré-définies

Classe Signification

[[:alpha:]] n'importe quelle lettre
[[:digit:]] n'importe quel chiffre
[[:xdigit:]] caractères héxadécimaux
[[:alnum:]] n'importe quelle lettre ou chiffre
[[:space:]] n'importe quel espace blanc
[[:punct:]] n'importe quel signe de ponctuation
[[:lower:]] n'importe quelle lettre en minuscule
[[:upper:]] n'importe quelle lettre capitale
[[:blank:]] espace ou tabulation
[[:graph:]] caractères affichables et imprimables
[[:cntrl:]] caractères d'échappement
[[:print:]] caractères imprimables exceptés ceux de contrôle

 

7) L'alternative, l'intervalle et la classe complémentée

Réalisé avec la barre | et le tiret - et l'accent circonflexe ^ à l'intérieur des crochets [ ]
La barre verticale | peut également être positionnée entre des parenthèses dans la recherche du motif (voir * dans le tableau exemple)
Exemple :

Exemple Signification

\<h[1-6]\> intervalle de recherche de 1 à 6 - affichera les balises de titre <h1> <h2> etc...

 

[0-9] tous les chiffres de 0 à 9, etc...

p(ai|i)n la barre verticale détermine une alternative
ce qui signifie tout ce qui s'écrit pain ou pin
L'alternative dans le motif lui-même
^(De|A):@ détermine une alternative dans le motif
ce qui signifie tout ce qui commence par De:@ ou A:@

La classe complémentée
[^1] classe complémentée ce qui signifie reconnaître tout sauf ce qui est énuméré, ici, tout sauf le chiffre 1
[^1-6] classe complémentée ce qui signifie reconnaître tout sauf ce qui est énuméré, ici, tout sauf les chiffres de 1 à 6


Ces symboles sont des métacaractères : >>> cf -> Qu'est ce qu'un métacaractère ?

Tableau récapitulatif

. le point n'importe quel caractère

[...] classe de caractères tous les caractères énumérés dans la classe

[^...] classe complémentée Tous les caractères sauf ceux énumérés

^ circonflexe positionne le début de la chaîne, la ligne...

$ dollar marque la fin d'une chaîne, ligne...

| barre verticale alternative - ou
reconnaît l'un ou l'autre

(...) parenthèse utilisée pour limiter la portée d'un masque ou de l'alternative

* astérisque 0, 1 ou plusieurs occurrences

+ le plus 1 ou plusieurs occurrence

? interrogation 0 ou 1 occurrence

 


 

Posté par Luc Fricot à 17:47 - Permalien [#]
Tags : ,

20 septembre 2020

Expressions régulières (Regex) dans Delphi

Les expressions régulières sont des caractères qui personnalisent une chaîne de recherche. Le produit reconnaît les expressions régulières suivantes :

Caractère    Description

 ^    Un accent circonflexe placé au début d'une chaîne correspond au début d'une ligne.
 $    Le signe dollar placé à la fin de l'expression correspond à la fin d'une ligne.
  .    Un point correspond à n'importe quel caractère.
  *    Un astérisque placé après une chaîne correspond à un nombre quelconque d'occurrences de cette chaîne suivie de n'importe quel caractère (y compris par aucun caractère). Par exemple, bo* permet de trouver bot, bo et boo mais ne trouve pas b.
 +    Un signe plus placé après une chaîne correspond à un nombre quelconque d'occurrences de la chaîne suivie de n'importe quel caractère (la chaîne doit absolument être suivie d'un caractère). Par exemple, bo+ permet de trouver boo, et booo, mais ne trouve pas bo ou be.
[ ]    Les caractères placés entre crochets permettent de trouver l'un des caractères placés entre crochets, mais pas les autres. Par exemple [bot] permet de trouver b, o, ou t.
[^]    Un accent circonflexe placé au début d'une chaîne entre crochets signifie SAUF. Ainsi, [^bot] permet de trouver n'importe quel caractère à l'exception de b,
 o, ou t.
 [-]    Un trait d'unionplacé à l'intérieur des crochets indique une plage de caractères. Par exemple, [b-o] permet de trouver n'importe quel caractère situé entre b et o.
{ }    Les accolades permettent de regrouper des caractères ou des expressions. Les groupes peuvent être imbriqués dans la limite maximale de 10 groupes par modèle. Pour le remplacement, on fait référence aux groupes par une barre oblique inverse et un nombre indiquant position dans l'expression "Chercher", en commençant par 0. Par exemple, étant donné le texte à rechercher et la chaîne de remplacement, Chercher : {[0-9]}{[a-c]*}, Remplacer : NUM\1, la chaîne 3abcabc sera remplacée par NUMabcabc.
  \      Une barre oblique inverse avant un caractère générique indique à l'éditeur de code de traiter ce caractère littéralement et non comme un caractère générique. Par exemple, \^ correspond à ^ et n'indique pas le début d'une ligne.
  |         La barre verticale correspond à OU ex c|ç.


Posté par Luc Fricot à 12:25 - Permalien [#]
Tags : , ,

12 septembre 2020

Trier les comptes dans Thunderbird

D'après https://www.peltier-net.fr/changer-lordre-des-comptes-dans-thunderbird/

Dans le but de placer les boites mails les plus importantes en tête de liste pour éviter d’avoir à scroller à longueur de journée …. Pour cela rien de plus facile !

Dans Thunderbird,
menu outils/options

Onglet Avancé, Bouton Editeur de configuration

passer outre la mise en garde (attention quand même, il n'y a pas d'annulation globale aux modifs)

Faire un filtre de recherche sur mail.accountmanager et double clic sur

mail.accountmanager.accounts

Il suffit alors de changer l’ordre comme on le souhaite.

account1.account4.account6.account2...
ou
account2,account3,account4,account5,account7,account9


La difficulté étant de savoir à quoi correspond les accountX car au fil des suppressions/re-création de comptes, les numéros entre account et server divergent.

Pour le savoir on peut faire une recherche sur mail.server.serverx

mail.server.serverX.name donne le nom du compte
mail.account.accountX.server donne le server pointé
Par exemple pour moi, account13 pointe sur server8 (compte LaVacheenLiberté) alors qu'account8 ne pointe pus sur rien.

Pour lister tous les noms des comptes d’un seul coup :
mail.server.server*.na
Il faut modifier mail.accountmanager.default pour pouvoir placer le compte que l’on souhaite voir apparaître toujours en premier : si le premier account n'est pas celui par défaut, il y a conflit donc pas de tri !

Une fois terminé on relance Thunderbird.

Sinon, plugin https://addons.mozilla.org/fr/thunderbird/addon/manually-sort-folders/

abook.mab est le carnet d'adresses

 

 

Posté par Luc Fricot à 22:25 - Permalien [#]
Tags : ,

21 août 2020

Comment zoomer un RichEdit

Ces quelques lignes de code,repondent à une question que je me.pose depuis 2006

procedure SetZoom(const RichEdit: TCustomRichEdit; const Value: Integer);
const EM_SETZOOM = (WM_USER + 225);
begin
  SendMessage(RichEdit.Handle, EM_SETZOOM, Value, 100);
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  SetZoom(RichEdit1, 200);
end;

Je ne sais pas si si 200=200%, mais selon cette valeur, zoome ou dézoome (pivot=100 ?).

 

Posté par Luc Fricot à 12:16 - Permalien [#]
Tags : , , ,

10 août 2020

Utiîser Delphi 7 sous Windoéws 10 (en vrac)

SommaireGénéralitésInstallation et informations (7)

Pour installer Delphi 7 sur les OS récents (Windows 8 et 10) :

- lancer l'installation en mode administrateur (clic droit sur le programme d'installation puis "exécuter en tant qu'administrateur"
- installer D7 dans un répertoire non protégé par Windows. Par exemple C:\Borland\Delphi7. Ne pas utiliser Program Files ni Program Files x86.

Avant de lancer Delphi 7, faire le clic droit sur son raccourci et ensuite clic sur propriété puis onglet compatibilité :

- Cocher "Exécuter ce programme en mode de comptabilité sur" : Windows XP (Service pack 3)
- Cocher "Exécuter ce programme en tant qu'administrateur

Delphi7 peut alors être lancé sans problème, même si un message d'avertissement apparaît.

La première fois et à chaque mise à jour de Windows : installer ou réinstaller l'aide au format Hlp (Voir la FAQ : "Comment utiliser les fichiers d'aide au format hlp sous les nouveaux OS Windows (7 et plus) ?". La touche F1 sera alors active.

Pour le développement d'applications :

Si l'installation de l'application se fait dans Program Files (x86) ne pas mettre de fichier ini (ni aucun fichier de données) dans ce répertoire (il faut utiliser les répertoires spéciaux de Windows).

l'installation de Delphi 7 est encore possible
oui, pour peu que elle soit faite en tant qu'administrateur, que le chemin d'installation ne soit pas program files mais un répertoire créé à partir de la racine
pour le lancer il faudra aussi le faire en tant qu'administrateur , changer la propriété du raccourci de lancement

mais pourquoi veux-tu le déplacer ? Moi je l'ai installé dans program files, donné le contrôle total même si mon compte est administrateur, et tout fonctionne correctement (jusqu'à présent).
P.S. :

tu n'a même pas besoin de le lancer en admin si tu as donné les droits sur le dossier.
je te conseille aussi de prendre la version starter de Delphi 10.1 Berlin qui est devenue gratuite

https://www.embarcadero.com/fr/produ...ional-download
Une procédure pour faire marcher l'aide de Delphi7 sous windows 10 est dispo ici:

https://www.tenforums.com/general-su...dows-10-a.html

ça marche pour moi sous Windows 10 pro x64 (Delphi7 pro) et permet de retrouver une aide contextuelle avec la touche F1.

Sur cette page de forum est décrite (en anglais) la procédure qui en gros remplace le fichier winhlp32.exe de windows 10 qui simplement affiche un message comme quoi les .hlp c'est obsolète...
Mais en remplaçant cet exe par celui de windows XP (les fichiers sont mêmes fournis, win10 x64 nécessite ? le winhlp32.exe de windows XP 64bit, pas très courant), ça fonctionne !!!


 0n procédure en Français est déjà sur la FAQ Delphi depuis 2015 ici
Avec téléchargement possible des fichiers nécessaires.

On peui prendre la version starter de Delphi 10.1 Berlin qui est devenue gratuite

https://www.embarcadero.com/fr/produ...ional-download

Posté par Luc Fricot à 22:54 - Permalien [#]
Tags : , , ,

11 juillet 2020

ODS 8. Officiel du Scrabble 2020.

https://www.listesdemots.net/touslesmots.txt

L'Officiel du Scrabble (ODS) ou L'Officiel du jeu Scrabble est le dictionnaire officiel du jeu de Scrabble francophone

Nombre de mots de l'ODS
VersionAnnéeEntréesMots23456789101112131415
ODS 11990 56 664 344 001 73 507 2 149 6 776 15 606 28 244 41 982 51 867 54 469 49 469 39 170 27 304 16 862 9 523
ODS 21994 58 154 353 526 74 534 2 233 6 984 16 016 28 957 43 115 53 272 55 885 50 802 40 264 28 121 17 428 9 841
ODS 31999 60 137 364 370 75 560 2 319 7 184 16 396 29 611 44 109 54 620 57 412 52 357 41 696 29 273 18 309 10 449
ODS 42004 60 894 369 085 75 571 2 364 7 277 16 622 29 996 44 664 55 309 58 149 53 026 42 227 29 666 18 550 10 589
ODS 52008 63 419 378 989 77 589 2 441 7 483 17 035 30 633 45 642 56 573 59 526 54 442 43 517 30 690 19 279 11 062
ODS 62012 64 970 386 264 80 610 2 509 7 645 17 318 31 070 46 329 57 467 60 487 55 436 44 468 31 491 19 892 11 462
ODS 72016 66 541 393 670 80 621 2 564 7 823 17 681 31 674 47 159 58 433 61 587 56 463 45 329 32 127 20 358 11 771
ODS 82020 68 125 402 325 81 633 2 623 7 980 17 991 32 230 48 039 59 584 62 954 57 784 46 501 32 962 20 886 12 077

Mots ajoutés (

Mots ajoutés (2 et 3 lettres)

  • ODS 1 (1990)
    • 2 lettres : BI
    • 3 lettres : ADO, ALU, BOG, DAW, GOS, LEM, LOG, LOS, MAO, MOB, NIF, OYE, PEC, POP, REZ, RIO, ROS, ZOB
  • ODS 2 (1994)
    • 2 lettres : EX
    • 3 lettres : ASA, BIO, CIF, CUT, FAX, FOG, GÉO, HUN, IBN, IBO, ISO, JAB, KOP, KWA, MAX, MÉO, MIX, MOS, NEM, OLA, OUH, RAC, RAP, TAG, UTE, WOK, YAM
  • ODS 3 (1999)
    • 2 lettres : AA
    • 3 lettres : AAS, ADA, CIS, CRÉ, DIN, DOC, FAF, IPÉ, IXA, IXÉ, JAM, KYU, MOA, MOX, NAY, NÉO, NEY, OUD, RAM, SAX, SPA, TAR, TIP, WEB, YUE, ZEF
  • ODS 4 (2004)
    • 2 lettres : aucun
    • 3 lettres : ÉWÉ, HUB, MÉL, PAP, SOM, TAF, TAT, WAD, WAP, ZEC, ZUP
  • ODS 5 (2008)
    • 2 lettres : BA, BÊ
    • 3 lettres : AÏD, DOP, DUB, ÉCO, EXO, FAQ, GEX, GUR, KÉA, KRU, MMM, MOR, MUG, OBA, PHÔ, QIN, YET, ZEK
  • ODS 6 (2012)
    • 2 lettres : OM, TO, UD
    • 3 lettres : ANI, COM, COX, DAH, DÉO, DZO, FON, KAT, KEN, KET, KOÏ, LED, LUO, NAC, NAN, NIM, SUP, TOF, TOS, UDS, WOH
  • ODS 7 (2016)
    • 2 lettres : aucun
    • 3 lettres : BEU, COT, DEM, EVE, FIU, GIF, LOA, LOL, OIS, OIT, VOC
  • ODS 8 (2020)
    • 2 lettres : QI
    • 3 lettres : APP, ARF, BIM, DEJ, DEL, DIP, FIX, GHI, MAG, QIS, RIB, TEF

  • Il y a 81 mots de deux lettres

    AA AH AI AN AS AU AY BA BE BI BU CA CE CI DA DE DO DU EH EN ES ET EU EX FA FI GO HA HE HI HO IF IL IN JE KA LA LE LI LU MA ME MI MU NA NE NI NO NU OC OH OM ON OR OS OU PI PU QI RA RE RI RU SA SE SI SU TA TE TO TU UD UN US UT VA VE VS VU WU XI

  • l y a 633 mots de trois lettres

    AAS ACE ADA ADO AGA AGE AGI AID AIE AIL AIR AIS AIT ALE ALU AME AMI ANA ANE ANI ANS API APP ARA ARC ARE ARF ARS ART ASA ASE AUX AVE AXA AXE AYS BAC BAH BAI BAL BAN BAR BAS BAT BAU BEA BEC BEE BEL BEN BER BEU BEY BIC BIM BIO BIP BIS BIT BLE BOA BOB BOF BOG BOL BON BOP BOT BOX BOY BRU BUE BUG BUN BUS BUT BYE CAB CAF CAL CAP CAR CAS CEP CES CET CHU CIF CIL CIS CLE COB COI COL COM CON COQ COR COT COU COX CRE CRI CRU CUL CUT DAB DAH DAL DAM DAN DAO DAW DEB DEJ DEL DEM DEO DER DES DEY DIA DIN DIP DIS DIT DIX DOC DOL DOM DON DOP DOS DOT DRU DRY DUB DUC DUE DUO DUR DUS DUT DZO EAU ECO ECU EGO ELU EMU EON EPI ERE ERG ERS EST ETA ETE EUE EUH EUS EUT EUX EVE EWE EXO FAC FAF FAN FAQ FAR FAT FAX FEE FER FEU FEZ FIA FIC FIE FIL FIN FIS FIT FIU FIX FLA FOB FOC FOG FOI FOL FON FOR FOU FOX FUI FUN FUR FUS FUT GAG GAI GAL GAN GAP GAY GAZ GEL GEO GEX GHI GIF GIN GIS GIT GLU GOI GON GOS GOY GRE GUE GUI GUR GUS GYM HAI HAN HEM HEP HEU HIA HIC HIE HIP HIT HOP HOT HOU HUA HUB HUE HUI HUM HUN IBN IBO ICI IDE IFS ILE ILS ION IPE IRA IRE ISO IVE IXA IXE JAB JAM JAN JAR JAS JET JEU JOB JUS KAN KAS KAT KEA KEN KET KHI KID KIF KIL KIP KIR KIT KOB KOI KOP KOT KRU KSI KWA KYU LAC LAD LAI LAO LAS LED LEI LEK LEM LES LET LEU LEV LEZ LIA LIE LIN LIS LIT LOA LOB LOF LOG LOI LOL LOS LOT LUE LUI LUO LUS LUT LUX LYS MAC MAG MAI MAL MAN MAO MAS MAT MAX MEC MEL MEO MER MES MET MIE MIL MIN MIR MIS MIT MIX MMM MOA MOB MOI MOL MON MOR MOS MOT MOU MOX MUA MUE MUG MUR MUS MUT MYE NAC NAN NAY NEE NEF NEM NEO NES NET NEY NEZ NIA NIB NID NIE NIF NIM NIT NOM NON NOS NUA NUE NUI NUL NUS OBA OBI ODE OFF OHE OHM OIE OIL OIS OIT OKA OLA OLE ONC ONT OPE ORE ORS OSA OSE OST OTA OTE OUD OUF OUH OUI OUT OVE OXO OYE PAF PAL PAN PAP PAR PAS PAT PEC PEP PET PEU PFF PHI PHO PIC PIE PIF PIN PIS PIU PLI PLU POP POT POU PRE PRO PSI PST PSY PUA PUB PUE PUR PUS PUT PUY QAT QIN QIS QUE QUI RAB RAC RAD RAI RAM RAP RAS RAT RAY RAZ REA REE REG REM REZ RHE RHO RIA RIB RIE RIF RIO RIS RIT RIZ ROB ROC ROI ROM ROS ROT RUA RUE RUS RUT RUZ RYE SAC SAI SAL SAR SAS SAX SEC SEL SEN SEP SES SET SIC SIL SIR SIS SIX SKA SKI SOC SOI SOL SOM SON SOT SOU SPA SPI SUA SUC SUD SUE SUP SUR SUS SUT TAC TAF TAG TAN TAO TAR TAS TAT TAU TEC TEE TEF TEK TEL TEP TER TES TET TEX THE TIC TIF TIN TIP TIR TOC TOF TOI TOM TON TOP TOS TOT TRI TUA TUB TUE TUF TUS TUT UDS UNE UNI UNS URE USA USE UTE VAL VAN VAR VAS VAU VER VES VET VIA VIE VIF VIL VIN VIS VIT VOC VOL VOS VUE VUS WAD WAP WAX WEB WOH WOK WON WUS YAK YAM YEN YET YIN YOD YUE ZEC ZEE ZEF ZEK ZEN ZIG ZIP ZOB ZOE ZOO ZOU ZUP ZUTè

Posté par Luc Fricot à 17:34 - - Permalien [#]
Tags : ,

Facyl Scrabble version 3.32 / ODS8

  • Facyl Scrabble : Application complète gratuite pour jouer au Scrabble sous Windows sans connection à Internet. Dico/Lexique local >400 000  mots (conjugaisons, accords...)
  • Cette version  utilise le dictionnaire Officiel du Scrabble Français (ODS8).
    Le bouton  Joueur machine (F11) permet de faire jouer l'ordinateur pour trouver  la  meilleure combinaison possible.
     
    FacylScrabble
     
    Documentation:AideFScra.pdf Page de téléchargement :http://lavacheenliberte.pagesperso-orange.fr/scrabble/Tfacylscrabble.html

    *Caractéristiques de la Version 2.00

Posté par Luc Fricot à 11:40 - - Permalien [#]
Tags : ,

11 juin 2020

Hydroxychloroquine : le Christ s’est arrêté à Marseilleè

Comment lutter contre la promesse d’un traitement miraculeux ? Comment sortir du face-à-face entre un professeur au discours de gourou et des scientifiques aux airs de rats de laboratoires ?

Au temps du confinement, notre famille est devenue adepte de WhatsApp. Un jour, mon frère aîné, la soixantaine, artiste de métier et fils d’une éducation laïque et républicaine, nous a fait partager une vidéo YouTube du professeur Didier Raoult. Dans un cours «improvisé», celui-ci expliquait, doctement, les éléments d’un traitement miraculeux du Covid-19 : l’hydroxychloroquine. Devant nos yeux ébahis, nous assistions, dès l’administration de ces molécules, à l’effondrement des courbes de charges virales ! Etudiée de plus près, d’un point de vue rationnel et au regard de la rigueur scientifique, la démonstration était… catastrophique. De quoi jeter sa copie au nez d’un interne négligent. Peu importe ! Le ton était donné. D’un côté, l’intuition du professeur, étayée par une communication professionnelle et un sens aigu de la vulgarisation ; de l’autre, des scientifiques à l’expression austère, prudente, et peu enclins à se faire mettre en pièces sur les réseaux sociaux. En un mot, un discours de gourou face au murmure de rats de laboratoires.

Comment lutter contre une réponse simple à une question complexe ? Vieux problème. Surtout quand cette question réveille toutes les peurs ancestrales de l’humanité ! Et que cette réponse simple - un traitement miraculeux - est soutenue massivement par une multitude de scientifiques autoproclamés, des professeurs retraités à la recherche d’une ultime heure de gloire, de politiciens flairant le bon coup, faux spécialistes mais vrais communicants, avides de s’associer à une des nombreuses découvertes fracassantes sur la prise en charge du Covid-19.

à lire aussi Didier Raoult, électron politiquement libre

Tous sont d’accord sur un point : la médecine académique fait fausse route. Et la solution est simple. Il suffisait d’y penser ! Et pourquoi les médecins classiques n’y ont pas pensé ? Euh… vous le savez bien, voyons. C’est que l’argent guide la planète et que les laboratoires pharmaceutiques complotent pour se faire le plus d’argent possible sur la douleur des malades. Ce postulat posé, les conséquences, et les théories farfelues, s’imposent avec la force de la révélation. Citons, pêle-mêle, le réseau 5G, responsable de la propagation du virus, le secret caché du zinc, la chloroquine, l’azithromycine, la tisane à l’artémisia, l’intubation qui ne sert à rien et la ventilation mécanique qui achève les malades. Bref, nous, soignants au pied du lit de nos malades, on n’a rien compris !

Plus fort que l’absence de méthode scientifique, il y a la méthode de persuasion, toujours la même, l’appel à des bribes d’observations plus ou moins crédibles qu’un rapide raccourci transforme en un lien de causalité pour aboutir à une conclusion logique, mais fausse, et surtout jamais soumise à une expérimentation comparative. On pourrait appeler cela un sophisme rigoureusement scientifique.

à lire aussi A Marseille, «Raoult est un Che Guevara de chez nous»

Exemple : l’artémisia est largement utilisée en Afrique dans le traitement préventif du paludisme (vrai). Les pays africains sont moins touchés par le Covid-19 (vrai) donc l’artémisia est efficace contre le Covid-19. Et comme il y a urgence, les malades meurent… alors, vite, un médicament ! Et au diable les règles de sécurité !

En médecine, nous connaissons la possibilité de donner un traitement - à défaut de tout autre - sans preuve de son efficacité, avec une certitude fondée sur la conviction du médecin. On appelle cela un traitement «à titre compassionnel». Sauf que le problème survient quand cette conviction n’est alimentée que par des discours sans fondement rationnel.

Oui, il faut aller vite, bien sûr, mais pourquoi alors s’affranchir du B.A.BA d’éléments de preuve ? D’autant qu’en cette période de Covid, le marathon de la recherche clinique a été accéléré d’une manière incroyable. Là où il fallait au minimum une année entière pour obtenir toutes les autorisations avant de débuter un essai médicamenteux en procédure randomisée (tirage au sort), l’urgence du Covid a réduit le délai à… quinze jours.

Aller vite ! Cet argument a été invoqué par le Pr Didier Raoult lors de la présentation des 1 061 patients inclus dans une recherche observationnelle. Mais pourquoi ne pas avoir inclus un groupe de patients «contrôle» obtenu par tirage au sort (randomisation) ? La comparaison des deux groupes aurait pu donner une réponse définitive. Sa réponse ? L’intuition, toujours l’intuition, encore l’intuition, tellement forte qu’elle devient force de loi scientifique ! Ne restait plus qu’à trouver LE médicament miracle…

En médecine, cela existe, comme on l’a vu lors de la découverte de la pénicilline, mélange de hasard et de rigueur scientifique, et non due à la seule intuition ! Cette intuition magique, associée à la force et au génie de la communication - avec la complaisance active des médias - tient alors lieu de… preuve. Même si nous n’avons aucun exemple de médicament issu d’une révélation quasi divine qui a pu bouleverser la prise charge de patients et apporter un progrès thérapeutique majeur. En revanche, nous savons tous que c’est l’expérience et la comparaison qui a permis de faire progresser la médecine. Un des grands progrès récents de la médecine, le traitement des AVC (accidents vasculaires cérébraux) par fibrinolyse et thrombectomie, est issu de recherches cliniques avec des résultats spectaculaires en termes de pronostic fonctionnel.

Le problème, majeur, se pose quand la seule intuition et une communication à grand spectacle veulent tenir lieu de preuve. Et que face à un quasi divin fondé sur la croyance - «je sens, je sais, donc tu dois croire» - la médecine officielle et ses contre-pouvoirs paniquent en réagissant d’une façon tout aussi maladroite.

à lire aussi Didier Raoult, général Boulanger de la médecine

L’exemple le plus flagrant est ce qui a suivi la publication, par une revue médicale de référence, The Lancet, d’une étude observationnelle rétrospective associant surmortalité et traitement par l’hydroxychloroquine. Les auteurs ont pourtant souligné qu’il s’agissait d’une étude à bas niveau de preuve (absence de lien de causalité) et conclu que seule une étude randomisée prospective pourrait répondre au lien entre hydroxychloroquine et efficacité /dangerosité dans le traitement du Covid-19.Peu importe ! La réaction de nos tutelles OMS et ANSM a été immédiate et radicale : interdiction des essais sur la chloroquine ! Une réponse couperet qui n’aura évidemment comme conséquence que d’éterniser le débat et d’enraciner des théories obscurantistes ou complotistes. Ainsi, on ne pourra plus démontrer que son protocole ne marche pas, voire qu’il peut être dangereux… Un beau cadeau à la médecine fondée sur la croyance. Quelle aberration ! C’est la victoire totale du Pr Didier Raoult. Finalement, l’article a été rétracté par trois des quatre auteurs, ajoutant à la confusion ambiante.

La grande victime de cette spectaculaire et brutale confrontation est donc bien, au final, la médecine. Pas celle de la croyance, grande gagnante de ce spectacle, mais bien l’autre médecine, la nôtre, celle fondée sur les preuves.

D’ailleurs, mon aîné, l’artiste, vient de se retirer du groupe WhatsApp, histoire de ne plus entendre mes arguments.

Posté par Luc Fricot à 11:47 - Permalien [#]

29 avril 2020

OUÏR verbe à 2 conjugaisons

Infinitif : OUÏR
Indicatif présent :

  • OUÏS OUÏT OUÏSSONS OUÏSSEZ OUÏSSENT
  • OIS OIT OYONS OYEZ OIENT

Indicatif imparfait :

  • OUÏSSAIS OUÏSSAIT OUÏSSIONS OUÏSSIEZ OUÏSSAIENT
  • OYAIS OYAIT OYIONS OYIEZ OYAIENT

Indicatif futur simple :

  • OUÏRAI OUÏRAS OUÏRA OUÏRONS OUÏREZ OUÏRONT

Indicatif passé simple :

  • OUÏS OUÏT OUÏMES OUÏTES OUÏRENT

Subjonctif présent :

  • OUÏSSE OUÏSSES OUÏSSIONS OUÏSSIEZ OUÏSSENT
  • OIE OIES OYIONS OYIEZ OIENT

Subjonctif imparfait :

  • OUÏSSE OUÏSSES OUÏT OUÏSSIONS OUÏSSIEZ OUÏSSENT

Conditionnel présent :

  • OUÏRAIS OUÏRAIT OUÏRIONS OUÏRIEZ OUÏRAIENT

Impératif :

  • OUÏS OUÏSSONS OUÏSSEZ
  • OIS OYONS OYEZ

Participe présent :

  • OUÏSSANT
  • OYANT

Participe passé :

  • OUÏ OUÏS OUÏE OUÏES

Posté par Luc Fricot à 15:56 - Permalien [#]

03 avril 2020

Ressortir : un verbe à significations multiples

2 étymologies, 2 conjugaisons, 6 acceptions
Verbe 1 (3ème groupe) De sortir, avec le préfixe re-.
Verbe 2 (2àme groupe) De ressort.

Verbe 1

ressortir \ʁə.sɔʁ.tiʁ\ transitif direct ou intransitif 3e groupe (voir la conjugaison)

Se conjugue sur le modèle de SORTIR (je ressors ils ressortent ressortant)

  1. Sortir de nouveau.
    • Il est sorti ce matin et il est ressorti deux heures après.
    • Il a ressorti ses vieilles affaires.
  2. Sortir après être entré.
    • Une jeune fille a été frappée d’un coup de baïonnette à la mâchoire gauche et l’arme est ressortie par la pommette droite. — (Rodolphe Archibald Reiss, Comment les Austro-Hongrois ont fait la guerre en Serbie, 1915)
    • […], il entra dans le bois, d’où il ressortit un peu après, écorçant avec son couteau une trique de grosseur assez respectable. — (H. G. Wells, La Guerre dans les airs, 1908, traduction d’Henry-D. Davray et B. Kozakiewicz, Mercure de France, Paris, 1910, page 381 de l’éd. de 1921)
  3. (Figuré) Apparaître en opposition frappante, saillante.
    • Les élégantes composaient les rosés de leur teint à l’aide d’un vermillon habilement nuancé ; le kohl d’Égypte servait à faire ressortir l’éclat des yeux, […]. — (Émile Jonveaux, Curiosités de la toilette - La recherche de la beauté, dans « Musée des familles : lectures du soir »‎ - page 323, 1867)
    • Les ombres font ressortir les lumières. – De légers défauts semblent faire valoir davantage d’heureuses qualités.
  4. Résulter, se dégager, apparaître comme conséquence.
    • Il en ressort que la présence de MCPA a pour effet de réduire la période d'emploi du mélange ternaire (3,6-DCP + mécoprop + MCPA) par rapport au binaire (3,6-DCP + mécoprop) de la mi-tallage au début montaison au lieu de début tallage au début montaison. — (Compte rendu de la Conférence du COLUMA, Comité français de lutte contre les mauvaises herbes, 1977, vol.4, page 1062)
    • Il ressort des termes mêmes de l’article 38 de la Constitution que c’est à sa demande que le Gouvernement peut être autorisé par le Parlement à prendre par ordonnances des mesures qui sont normalement du domaine de la loi. — (Secrétariat général du gouvernement et Conseil d’État, Guide de légistique, 3e version, La Documentation française, 2017, ISBN 978-2-11-145578-8 → lire en ligne)

Notes

Le verbe ressortir se conjugue avec l’auxiliaire être pour former les temps composés de la voix active quand il est employé intransitivement. Il se conjugue de façon normale, avec l’auxiliaire avoir, quand il est accompagné d’un complément d’objet.

 

Verbe 2

ressortir \ʁə.sɔʁ.tiʁ\ transitif indirect 2e groupe (voir la conjugaison)

Se conjugue sur le modèle de FINIR(je ressortis ils ressortissent ressortissant)

  1. (Droit) Être du ressort de quelque chose.
    • Mais selon la CAA de Douai, si la transaction conclue par une personne morale de droit public, est, en principe, un contrat de nature civile, tel n’est pas le cas où il est manifeste que les différends qui s’y trouvent compris ressortissent[sic : ressortent] principalement à la compétence du juge administratif. — (« Transaction : quel est le juge compétent ? », article paru le 24 mars 2020 sur achatpublic.info, consulté le jour même)
    • L’affaire ressortit à la cour d’assises.
  2. Concerner, se rapporter à.
    • Son aptitude ressortissait à la perception extrasensorielle.
    • En dehors des ballerines, il n’y a rien dans l’apparence de cette adolescente qui ressortisse à « ce qui se fait » alors et qu’on voit dans les journaux de mode et les magasins des grandes villes. — (Annie Ernaux, Les années, Gallimard, 2008, collection Folio, page 56.)

Note : Ce verbe est très souvent mal conjugué ou mal construit, souvent simultanément :

  • Il n’en va pas de même des conventions qui ressortent à la qualité d’actionnaires et qu’on appelle « conventions d’actionnaires », tout au moins dans le système juridique anglo-canadien-québécois. — (Marc Giguère, Le droit de la PME : notions fondamentales, Presses Université Laval, 1993, p. 132)
    au lieu de « Il n’en va pas de même des conventions qui ressortissent à la qualité d’actionnaires ».
  • la mathématique, qui a pour objet les formes inabstraites et stables, ressortit de l’intellect et de l’imagination — (Edmond Vansteenberghe, Le cardinal Nicolas de Cues (1401 - 1464) ; l’action – la pensée, Slatkine, 1974, p. 350)
    au lieu de « la mathématique ressortit à l’intellect ».
  • Qu’un dessinateur dessine Mahomet à tête de chien, s’il en a envie, cela ressort de la liberté d’expression. — (Daniel Schneidermann, 09h15 le neuf-quinze, « Copenhague : désolé, je ne suis pas très 11 janvier », le 16/02/2015)
    au lieu de « cela ressortit à la liberté d’expression ».

 

Posté par Luc Fricot à 16:16 - Permalien [#]

01 avril 2020

Notepad++ : Shortcuts for the Edit menu

Edit Shortcuts

 

Default shortcuts

Below is the list of predefined keyboard and mouse shortcuts for Notepad++. They can be freely configured using the shortcut mapper, as well as all the commands which were not bound to shortcuts by default. This list does not include standard shortcuts provided by Notepad++-related plugins.

Edit menu
ShortcutAction
Ctrl-C Copy
Ctrl-Insert Copy
Ctrl-Shift-T Copy current line to clipboard
Ctrl-X Cut
Shift-Delete Cut
Ctrl-V Paste
Shift-Insert Paste
Ctrl-Z Undo
Alt-Backspace Undo
Ctrl-Y Redo
Ctrl-A Select All
Alt-Shift-Arrow keys, or Alt + Left mouse click Column Mode Select
Ctrl + Left mouse click Start new selected area. Only multiple stream areas ca be selected this way.
ALT-C Column Editor
Ctrl-D Duplicate Current Line
Ctrl-T Switch the current line position with the previous line position
Ctrl-Shift-Up Move Current Line, or current selection if a single stream, Up
Ctrl-Shift-Down Move Current Line, or current selection if a single stream, Down
Ctrl-L Delete Current Line
Ctrl-I Split Lines
Ctrl-J Join Lines
Ctrl-G Launch GoToLine Dialog
Ctrl-Q Block comment/uncomment
Ctrl-Shift-Q Stream comment
Tab (selection of one or more full lines) Insert Tabulation or Space (Indent)
Shift-Tab (selection of one or more full lines) Remove Tabulation or Space (outdent)
Ctrl-BackSpace Delete to start of word
Ctrl-Delete Delete to end of word
Ctrl-Shift-BackSpace Delete to start of line
Ctrl-Shift-Delete Delete to end of line
Ctrl-U Convert to lower case
Ctrl-Shift-U Convert to UPPER CASE
Ctrl-B Go to matching brace
Ctrl-Space Launch CallTip ListBox
Ctrl-Shift-Space Launch Function Completion ListBox
Ctrl-Enter Launch Word Completion ListBox
Ctrl-Alt-R Text Direction RTL
Ctrl-Alt-L Text Direction LTR
Enter Split line downwards, or create new line
Shift-Enter Split line downwards, or create new line

Posté par Luc Fricot à 17:40 - Permalien [#]

04 février 2020

e ministère de l'Éducation nationale en Turquie a annoncé qu'il va offrir des accès à Delphi à un million d'étudiants

-
Dans plus de 1600 écoles professionnelles et techniques affiliées au ministère

Le ministère de l'Éducation nationale en Turquie a récemment annoncé qu'il allait offrir des licences Embarcadero Delphi à son corps d'étudiants. Les médias turcs estiment que cette initiative va toucher plus d'un million d'étudiants dans plus de 1600 écoles professionnelles et techniques affiliées au ministère. À cet effet, un protocole de coopération de cinq ans a été signé entre le ministère et le Groupe Information et Technologie (Bilgi ve Teknoloji Grubu).


Dans une déclaration, le directeur de l'enseignement professionnel et technique du ministère de l'Éducation nationale, Kemal Varın Numanoğlu, a indiqué qu'ils se soucient de la formation des étudiants ayant les compétences les plus avancées requises par le marché du travail sur la plateforme nationale et internationale et que tous les processus éducatifs sont effectués en étroite coopération avec le secteur.

Assurant que le ministère poursuit son travail dans cet objectif, Numanoğlu a rappelé que le monde se tourne de plus en plus vers le numérique et que l'importance de l'industrie du logiciel ne cesse de croître. Précisant que de nouvelles et différentes opportunités d'emploi naissent chaque jour dans ce secteur, Numanoğlu a affirmé que le ministère souhaite accompagner dans leur éducation des étudiants qui pourraient maîtriser les technologies de l'information et rattraper le retard. Raison pour laquelle le protocole a été signé avec la participation de Yücel Tepeköy, fondateur du Groupe Information et Technologie.

Numanoğlu est persuadé qu'en enseignant les technologies de développement d'applications modernes, une grande innovation sera réalisée dans l'éducation. Le logiciel Embarcadero Delphi sera installé dans les laboratoires informatiques des écoles dans les domaines des technologies de l'information, des technologies des dispositifs biomédicaux, de la technologie électrique-électronique, des technologies d'automatisation industrielle et des technologies des énergies renouvelables des écoles professionnelles et techniques.

Le Groupe Information et Technologie offrira aux enseignants une formation sur le logiciel Delphi, en plus de fournir le logiciel à installer dans les écoles : « Les étudiants recevront des bourses en organisant des concours nationaux. Le protocole vise également à acquérir de nouvelles compétences dans le monde du logiciel en participant à des événements sectoriels », peut-on lire sur la note.


Certains développeurs se montrent déjà enthousiastes face à cette initiative. C'est le cas de Jon L. Aasenden qui déclare :

« Il est très important de réintroduire l'objet-pascal dans les universités et l'enseignement. Pas seulement pour Delphi en tant que produit ou Embarcadero en tant qu'entreprise, mais pour garantir que la prochaine génération de développeurs de logiciels aura une solide compréhension des concepts de programmation fondamentaux ; des concepts qui représentent les éléments constitutifs sur lesquels repose tout logiciel, dont des langages comme Java et C# s'écartent ou obscurcissent.

« Object Pascal en tant que langage (y compris Freepascal, Oxygene et divers compilateurs alternatifs) fluctue entre #11 et #14 sur l'indice Tiobe depuis quelques années. Tiobe est un index qui suit l'utilisation et la popularité des langages dans le monde et aide les entreprises à savoir où investir. Ainsi, malgré ce que les gens ont été amenés à croire, Delphi a connu une croissance stable pendant de nombreuses années et est beaucoup plus répandue que ne le pensaient les sceptiques.

« En tant que développeur ardent de Delphi, c'est une excellente nouvelle! Non seulement cela aidera la prochaine génération d'étudiants à apprendre la programmation appropriée à partir de zéro - mais cela aidera également à éliminer certains des mythes infondés entourant le langage (et Delphi en particulier) qui sont malheureusement encore diffusés. La plupart de ces rumeurs proviennent de la prise de contrôle hostile de Borland par Microsoft il y a une vingtaine d'années, et ne reflètent en rien la réalité de 2020. Delphi en particulier a traversé plusieurs phases d'évolution et est aujourd'hui à égalité avec son langage compagnon C/C++.

« Je suis ravi que tant de jeunes développeurs aient désormais accès à une édition Delphi moderne et pertinente. Delphi a été un favori des enseignants et des étudiants partout dans le monde, et le retour de Delphi dans les établissements d'enseignement du monde entier est un signe que l'ère du compromis perd de son emprise ».

Sources : Time Turk, billet Aasenden

Posté par Luc Fricot à 15:37 - Permalien [#]

22 septembre 2019

Souris au clavier sous Windows

Mon Touchpad est mort (physiquement ?).
Une Souris classique ne me convient pas (place, dextérité, ...) et ce n'est pas pour faire du graphisme.

Pour activer le contrôle de la souris avec le pavé numérique
Alt + Maj + Num Lock, puis confirmer

touches Alt gauche et Maj gauche

 

Bonjour,

Lorsque le pavé numérique est utilisé comme souris, les touches fonctionnent de la façon suivante :

Déplacements :

1 : diagonale bas gauche
2 : vertical bas
3 : diagonale bas droite
4 : horizontal gauche
6 : horizontal droite
7 : diagonale haut gauche
8 : vertical haut
9 : Diagonale haut droite

Clicks :
5 : clic simple
+ : Double clic

Présélection des clics
/ : présélection du clic gauche
- : présélection du clic droit
* : présélection des deux touches de clic (simultanées)

Cliqué déplacé:
0 : verrouillage du clic gauche (= maintient du clic gauche enfoncé)
. : déverrouillage du clic gauche (= relacher le clic gauche)
Dans la barre des tâches on voit l'état actuel

 

Posté par Luc Fricot à 16:18 - Permalien [#]

09 septembre 2019

FAQ Delphi www.developpez.com

 

FAQ Delphi www.developpez.com

  Sommaire

1. Informations générales (4)
2. Interface utilisateur (190)
3. Généralités (33)
4. Langage (69)
5. Gestion des fichiers (29)
 6. Gestion du temps (19)
7. Les ToolsAPI (1)
8. Utilisation du XM (9)
9. Expressions régulières (9)
10. Firemonkey - FMX (6)
11. LiveBindings (2)
12. IntraWeb (2)
13. Composants Indy (52)
14. Composants ICS (1)
15. Système (171)
16. Services Windows (12)
17. OLE/COM (2)
18. Bases de données (98)
19. Générateurs d'états (9)
20. Microsoft Office (148)
21. OpenOffice.org (40)
22. Gestion de projet (7)
23. Modélisation (2)
24. Multilinguisme et Unicode (4)

//

 

 

Posté par Luc Fricot à 11:06 - Permalien [#]
Tags : , , ,

05 septembre 2019

Gérer la souris (Extrait faq developpez.com)

SommaireSystèmeSouris (5)


 

Pour connaître la position de la souris, il suffit d'utiliser la procédure GetCursorPos (var P : TPoint).

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
var
Position: TPoint;
begin
GetCursorPos(Position);
Showmessage('Les coordonnées de la souris sont X: ' +
IntToStr(Position.X) + ' et Y: ' + IntToStr(Position.Y));
end;
Mis à jour le 18 octobre 2013 atlantis

Il suffit de déplacer la souris, faire croire à Windows que le bouton est appuyé, puis relâcher et remettre (ou pas) le curseur en place. Voici comment faire :

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
MyPoint: TPoint;
begin
GetCursorPos(MyPoint);
{Récupère la position du curseur }
SetCursorPos(300, 200);
{Positionne le curseur sur la fiche }
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
{Simule l'action de clic du bouton gauche de la souris }
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
{Simule l'action de relâcher du bouton gauche de la souris }
SetCursorPos(MyPoint.X, MyPoint.Y);
{Repositionne le curseur à sa position d'origine }
end;
Il existe aussi les constantes :
  • MOUSEEVENTF_RIGHTDOWN et MOUSEEVENTF_RIGHTUP pour provoquer des clics droits ;
  • MOUSEEVENTF_MIDDLEDOWN et MOUSEEVENTF_MIDDLEUP pour provoquer un clic du bouton du milieu ;
  • MOUSEEVENTF_MOVE pour faire croire que la souris a bougé sans la faire bouger ;
  • MOUSEEVENTF_WHEEL pour faire croire que la molette a bougé (sans indication de sens).
Mis à jour le 18 octobre 2013 Al-Yazdi

Il est possible de tester à tout moment l'état d'une touche du clavier ou d'un bouton de la souris grâce à la fonction API :

Code Delphi : Sélectionner tout
function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
Cette fonction retourne l'état de la touche, le bit 15 du résultat est à 1 si la touche (ou le bouton) est actuellement enfoncée. Le test fonctionne aussi même si l'application n'est pas active. Le numéro de touche passé en paramètre doit être le code de touche virtuel. Delphi définit les constantes VK_xxxx pour chaque touche du clavier.

Par exemple, pour tester l'état du bouton gauche de la souris :
Code Delphi : Sélectionner tout
1
2
3
4
5
6
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If (GetAsyncKeyState(VK_LBUTTON)And $8000)<>0
Then Label1.Caption := 'Enfoncé'
Else Label1.Caption := 'Relâché';
end;
Mis à jour le 18 octobre 2013 Nono40

Pour récupérer la position du Hotspot d'un curseur, on utilise la méthode GetIconInfo.

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
function GetHotSpot(CursorIndex:TCursor):TPoint;
var iconInfo: TIconInfo;
begin
if GetIconInfo(Screen.Cursors[CursorIndex], iconInfo) then
try
Result.X:=iconInfo.xHotspot;
Result.Y:=iconInfo.yHotspot;
finally
DeleteObject(IconInfo.hbmColor);
DeleteObject(IconInfo.hbmMask);
//Ces 2 membres sont créés par l'appel à GetIconInfo. Il faut donc les supprimer.
end;
end;
Note : ce code nécessite l'ajout des unités Windows, Types, Forms et Graphics dans la clause uses.
Mis à jour le 14 janvier 2014 Lung

Pour cela, on dessine le curseur récupéré sur le TBitmap à l'aide de la méthode DrawIconEx.

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure CursorToBitmap(CursorIndex:TCursor;var ABmp:TBitmap);
var hCursor: THandle;
begin
ABmp.Width := 32;
ABmp.Height := 32;
ABmp.PixelFormat := pf24bit; // pour éviter de travailler avec les palettes
hCursor := Screen.Cursors[CursorIndex];
DrawIconEx(ABmp.Canvas.Handle, 0,0, hCursor, 32,32, 0,0, DI_NORMAL);
 
// Remplissage du curseur depuis "l'extérieur" de telle façon qu'un curseur blanc
// apparaisse blanc. on suppose que le coin supérieur droit sera le point de départ du remplissage
// On suppose que RGB(250,250,250) sera la couleur de "transparence".
ABmp.Canvas.Brush.Color := RGB(250,250,250);
ABmp.Canvas.FloodFill(31,0, clWhite, fsSurface);
 
// Le coin supérieur gauche de certains curseurs est "bloqué" contre le floodfill
ABmp.Canvas.FloodFill(0,0, clWhite, fsSurface);
end;

Exemple d'utilisation dans le OnClick d'un TButton :

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
iconInfo: TIconInfo;
abmp:tbitmap;
begin
abmp:=TBitmap.Create;
try
//On récupère mon Bitmap (en premier paramètre, 
//on indique quel curseur on souhaite : 
//crHandPoint, crHourGlass, crArrow, etc.)
CursorToBitmap(crHandPoint,abmp);
//On l'affiche sur la fiche
Form1.Canvas.Draw(5,5,abmp);
//ou le sauvegarde 
abmp.saveTofile('MonCurseur.bmp');
finally
abmp.Free;
end;
end;

Note : ce code nécessite l'ajout des unités Windows, Types, Forms et Graphics dans la clause uses

Posté par Luc Fricot à 15:51 - Permalien [#]
Tags : , ,

17 août 2019

liste des prénoms

Abdul
Abel
Abélard
Abélia
Abella
Abondance
Abraham
Achille
Ada
Adam
Adel
Adélaïde
Adélard
Adèle
Adeline
Adelphe
Adhémar
Adnette
Adolf
Adolphe
Adrien
Adrienne
Agatha
Agathe
Aglaé
Agnès
Ahmed
Aimable
Aimé
Aimée
Aimie
Al
Alain
Alan
Alban
Albane
Albéric
Albert
Alberta
Alberte
Albertine
Albin
Aldegonde
Aldo
Alec
Alèthe
Alette
Alex
Alexandra
Alexandre
Alexandrine
Alexia
Alexis
Aleyde
Alfred
Alfreda
Ali
Alice
Alida
Aline
Alison
Alix
Allan
Alodie
Aloïs
Aloysius
Alphonse
Alphonsine
Amanda
Amandine
Ambroise
Amédée
Amel
Amélie
Amos
Anaëlle
Anaide
Anaïs
Anastase
Anastasbr /> Anatole
André
Andrée
Andy
Anémone
Anette
Ange
Angela
Angèle
Angéline
Angélique
Angie
Anicet
Anita
Ann
Anna
Annabelle
Anne
Anne-Marie
Annette
Annick
Annie
Annonciade
Anouchka
Anouck
Anselme
Anthelme
Anthony
Antoine
Antoinette
Anton
Antonin
Anzo
Apollinaire
Apolline
Apollos
Arabelle
Arcady
Archibald
Ariana
Ariane
Arielle
Aristide
Arlette
Armand
Armande
Armel
Armelle
Arnaud
Arnold
Arnould
Arsène
Arthur
Arturo
Assia
Astrid
Astride
Auberi
Aubert
Aubin
Aude
Audrey
Augusta
Auguste
Augustin
Augustine
Aure
Aurèle
Aurélia
Aurélie
Aurélien
Aurore
Ava
Axel
Axelle
Aymar
Aymeric
Aymone²
Babette
Balthazar
Baptiste
Barbara
Barberine
Barnabé
Barnard
Barthélemy
Bartolomé
Basile
Bastien
Bastienne
Bathilde
Béatrice
Beatrix
Bélinda
Ben
Bénédicte
Benito
Benjamin
Benjamine
Benoît
Benoîte
Bérenger
Bérengère
Bérénice
Bernadette
Bernard
Bernardin
Berthe
Bertille
Bertrand
Bette
Bettina
Betty
Bianca
Bienvenue
Bill
Billy
Blaise
Blanche
Blandine
Bluette
Bob
Bonaventure
Boniface
Bonnie
Boris
Brad
Briac
Brian
Briana
Brice
Brigitte
Bruno
Camille
Candide
Capucine
Cara
Carine
Carl
Carla
Carlo
Carlos
Carmen
Carole
Caroline
Cary
Casimir
Cassandra
Cassandre
Catherine
Cécile
Cédric
Céleste
Célestin
Célia
Céline
Césaire
César
Césarine
Chantal
Charles
Charley
Charlie
Charlotte
Charly
Chiara
Chloé
Chris
Christelle
Christian
Christiane
Christine
Christophe
Christopher
Claire
Clara
Clarisse
Claude
Claudette
Claudie
Claudine
Claudius
Cléa
Clélia
Clémence
Clément
Clémentine
Cléo
Clint
Cloé
Clotilde
Clovis
Colette
Colin
Colomban
Colombe
Conrad
Constance
Constant
Constantin
Cora
Coralie
Corentin
Corentine
Corinne
Cosima
Crépin
Cyd
Cyprien
Cyriaque
Cyrille
Dahlia
Daisy
Damien
Daniel
Danièle
Danielle
Dany
Daphné
Daria
Dario
Darry
David
Davy
Déborah
Dédé
Delphine
Denis
Denise
Désiré
Désirée
Diana
Diane
Didier
Diègo
Dietrich
Dieudonné
Dimitri
Dirk
Dolorès
Dominique
Donald
Donatien
Donatienne
Dora
Doria
Dorian
Doriane
Dorine
Doris
Dorothée
Dove
Duane
Edgar
Édith
Edma
Edmée
Edmond
Edmonde
Édouard
Édouardine
Edward
Edwige
Églantine
Egon
Eleanor
Éléonore
Elfried
Elga
Éliacin
Eliane
Élie
Eliette
Eline
Elisa
Élisabeth
Elise
Ella
Elliot
Elmer
Elodie
Éloi
Éloise
Elsa
Elsy
Elton
Elvio
Elvire
Elvis
Emeline
Emeric
Émile
Emilia
Émilie
Émilien
Émilienne
Emma
Emmanuel
Emmanuelle
Ennio
Enrico
Enrique
Éric
Erich
Erika
Ernest
Ernestine
Ernesto
Ernie
Errol
Erwan
Erwin
Esteban
Estelle
Esther
Ethan
Ethel
Étienne
Étiennette
Ettore
Eugène
Eugénie
Eurielle
Eusèbe
Eusebio
Eustache
Éva
Evan
Évariste
Ève
Evelyne
Evrard
Fabien
Fabienne
Fabiola
Fabrice
Fanchon
Fanny
Faustin
Faustine
Félicie
Félicien
Félicienne
Félicité
Félix
Ferdinand
Fernand
Fernande
Fiacre
Fidel
Fidèle
Firmin
Flavie
Flavien
Flora
Florence
Florent
Florentin
Florentine
Florian
Florine
France
Francelin
Franceline
Francette
Francine
Francis
Franck
François
Françoise
Frankie
Franz
Fred
Freddy
Frédéric
Frédérique
Fredo
Frida
Frodon
Fulbert
Gabin
Gabriel
Gabrielle
Gaby
Gad
Gaël
Gaële
Gaëlle
Gaétan
Gaétane
Gala
Galiane
Gaspard
Gaston
Gatien
Gautier
Geneviève
Geoffrey
Geoffroy
Georges
Georgette
Georgia
Georgina
Georgine
Gérald
Géraldine
Gérard
Géraud
Germain
Germaine
Géronima
Gersende
Gertrude
Gervais
Gervaise
Géry
Ghislain
Ghislaine
Gianni
Gigi
Gilbert
Gilberte
Gildas
Gilles
Gina
Ginette
Gino
Giraud
Gisèle
Gladys
Gloria
Godefroy
Gontran
Gonzague
Goulven
Grâce
Gracianne
Gracieuse
Graziella
Greg
Grégoire
Grégori
Grégory
Greta
Guénolé
Guerric
Guewen
Guillaume
Guillaumette
Gustave
Guy
Gwénaël
Gwenaëlle
Gwendoline
Gwenn
Gwénola
Habib
Hans
Harold
Harry
Hartmann
Hector
Hélène
Hélièna
Héloïse
Henri
Henriette
Herbert
Hermance
Hermann
Hermès
Hermine
Hervé
Hilaire
Hilda
Hildegarde
Hippolyte
Honoré
Honorine
Hortense
Hubert
Huberte
Hugo
Hugues
Huguette
Humbert
Hyacinthe
Ian
Ida
Ide
Idi
Idir
Ielena
Ignace
Igor
Ilane
Ilda
Ilena
Ilie
Ilse
Imelda
Imene
Indira
Inès
Inessa
Inge
Ingrid
Inna
Irène
Irènée
Irina
Iris
Irma
Isaac
Isabau
Isabel
Isabelle
Isidore
Issey
Ivan
Ivanne
Ivo
Izia
Jacinthe
Jack
Jackie
Jacky
Jacob
Jacqueline
Jacques
Jacquette
Jacquine
Jacquotte
Jade
James
Jane
Jaouen
Jasmine
Jean
Jean-Claude
Jean-Jacques
Jean-Louis
Jean-Marc
Jean-Marie
Jeanne
Jeannine
Jean-Philippe
Jean-Pierre
Jennifer
Jenny
Jérémie
Jérôme
Jesse
Jessica
Jessy
Jésus
Jézabel
Jim
Joachim
Jocelyne
Joe
Joël
Joëlle
Joévin
Johanne
John
Johnny
Jordane
Joris
José
Joseph
Joséphine
Josette
Josiane
Josse
Juan
Juanita
Judicaël
Judith
Jules
Julia
Julie
Julien
Julienne
Juliette
Juste
Justin
Justine
Juvénal
Karelle
Karin
Karine
Karl
Karren
Kate
Katel
Katia
Katy
Ketty
Kévin
Kim
Kirk
Kurt
Ladislas
Lael
Laela
Laelle
Laétitia
Lambert
Lambertine
Landry
Lara
Larissa
Lars
Laura
Laure
Laurence
Laurent
Laurentine
Laurette
Laurie
Lazare
Léa
Léane
Léger
Leia
Léïla
Léna
Leny
Léo
Léocadie
Léon
Léonard
Leonardo
Léonce
Léone
Léonie
Léonilde
Léonore
Léontine
Léopold
Léopoldine
Leslie
Liam
Lidwine
Lila
Lili
Lilian
Liliane
Lily
Linda
Line
Lino
Lionel
Lisa
Lisbeth
Lise
Lisette
Lisia
Livia
Liz
Lizzie
Loana
Loane
Loïc
Loïck
Loïs
Lola
Lolita
Lore
Loretta
Lorin
Lorraine
Lou
Louis
Louise
Louisiane
Louison
Loup
Lousiane
Luana
Luc
Luca
Lucas
Luce
Lucette
Luciano
Lucie
Lucien
Lucienne
Lucille
Lucrèce
Ludmilla
Ludovic
Ludwig
Luigi
Luis
Luke
Lutgarde
Lydiane
Lydie
Lysiane
Mabel
Maddy
Madeleine
Mae
Maël
Maëlle
Maëva
Magali
Maggy
Maïté
Manon
Manuel
Manuelle
Mara
Marc
Marceau
Marcel
Marcelle
Marcellin
Marcelline
Marcia
Marcien
Marco
Marguerite
Maria
Mariam
Marianne
Mariannick
Marie
Marielle
Marien
Marietta
Mariette
Marilyne
Marin
Marina
Marine
Marinette
Mario
Marion
Marisa
Marius
Marjolaine
Marjorie
Marlène
Marthe
Martial
Martin
Martine
Martinien
Marylène
Marylin
Marylise
Maryse
Maryvonne
Mateo
Mathilde
Mathurin
Matt
Matthias
Matthieu
Maud
Maude
Maurice
Mauricette
Max
Maxime
Maximilien
Maximilienne
Maximin
May
Médard
Médéric
Mehdi
Mel
Melaine
Mélanie
Mélina
Mélissa
Mercédès
Mériadec
Merlin
Mia
Michael
Michel
Michèle
Micheline
Mickaël
Milène
Miloud
Mireille
Miriam
Modeste
Moïse
Momo
Mona
Monica
Monique
Morvan
Mounia
Muriel
Murielle
Myriam
Myrtille
Nadège
Nadette
Nadia
Nadine
Naël
Naïa
Naïs
Nancy
Naomi
Narcisse
Nastasia
Natacha
Nathalie
Nathanaël
Nathanaëlle
Neil
Nello
Nelly
Nest
Nestor
Nicolas
Nicole
Nicoletta
Niels
Nikita
Nils
Nina
Nino
Ninon
Noé
Noël
Noèle
Noelie
Noëlle
Noëllie
Noémie
Nolan
Nolwenn
Nora
Norah
Norbert
Nour
Numa
Octave
Octavie
Octavien
Odette
Odile
Odilon
Olaf
Oleg
Olga
Olive
Olivia
Olivier
Omar
Ombeline
Omer
Onésime
Orane
Oriane
Orianne
Orson
Oscar
Ossip
Oswald
Otmar
Otto
Ousmane
Oussama
Pablo
Paco
Pacôme
Paméla
Pancho
Paola
Pâquerette
Paquita
Paquito
Parfait
Pascal
Pascale
Pascaline
Patrice
Patricia
Patrick
Paul
Paula
Paule
Paulette
Paulin
Pauline
Pedro
Peggy
Pélagie
Perlette
Pernelle
Péroline
Perrette
Perrine
Pervenche
Peter
Pétronille
Philémon
Philibert
Philiberte
Philippe
Philomène
Pierre
Pierrette
Pierrick
Pietro
Placide
Pol
Prisca
Priscilla
Prismaël
Prosper
Prudence
Quentin
Rachel
Rachid
Rachilde
Radegonde
Rainier
Raïssa
Ralph
Raoul
Raphaël
Raphaëlle
Raúl
Ray
Raymond
Raymonde
Reba
Rébecca
Réginald
Régine
Régis
Régnault
Reine
Réjane
Rémi
Rémy
Rénald
Renaldo
Renata
Renato
Renaud
René
Renée
Richard
Rina
Rinat
Rino
Rita
Robert
Roberte
Robin
Robinson
Roch
Rod
Rodolphe
Rodrigue
Rogatien
Roger
Roland
Rolande
Romain
Romaric
Roméo
Romuald
Romy
Ron
Ronald
Ronan
Rory
Rosa
Rosalie
Rosaline
Rose
Roseline
Rosemonde
Rosette
Rosine
Rosita
Rosy
Roxan
Roxanne
Rozenn
Rudi
Rudolf
Rudy
Rufin
Ryan
Saberrah
Sabine
Sabrina
Sacha
Saïd
Sakina
Salma
Salomon
Salvatore
Samantha
Samir
Samson
Samuel
Samy
Sandie
Sandra
Sandrine
Sara
Sarah
Saturnin
Sean
Sébastien
Sébastienne
Ségolène
Selia
Selma
Séraphin
Serge
Sergine
Servan
Servane
Séverin
Séverine
Sheila
Shirley
Sian
Sibille
Sidonie
Siegfried
Sigmund
Sigolène
Silvère
Siméon
Simon
Simone
Soizic
Solange
Solène
Solenne
Soline
Sonia
Sophie
Stan
Stanislas
Stella
Stéphane
Stéphanie
Stephen
Steve
Steven
Stevie
Susan
Susie
Suzanne
Suzette
Suzon
Suzy
Sveltana
Sylvain
Sylvaine
Sylvestre
Sylvette
Sylvian
Sylvianne
Sylvie
Symphorien
Tamara
Tanguy
Tania
Tatiana
Tatienne
Ted
Teddy
Téo
Téofil
Térésa
Tessa
Tex
Thècle
Thelma
Théo
Théodore
Théophane
Théophile
Thérèse
Théroigne
Thibaut
Thiébaud
Thierry
Thomas
Tim
Tina
Tino
Tiphaine
Titouan
Toinette
Tom
Toni
Tonio
Tori
Tudal
Udo
Ugo
Ulrich
Uma
Umberto
Urbain
Urielle
Ursula
Ursule
Valentin
Valentine
Valère
Valéria
Valérie
Valéry
Vanessa
Vanica
Vassili
Vencelas
Véra
Vérane
Véronique
Victoire
Victor
Victoria
Victorien
Victorin
Victorine
Vincent
Vincianne
Violaine
Violetta
Violette
Virgile
Virginie
Viridiana
Vivian
Viviane
Vivien
Vivienne
Vladimir
Walt
Walter
Wenceslas
Werner
Wilfried
William
Willy
Winnoc
Wladimir
Wolfgang
Wulfran
xavier
xavière
Yann
Yannick
Yoann
Yolande
Youri
Youssouf
Ysé
Yul
Yvan
Yves
Yvette
Yvon
Yvonne
Zacharie
Zéphirin
Zéphyrin
Zita
Zoé

Posté par Luc Fricot à 13:12 - - Permalien [#]
Tags : ,

12 août 2019

Liste des sommets de France

 

LES ALPES
Mont Blanc 4810 m
Dôme du Goûter 4304 m
Grandes Jorasses 4208 m
Aiguille Verte 4122 m
Barre des Écrins 4102 m
Aiguille du Géant 4013 m
Meije 3983 m
Mont Pelvoux 3946 m
Grande Casse 3852 m
Aiguille du Midi 3842 m
Aiguille des Glaciers 3816 m
Mont Pourri 3779 m
Aiguille de la Gde Sassière 3747 m
l'Albaron 3638 m
Croix Rousse 3546 m
Aiguille d'Arves 3510 m
Mont Thabor 3181 m
Cime de Gelas 3143 m
Mont Pelat 3051 m
Grand Berard 3048 m
Mont Tenibre 3031 m
Aiguilles Rouges 2965 m
Les 3 Évêchés 2961 m
Mont Mounier 2817 m
Cheval Blanc 2523 m
Dent d'Oche 2222 m
Cime de Marte 2136 m
Les Monges 2115 m
Ventoux 1909 m
Crêt des Neiges 1718 m
Grand Crêt d'Eau 1621 m
Mont Revard 1537 m
Grand Colombier 1531 m
Crêt du Nu 1351 m
Mourre Nègre 1125 m
LES PYRÉNÉES
Pic de Vignemale 3298 m
Pic du Marboré 3253 m
Pic Long 3192 m
Balaïtous 3146 m
Pic de Néouvielle 3091 m
Pic Carlitte 2921 m
Puigmal 2910 m
Pic du Midi d'Ossau 2884 m
Pic du Midi de Bigorre 2872 m
Pic du Canigou 2784 m
Grand Gabizos 2692 m
Pic de ger 2613 m
Pic d'Anie 2504 m
Pic d'Orhy 2017 m
 
+
MASSIF CENTRAL
Puy de Sancy 1885 m
Plomb du Cantal 1855 m
Puy Mary 1787 m
Mézenc 1753 m
Signal de Finiels 1699 m
Puy Griou 1694 m
Mont Aigual 1565 m
Mont Gerbier de Jonc 1551 m
Signal du Luguet 1551 m
Signal de Raudon 1551 m
Banne d'Ordance 1513 m
Signal de Mailhebian 1469 m
Puy de Dôme 1465 m
Mont Mouchet 1465 m
Mont Pilat 1432 m
Mont Caroux 1040 m
Mont Besson 977 m
Pie Saint Loup 658 m
 
JURA
Crêt de la Neige 1718 m
Grand Colombier 1531 m
 
VOSGES
Grand Ballon 1424 m
Hohneck 1362 m
Ballon d'Alsace 1247 m
 
CORSE
Monte Cinto 2710 m
Monte d'Oro 2389 m
Monte Renoo 2352 m
Incudine 2134 m

 

Posté par Luc Fricot à 16:13 - - Permalien [#]
Tags : , ,

09 août 2019

Tri rapide (quicksort) d'une StringGrid

Var gr1:tstringgrid;


procedure TForm1.Button1Click(Sender: TObject);
var x, y, z:integer;
tmpstr : array[0..100] of string;
begin
  with gr1 do
  begin
    for x:= 1 to rowcount -1 do
    for y := 1 to rowcount-x do
      if strtoint(cells[1, y]) > strtoint(cells[1, y+1]) then
        for z := 0 to colcount-1 do
        begin
            tmpstr[z] := cells[z,y];
            cells[z,y] := cells[z, y+1];
            cells[z, y+1] := tmpstr[z];
         end;
   end;
end;

strtoint
strtofloat
strtodatetime

ansicomparestr
ansicomparetext

àâä = a
éèêë = e
îï =i
ôö = o
ùûü = u

 

Posté par Luc Fricot à 15:10 - Permalien [#]
Tags : ,

07 août 2019

Liste des Pays, Capitales, Drapeaux



Drapeaux

Pays Capitale Continent
Afghanistan Kaboul Asie
Afrique du Sud Pretoria Afrique
Albanie Tirana Europe
Algérie Alger Afrique
Allemagne Berlin Europe
Andorre Andorre-la-Vieille Europe
Angola Luanda Afrique
Antigua-et-Barbuda Saint John's Amérique
Arabie Saoudite Riyad Asie
Argentine Buenos Aires Amérique
Arménie Erevan Asie
Australie Canberra Océanie
Autriche Vienne Europe
Azerbaïdjan Bakou Asie
Bahamas Nassau Amérique
Bahreïn Manama Asie
Bangladesh Dacca Asie
Barbade Bridgetown Amérique
 
Belgique Bruxelles Europe
Belize Belmopan Amérique
Bénin Porto-Novo Afrique
Bhoutan Thimbu Asie
Biélorussie Minsk Europe
Birmanie Naypyidaw Asie
Bolivie Sucre Amérique
Bosnie-Herzégovine Sarajevo Europe
Botswana Gaborone Afrique
Brésil Brasilia Amérique
Brunei Bandar Seri Begawan Asie
Bulgarie Sofia Europe
Burkina Faso Ouagadougou Afrique
Burundi Bujumbura Afrique
Cambodge Phnom Penh Asie
Cameroun Yaoundé Afrique
Canada Ottawa Amérique
Cap-Vert Praia Afrique
Chili Santiago Amérique
Chine Pékin Asie
Chypre Nicosie Europe
Colombie Bogota Amérique
Comores Moroni Afrique
Congo Brazzaville Afrique
Corée du Nord Pyongyang Asie
Corée du Sud Séoul Asie
Costa Rica San José Amérique
Côte d'Ivoire Yamoussoukro Afrique
Croatie Zagreb Europe
Cuba La Havane Amérique
Danemark Copenhague Europe
Djibouti Djibouti Afrique
 
Dominique Roseau Amérique
Egypte Le Caire Afrique
Emirats Arabes Unis Abu Dhabi Asie
Equateur Quito Amérique
Erythrée Asmara Afrique
Espagne Madrid Europe
Estonie Tallinn Europe
Etats-Unis Washington Amérique
Ethiopie Addis-Abeba Afrique
Fidji Suva Océanie
Finlande Helsinki Europe
France Paris Europe
Gabon Libreville Afrique
Gambie Banjul Afrique
Géorgie Tbilissi Asie
Ghana Accra Afrique
Grèce Athènes Europe
Grenade Saint George's Amérique
Guatemala Guatemala Amérique
Guinée Conakry Afrique
Guinée équatoriale Malabo Afrique
Guinée-Bissau Bissau Afrique
Guyana Georgetown Amérique
Haïti Port-au-Prince Amérique
Honduras Tegucigalpa Amérique
Hongrie Budapest Europe
Île Maurice Port Louis Afrique
Inde New Delhi Asie
Indonésie Jakarta Asie
Irak Bagdad Asie
Iran Téhéran Asie
Irlande Dublin Europe
Islande Reykjavik Europe
Israël Jérusalem Asie
Italie Rome Europe
Jamaïque Kingston Amérique
Japon Tokyo Asie
Jordanie Amman Asie
Kazakhstan Astana Asie
Kenya Nairobi Afrique
Kirghizistan Bichkek Asie
Kiribati Tarawa Océanie
Kosovo Pristina Europe
Koweït Koweït Asie
Laos Vientiane Asie
Lesotho Maseru Afrique
Lettonie Riga Europe
Liban Beyrouth Asie
Liberia Monrovia Afrique
Libye Tripoli Afrique
 
Liechtenstein Vaduz Europe
Lituanie Vilnius Europe
Luxembourg Luxembourg Europe
Macédoine Skopje Europe
Madagascar Antananarivo Afrique
Malaisie Kuala Lumpur Asie
Malawi Lilongwe Afrique
Maldives Malé Asie
Mali Bamako Afrique
Malte La Valette Europe
Maroc Rabat Afrique
Marshall Majuro Océanie
Mauritanie Nouakchott Afrique
Mexique Mexico Amérique
Micronésie Palikir Océanie
Moldavie Chisinau Europe
Monaco Monaco Europe
Mongolie Oulan-Bator Asie
Monténégro Podgorica Europe
Mozambique Maputo Afrique
Namibie Windhoek Afrique
Nauru Yaren Océanie
Népal Katmandou Asie
Nicaragua Managua Amérique
Niger Niamey Afrique
Nigeria Abuja Afrique
Norvège Oslo Europe
Nouvelle-Zélande Wellington Océanie
Oman Mascate Asie
Ouganda Kampala Afrique
Ouzbékistan Tachkent Asie
Pakistan Islamabad Asie
Palaos Melekeok Océanie
Palestine Jérusalem-Est Asie
Panama Panama Amérique
Papouasie-Nouvelle-Guinée Port Moresby Océanie
Paraguay Asunción Amérique
Pays-Bas Amsterdam Europe
Pérou Lima Amérique
Philippines Manille Asie
Pologne Varsovie Europe
Portugal Lisbonne Europe
Qatar Doha Asie
République Centrafricaine Bangui Afrique
République Démocratique du Congo Kinshasa Afrique
République Dominicaine Saint-Domingue Amérique
République Tchèque Prague Europe
Roumanie Bucarest Europe
Royaume-Uni Londres Europe
Russie Moscou Europe
 
Rwanda Kigali Afrique
Saint-Kitts-et-Nevis Basseterre Amérique
Saint-Marin Saint-Marin Europe
Saint-Vincent-et-les-Grenadines Kingstown Amérique
Sainte-Lucie Castries Amérique
Salomon Honiara Océanie
Salvador San Salvador Amérique
Samoa Apia Océanie
São Tomé et Príncipe São Tomé Afrique
Sénégal Dakar Afrique
Serbie Belgrade Europe
Seychelles Victoria Afrique
Sierra Leone Freetown Afrique
Singapour Singapour Asie
Slovaquie Bratislava Europe
Slovénie Ljubljana Europe
Somalie Mogadiscio Afrique
Soudan Khartoum Afrique
Soudan du Sud Djouba Afrique
Sri Lanka Sri Jayawardenapura Asie
Suède Stockholm Europe
Suisse Berne Europe
Suriname Paramaribo Amérique
Swaziland Mbabane Afrique
Syrie Damas Asie
Tadjikistan Douchanbe Asie
Taïwan Taipei Asie
Tanzanie Dodoma Afrique
Tchad N'Djamena Afrique
Thaïlande Bangkok Asie
Timor-Oriental Dili Océanie
Togo Lomé Afrique
Tonga Nukualofa Océanie
Trinité-et-Tobago Port of Spain Amérique
Tunisie Tunis Afrique
Turkménistan Achgabat Asie
Turquie Ankara Asie
Tuvalu Fanafuti Océanie
Ukraine Kiev Europe
Uruguay Montevideo Amérique
Vanuatu Port-Vila Océanie
Vatican Vatican Europe
Venezuela Caracas Amérique
Viêt Nam Hanoi Asie
Yémen Sanaa Asie
Zambie Lusaka Afrique
Zimbabwe Harare Afrique



Drapeaux

DrapeauPays
Drapeau Afghanistan Afghanistan
Drapeau Afrique du Sud Afrique du Sud
Drapeau Albanie Albanie
Drapeau Algérie Algérie
Drapeau Allemagne Allemagne
Drapeau Andorre Andorre
Drapeau Angola Angola
Drapeau Antigua-et-Barbuda Antigua-et-Barbuda
Drapeau Arabie Saoudite Arabie Saoudite
Drapeau Argentine Argentine
Drapeau Arménie Arménie
Drapeau Australie Australie
 
Drapeau Autriche Autriche
Drapeau Azerbaïdjan Azerbaïdjan
Drapeau Bahamas Bahamas
Drapeau Bahreïn Bahreïn
Drapeau Bangladesh Bangladesh
Drapeau Barbade Barbade
Drapeau Belgique Belgique
Drapeau Belize Belize
Drapeau Bénin Bénin
Drapeau Bhoutan Bhoutan
Drapeau Biélorussie Biélorussie
Drapeau Birmanie Birmanie
Drapeau Bolivie Bolivie
Drapeau Bosnie-Herzégovine Bosnie-Herzégovine
Drapeau Botswana Botswana
Drapeau Brésil Brésil
Drapeau Brunei Brunei
Drapeau Bulgarie Bulgarie
Drapeau Burkina Faso Burkina Faso
Drapeau Burundi Burundi
Drapeau Cambodge Cambodge
Drapeau Cameroun Cameroun
Drapeau Canada Canada
Drapeau Cap-Vert Cap-Vert
Drapeau Chili Chili
Drapeau Chine Chine
Drapeau Chypre Chypre
Drapeau Colombie Colombie
Drapeau Comores Comores
Drapeau Congo Congo
Drapeau Corée du Nord Corée du Nord
Drapeau Corée du Sud Corée du Sud
Drapeau Costa Rica Costa Rica
Drapeau Côte d'Ivoire Côte d'Ivoire
Drapeau Croatie Croatie
Drapeau Cuba Cuba
Drapeau Danemark Danemark
Drapeau Djibouti Djibouti
 
Drapeau Dominique Dominique
Drapeau Égypte Egypte
Drapeau Émirats Arabes Unis Emirats Arabes Unis
Drapeau Équateur Equateur
Drapeau Érythrée Erythrée
Drapeau Espagne Espagne
Drapeau Estonie Estonie
Drapeau États-Unis Etats-Unis
Drapeau Éthiopie Ethiopie
Drapeau Fidji Fidji
Drapeau Finlande Finlande
Drapeau France France
Drapeau Gabon Gabon
Drapeau Gambie Gambie
Drapeau Géorgie Géorgie
Drapeau Ghana Ghana
Drapeau Grèce Grèce
Drapeau Grenade Grenade
Drapeau Guatemala Guatemala
Drapeau Guinée Guinée
Drapeau Guinée Équatoriale Guinée équatoriale
Drapeau Guinée-Bissau Guinée-Bissau
Drapeau Guyana Guyana
Drapeau Haïti Haïti
Drapeau Honduras Honduras
Drapeau Hongrie Hongrie
Drapeau Île Maurice Île Maurice
Drapeau Inde Inde
Drapeau Indonésie Indonésie
Drapeau Irak Irak
Drapeau Iran Iran
Drapeau Irlande Irlande
Drapeau Islande Islande
Drapeau Israël Israël
Drapeau Italie Italie
Drapeau Jamaïque Jamaïque
Drapeau Japon Japon
Drapeau Jordanie Jordanie
Drapeau Kazakhstan Kazakhstan
Drapeau Kenya Kenya
Drapeau Kirghizistan Kirghizistan
Drapeau Kiribati Kiribati
Drapeau Kosovo Kosovo
Drapeau Koweït Koweït
Drapeau Laos Laos
Drapeau Lesotho Lesotho
Drapeau Lettonie Lettonie
Drapeau Liban Liban
Drapeau Liberia Liberia
Drapeau Libye Libye
 
Drapeau Liechtenstein Liechtenstein
Drapeau Lituanie Lituanie
Drapeau Luxembourg Luxembourg
Drapeau Macédoine Macédoine
Drapeau Madagascar Madagascar
Drapeau Malaisie Malaisie
Drapeau Malawi Malawi
Drapeau Maldives Maldives
Drapeau Mali Mali
Drapeau Malte Malte
Drapeau Maroc Maroc
Drapeau Marshall Marshall
Drapeau Mauritanie Mauritanie
Drapeau Mexique Mexique
Drapeau Micronésie Micronésie
Drapeau Moldavie Moldavie
Drapeau Monaco Monaco
Drapeau Mongolie Mongolie
Drapeau Monténégro Monténégro
Drapeau Mozambique Mozambique
Drapeau Namibie Namibie
Drapeau Nauru Nauru
Drapeau Népal Népal
Drapeau Nicaragua Nicaragua
Drapeau Niger Niger
Drapeau Nigeria Nigeria
Drapeau Norvège Norvège
Drapeau Nouvelle-Zélande Nouvelle-Zélande
Drapeau Oman Oman
Drapeau Ouganda Ouganda
Drapeau Ouzbékistan Ouzbékistan
Drapeau Pakistan Pakistan
Drapeau Palaos Palaos
Drapeau Palestine Palestine
Drapeau Panama Panama
Drapeau Papouasie-Nouvelle-Guinée Papouasie-Nouvelle-Guinée
Drapeau Paraguay Paraguay
Drapeau Pays-Bas Pays-Bas
Drapeau Pérou Pérou
Drapeau Philippines Philippines
Drapeau Pologne Pologne
Drapeau Portugal Portugal
Drapeau Qatar Qatar
Drapeau République Centrafricaine République Centrafricaine
Drapeau République Démocratique du Congo République Démocratique du Congo
Drapeau République Dominicaine République Dominicaine
Drapeau République Tchèque République Tchèque
Drapeau Roumanie Roumanie
Drapeau Royaume-Uni Royaume-Uni
Drapeau Russie Russie
 
Drapeau Rwanda Rwanda
Drapeau Saint-Kitts-et-Nevis Saint-Kitts-et-Nevis
Drapeau Saint-Marin Saint-Marin
Drapeau Saint-Vincent-et-les-Grenadines Saint-Vincent-et-les-Grenadines
Drapeau Sainte-Lucie Sainte-Lucie
Drapeau Salomon Salomon
Drapeau Salvador Salvador
Drapeau Samoa Samoa
Drapeau São Tomé et Príncipe São Tomé et Príncipe
Drapeau Sénégal Sénégal
Drapeau Serbie Serbie
Drapeau Seychelles Seychelles
Drapeau Sierra Leone Sierra Leone
Drapeau Singapour Singapour
Drapeau Slovaquie Slovaquie
Drapeau Slovénie Slovénie
Drapeau Somalie Somalie
Drapeau Soudan Soudan
Drapeau Soudan du Sud Soudan du Sud
Drapeau Sri Lanka Sri Lanka
Drapeau Suède Suède
Drapeau Suisse Suisse
Drapeau Suriname Suriname
Drapeau Swaziland Swaziland
Drapeau Syrie Syrie
Drapeau Tadjikistan Tadjikistan
Drapeau Taïwan Taïwan
Drapeau Tanzanie Tanzanie
Drapeau Tchad Tchad
Drapeau Thaïlande Thaïlande
Drapeau Timor-Oriental Timor-Oriental
Drapeau Togo Togo
Drapeau Tonga Tonga
Drapeau Trinité-et-Tobago Trinité-et-Tobago
Drapeau Tunisie Tunisie
Drapeau Turkménistan Turkménistan
Drapeau Turquie Turquie
Drapeau Tuvalu Tuvalu
Drapeau Ukraine Ukraine
Drapeau Uruguay Uruguay
Drapeau Vanuatu Vanuatu
Drapeau Vatican Vatican
Drapeau Venezuela Venezuela
Drapeau Viêt Nam Viêt Nam
Drapeau Yémen Yémen
Drapeau Zambie Zambie
Drapeau Zimbabwe Zimbabwe

Posté par Luc Fricot à 14:13 - - Permalien [#]
Tags : , , ,

02 août 2019

Liste des compositeurs

http://www.ecoles.cfwb.be/argattidegamond/Cartable%20musical/Liste.htm
https://www.symphozik.info/compositeurs-epoques-musicales.html

ADAM de la HALLE


1240 v.

Arras

1285 v.

Naples (?)

Albinoni 

Tomaso

1671

Venise

1750

Venise

ALLEGRI

GREGORIO

1582

Rome

1652

Rome

Auric

Georges

1899

Lodève

1983

Paris

BACH

JOHANN SEBASTIAN

1685

Eisenach

1750

Leipzig

BARBER

Samuel

1910

West Chester

1981

New York

BARTÓK

Béla

1881

Nagyszentmiklos

1945

New-York

Beethoven

Ludwig Van

1770

Bonn

1827

Vienne

Bellini

Vincenzo

1801

Catane

1835

Puteaux

Berg

Alban

1885

Vienne

1935

Vienne

Berlioz

Hector

1803

Côte-Saint-André

1869

Paris

BINCHOIS

Gilles

1400 v.

Mons

1460

Mons

Bizet

Georges

1838

Paris

1875

Bougival

BOCCHERINI

Luigi

1743

Lucques

1805

Madrid

Boulez

Pierre

1925

Montbrison

 


 


BORODINE

Alexandre

1833

Saint-Pétersbourg

1887

Saint-Pétersbourg

Brahms

Johannes

1833

Hambourg

1897

Vienne

BRIDGE

Frank

1879

Brighton 

1941

Eastbourne

Britten

benjamin

1913

Lowestoft

1976

Aldeburgh

BRUCKNER

Anton (Josef)

1824

Ansfelden

1896

Vienne 

BRUNEAU Alfred

1857

Paris 1934 Paris
BUSONI Ferruccio 1866 Florence 1924 Berlin

BYRD

WILLIAM

1542 v.

Londres

1623

 


cage

John

1912

Los Angeles

1992

New-York

CAMPION Thomas 1567 Londres 1620 Londres
CATALANI ALfredo 1854 lucques 1893 Milan

Chabr♣ier          

EMMANUEL

1841

AMBERT

1894

PARIS

CHARPENTIER

Marc-Antoine

1643

Paris

1704

Paris

CHAUSSON

Ernest

1855

Paris

1899

Limay

CHERUBINI

Luigi

1760

Florence

1842

Paris

CHOPIN

Frédéric

1810

Zelazowa Wola

1849

Paris

CHOSTAKOVITCH

Dimitri 

1906

Saint-Pétersbourg

1975

Moscou

Clérambault

Louis-Nicolas   1632 Paris 1687 Paris

CORELLI

ARCANGELO

1653

Fusignano 

1713 

Rome

COUPERIN

François

1668

paris

1723

paris

CUI CéSAR  1835 Vilnius 1918 Saint-Pétersbourg.

DEBUSSy

Claude

1862

Saint Germain en Laye

1918

Paris

DELALANDE

Michel - Richard

1657

paris

1726

versailles

DONIZETTI

Gaetano

1797

Bergame

1848

Bergame

DOWLAND

John

1562

Dublin 

1626

Londres

DUFAY

Guillaume

1400 v.

Hainaut

1474

Cambrai

Dukas

Paul

1865

Paris 

1935

Paris

DUNSTABLE 

John

1390 v.

 


1453

 


ELGAR

Edward

1857

Broadheath

1934

Worcester

FAURe+

GABRIEL

1845

Pamiers

1924

Paris

Frescobaldi

Girolamo

1583

Ferrare

1643

Rome

Franck

César

1822

Liège

1890

Paris

gabrieli

 

Andrea

1510

 


1586

 


GAbrieli

Giovanni

1555

VENISE

1612

VENISE

Gershwin Georges  1898 New-York 1937 Beverly Hills

Glass

Philip

1937

Chicago

 


 


GRIEG

Edvard

1843

 Bergen

1907

Bergen

GLINKa

Mikhaïl Ivanovitch

1804

Novospaskoïé

1857

Berlin

GLUCK

Christoph Willibald Von

1714

Erasbach

1787

Vienne

Gounod

CHARLES 1818 Paris 1893 Saint-Cloud

Grétry

 André

1741

Liège

1813

Liège

HAENDEL

Georg Friedrich

1685

Halle

1759

Londres

HAYDN

Franz Joseph

1732

Rohrau

1809

Vienne 

HINDEMITH

Paul

1895

Hanau

1963

Francfort

Holst

GUSTAV

1874

Cheltenham

1934

Londres

Honegger

Arthur

1892

Le Havre

1955

Paris

INDY

VINCENT d'

1851

Paris

1931

Paris

Janacek

 


 


 


 


 


JANEQUIN 

Clément

1480 V.

Châtellerault

1560 V.

Paris

JOSQUIN DES PRÉS

 


1440 V.?

 


1521 V.

 


Koechlin CHARLES 1867 Paris 1950 Le Canadel

LALO 

Edouard

1823

 Lille

1892

Paris

LANDINI

Francesco

1325 V.

Fiesole

1397

Florence

LASSUS

ROLAND de

1532

Mons

1594 

Munich

léonin

 


1135 1201?

 


1163 1190?

 


LESUEUR

Jean-François

1760

Drucat-Plessiel

1837

paris

LIGETi

György Sãndor

1923 Tirnaveni 2006 VIENNE

LISZT

Franz

1811

Raiding

1886

Bayreuth

Locatelli Pietro Antonio

1695

Bergame

1764

Amsterdam

LULLY

Jean-Baptiste

1632

Florence

1687

Paris

MACHAU(L)T

Guillaume de

1300 v.?

Reims

1377

Reims 

MAHLER

Gustav

1860 

Kaliste

1911

Vienne

MARAIS

Marin

1656 

Paris

1728

Paris

MENDELSSOHN

Felix

 1809

Hambourg

1847

Leipzig

Messiaen

Olivier

1908

Avignon

1992

Paris

MONTEVERDI

Claudio

1567

Venise

1643

Crémone

Moussorgski

Modeste  Petrovitch

1839

Karevo

1881

Saint-Pétersbourg

MOZART

Wolfgang Amadeus

1756

Salzbourg

1791

Vienne

OCKEGHEM

Johannes

1410 v.

Hainaut

1497 v.

Tours

Offenbach

Jacques

1819

Cologne

1880

Paris

ORFF

Carl

1895

Munich

1982

Munich

Pachelbel                  

Johann

1653

Nuremberg

1706

Nuremberg

PALESTRINA

Giovanni Pierluigi da

1525

palestrina

1594

Rome

PERGOLÈSE

Giovanni Battista

1710

Jesi

1736

Pozzuoli

Pérotin

 


1160 v.

 


1230 v.

 


Poulenc

 


 


 


 


 


PROKOFIEV

Sergueï Sergeievitch

1891

Sontsovka

1953

Moscou

PUCCINI

Giacomo

1858

Lucques

1924 

Bruxelles

PURCELL  

Henry

1659

Londres

1695

Westminster

Rachmaninov

 


 


 


 


 


RAMEAU

JEAN PHILIPPE

1683

Dijon

1764

Paris

RAVEL

Maurice

1875

Ciboure

1937

Paris

REICH Steve

1936

New York    
Respighi Ottorino

1879

Bologne 1936 Rome

ROSSINI

Gioachino

1792

Pesaro

1868

Paris

Roussel

 


 


 


 


 


Sainte - Colombe

Monsieur de

1660

 


1720 ?

 


Sainte - Colombe Monsieur de (le père)



SAINT - SAENS

Camille

1835

Paris

1921

Alger

SATIE

Erik

1866

Honfleur

1925

Paris

SCARLATTI

Alessandro

1660

Palerme

1725

Naples

SCARLATTI

Domenico

1685

Naples

1757

Madrid

Schönberg

ARNOLD

1874

Vienne

1951

Los Angeles

SCHUBERT

Franz

1797

Lichtental

1828

Vienne

SCHUMANN

Robert

1810

Zwickau

1856

Endenich

Schütz

Henrich

1585

Köstritz

1672

Dresde

SERMISY

Claudin de

1490


1562

 


Smetana

BEDRICH

1824

Leitomischl

1884

Prague

Schnittke ALFRED 1934 ENGELS 1998 HAMBOURG

Stockhausen

Karlheinz

1928

Mödrath

 


 


STRAUSS

Richard

1864

Munich

1949

Garmisch

STRAVINSKY

Igor

1882

Oranienbaum

1971

New York

TAILLEFERRE  

GERMAINE

1892

Saint-Maur-des-Fossés

1983

Paris

Tamberg

Eino

1930

Tallinn

 


 


TALLIS THOMAS 1505-10? ? 1585 LONDRES (GREENWICH)

Tartini

Giuseppe

1692

Pirano

1770

Padou

Tchaïkovski

Piotr Ilitch

1840

Votkinsk

1893

Saint-Pétersbourg

TELEMANN

Georg Philipp

1681

Magdebourg

1767

Hambourg

van Rossum

Frédéric

1939

Bruxelles

 


 


VERDI

Giuseppe

1813

Le Roncole

1901

Milan

VIVALDI

ANTONIO

1678

Venise

1741

Vienne

WAGNER

Richard

1813

Leipzig

1883

Venise

WEBER

Carl-Maria von

1786

Eutin

1826

Londres

WEBERN

Anton

1883

Vienne

1945

Mittersill

Willaert

Adrian

1490 v.

Bruges ?

1562

Venise

Xenakis

Iannis

1922

Braïla

2001

Paris

Zemlinsky

Alexander von

1871

Vienne

1942

New York

++

https://www.symphozik.info/biographies-musiciens.html

Posté par Luc Fricot à 12:35 - - Permalien [#]
Tags : ,