Jump to content

Search the Community

Showing results for tags 'Programmation'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Discussions communautaires
    • Annonces importantes
    • Suggestions
    • Postulation
    • Présentation des membres
    • Discussions générales
    • Multimédias
    • Jeux vidéos
    • Actualités
    • Aide / Support
    • Études
    • Archives
  • Informatique
    • Projets des membres
    • Autres / Divers / Découvertes
    • Crypto-monnaie(s)
    • Hardware / Electronique
    • Réseaux
    • Gestion de serveur
    • Système d'exploitation : Smartphone
    • Système d'exploitation : Ordinateur
  • Programmation
    • Projets des membres
    • Développement web
    • Développement de logiciels
    • Développement d'applications pour smartphones
    • Outils du développeur
    • Aide / Support
  • Emulation
    • Aion
    • Arma III
    • Dofus
    • Dragonica
    • Emulateurs consoles
    • S4 League
    • FlyFF
    • Grand Theft Auto
    • Minecraft
    • Tera
  • Partenariats
    • <b>WoW Emu - La communauté émulation WoW</b>
    • <b>ActuGaming</b>
    • <b>H-Wars</b>
    • <b>EasyChat - Solution gratuite de chat client et serveur (anciennement Melichat)</b>
    • <b>Le Monde des Lunes</b>
    • <b>DansTonCode</b>

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Skype


Site web


AIM


MSN


ICQ


Yahoo


Jabber


Tox


Centres d'interêts


Localisation


Study level

Found 25 results

  1. CodeAnywhere Aujourd'hui je viens vous présenter un site que j'ai découverts, qui a l'air vachement intéressant : CodeAnywhere. C'est un OCE (Online Code Editor / Editeur de code en ligne), et en gros cela vous permet de travailler sur un projet depuis n'importe où. Si vous disposez d'un projet commun ou personnel, qu'il soit sur votre Dropbox , votre Github, votre FTP ou d'autres services du cloud, CodeAnywhere vous permet de coder e t travailler dessus depuis n'importe où dans le monde. Il vous suffit de vous rendre sur le site pour travailler sur votre projet, et c'est super intéressant. Visiblement, tout les langages sont nativement pris en charge, du moins la plus grande majorité. Des offres payantes existent pour coder à plusieurs de ce que j'ai cru comprendre, mais l'offre de base est très bien pour une utilisation personnelle. Petit plus personnel : Le SSL est activé sur l'ensemble du site. https://codeanywhere.com/
  2. Bonjour, je suis Alexis, j'ai 18 ans, je suis actuellement en Terminale Sti2d(itec), j'envisage de rentrer dans un DUT informatique l'année prochaine. Je programme en C depuis quelques années, mais je ne suis jamais allé bien loin par manque de temps ...Mais cette fois-ci, je me suis dit que j'allais me lancer dans un gros projet qui me permettra d'apprendre beaucoup de choses. Genèse Ce projet à vue le jour cette année, j'avais besoin d'un projet, d'un objectif à partir du moment ou je recommençais la programmation. Si on ne s'exerce pas on ne va jamais bien loin bien souvent. J'ai eu envie de réaliser un jeu moi-même et être présent sur toutes les étapes de sa conception. Généralités et avancement Commencement du programme informatique : 14/02/2014 Ce programme a pour but de proposer un petit jeu en console dans le style d'un RPG(Role-Playing Game) Pour le moment, le joueur à la possibilité de se déplacer sur une map réalisé avec les caractères du clavier à l'aide des touches fléchées pour aller combattre des monstres de différents levels, il a la possibilité d'acheter des équipements à partir du level 1 ! -système de combat : Quatres attaques de disponible (attaque et soin) -Les monstres peuvent seulement attaquer -système de shop : 20 items différents, deux nouveaux à chaque nouveau level -monstres : 10 monstres différents -map : 4* 70*21 caractères. Objectifs Pour la prochaine mise à jours: -système de gain de ressource, de confection d'équipement -possibilité de vendre ses ressources et d'autres petit ajout Pour jouer: Les touches flêché servent à se déplacer -La touche "s" permets de consulter ses stats Pour le télécharger: v: 0.2(dimanche 09/03/2013 http://toutbox.fr/hhelsonalexis/Documents/rpg+v0.2 v: 0.1(vendredi 07/03/2014) http://toutbox.fr/hhelsonalexis/Documents Pour lancer le jeu, mettez les deux fichier dans le même documents sinon vous aurez un problème de dll. Amélioration du contenu existant: -Enlever le système de fermeture automatique de a fenêtre -Améliorer la rapidité des combats -Amélioration de la présentation Mot de la fin: C'est mon premier gros projet, j'aimerais des retours constructifs ps: Je sais pas encore si je mettrais mon jeu en Anglais ou en Français c'est pour ça qu'il y a des mots dans les deux langues Bonne journée
  3. Recherche par dichotomie La recherche dichotomique est un moyen efficace de trouve l'indice d'un nombre dans un tableau trié. Par rapport à une recherche classique, vous ferez moins de lecture dans votre tableau. Principe : C'est très simple ! Prenons le tableau contenant 10 éléments : 1 | 4 | 7 | 8 | 10 | 15 | 18 | 19 | 32 | 35 Celui-ci est trié de manière croissante et il faut qu'il le soit impérativement ! Théorie : Comme dans une recherche simple, vous allez devoir faire une boucle. Mais cette fois vous commencerez au milieu du tableau (donc ici à l'indice n°5). Si votre nombre est inférieur au nombre de l'indice du milieu (tab[5]), alors vous vous concentrerez que sur la partie inférieure (gauche) de votre tableau. Si votre nombre est supérieur au nombre de l'indice du milieu (tab[5]), alors vous vous concentrerez que sur la partie supérieure (droite) de votre tableau. Vous recommencerez jusqu'à trouver l'indice du nombre. Exemple : Je cherche l'indice du nombre 8. Je me place à la moitié de mon tableau (indiceMilieu = 5) et je regarde si mon nombre est plus grand, plus petit ou égal. Il est plus petit donc je me concentre sur les nombres d'indices compris entre 0 et 5.Je me place à la moitié ( (0 + 5) / 2 = 2). tab[2] < 8 donc je concentre sur les nombres d'indices compris entre 2 et 5.Je me place à la moitié ( (2 + 5) / 2 = 3) . tab[3] = 8 donc je peux arrêter et retourner l'indice correspondant.En conclusion, je n'ai que 3 itérations avec la recherche dichotomique. Avec une rechercher classique, j'aurais eu 4 itérations. Ceci est peut-être insignifiant dans ce cas mais sur des grands tableaux, la recherche dichotomique est très utile. Implémentation en Java : Petit cadeau, je vous offre la fonction java qui permet de faire une recherche par dichotomie mais je vous conseil de la coder vous même car elle n'est pas très dure et c'est toujours instructif de faire les chose sois-même
  4. Bonjour, je rédige ce sujet suite à lancée par Soulalex. L'idée serait de faire un framework PHP réalisé par les membres de Melinyel. Ce sujet a pour but de définir clairement nos objectifs et les participants. Si vous voulez participer au développement de ce framework, même un petit peu, précisez-le à la suite de ce message : Caractéristiques (à débattre) : Langage - PHP5 / MySQL (pour les fonctionnalités). - HTML5 / CSS3 (pour le web design). Repo GitHub : https://github.com/Melinyel-dev/MeliFramework (vide pour l'instant).Site web : http://meliframework.melinyel.net/ Fonctionnalités recherchées (n'hésitez surtout pas à en proposer) : Interaction très simplifiée mais sécurisées avec MySQL.Gestion des fichiers (upload / download / rename / déplacements)Un ORMUne gestion dynamique des URLsGérer les appels RESTfulÉvidement adopter une construction MVCPouvoir configurer et gérer différents environnements (test, dev, beta, prod, ....)Gérer et capturer les erreurs et exceptions côté serveur (librairie de type Whoops)Adopter une construction permettant l'exécution de routines évènementiellesUn système de profiling et de benchmarkingSystème avancé de gestion de mailing (?)
  5. Bonjour, Étant donné qu'une majorité de membres connaissent les bases de l'informatique et de la programmation, je m'adresse à l'autre partie de la communauté : ceux qui ne connaissent pas encore ce merveilleux monde de la programmation, mais qui cependant veulent commencer à s'y lancer. Alors, ce sujet sera très simple car il consistera en une première mission pour vous : Découvrir les bases. Pour cela, le plus simple reste inévitablement le Site du Zéro, avec le tutoriel en HTML5 & CSS3 que vous pouvez constater juste là : http://fr.openclassrooms.com/informatique/cours/apprenez-a-creer-votre-site-web-avec-html5-et-css3 Ce tutoriel commence par vous apprendre les bases, il est fait pour des lecteurs n'ayant non seulement aucune base en programmation mais également de faibles bases en informatiques. Ainsi, tout le monde peut se lancer dans ce tutoriel et finir avec, je vous le garantis, un solide bagage en HTML / CSS (ce qui est déjà un début, ne sous-estimons pas un langage). A la fin de ce tutoriel, vous serez tous capable de créer un site simple (et vous pourrez l'héberger via Melinyel sans doute, par la suite), et de partager vos créations pour avoir des conseils, de l'aide, etc... Ceux qui ne connaissent pas la programmation, commencez par là, c'est un réel conseil.
  6. Swift...c'est le nom donné au remplaçant d'Objectif-C. Plus sûr, plus simple, plus rapide, on voit apparemment que des avantages sur ce nouveau langage développé par Apple pour réaliser des applications sur l'App Store. Un petit exemple de performance par rapport à l'Objectif-C et Python : Bien entendu, ce qu'Apple affirmme. La syntaxe serait plus simple, elle se rapprocherai des langages de script web. Quelque choses de très intéressant, c'est la prise en charge de tout un ensemble de procédures d’initialisation et de vérification, comme la gestion de la mémoire par exemple, et encore très intéressant, ce nouveau langage permet aussi de voir instantanément le résultat de certaines séquences de codes ( exemple en imageaffiché juste dessous ). Un très bonne nouvelle pour les développeurs. Et les dév Objectif-C, que va t'il se passer pour eux ? Ne vous inquiétez pas, sur ce coup là, Apple a tout prévu. Les applications écrites en C et en Objective-C continueront d'être supportées par l'App Store et Swift pourra s'intégrer à l'Objectif-C ce qui permettra donc de faire une mis à jour de l'application en question avec Swift sans avoir à transposer tout le code Objectif-C en Swift. Voilà un petite exemple : Tiens, pas de points virgules...je vous laisse lire la documentation si ce langage vous parait intéressant. Et...ah oui ! Un jeu a déjà été codé en Swift, comment il s'appelle déjà ? Ah oui...Flappy Bird ! Voilà, cela en ravira certainement plus d'un... Apple en particulier car cela permettra d'agrandi le nombre d'applis sur son App Store. Ce nouveau langage reste tout de même propriétaire, on est chez Apple. Qu'en pensez-vous ?
  7. Bonjour ! Souvent, on code un site, et on se dit "mince, elle fait quoi dejà cette balise ? " ou "c'est quelle balise pour faire telle chose ?". C'est pour cela que je vous propose un petit récapitulatif des balises utilisées en HTML5 ainsi que de leurs fontions. Un exemple concret est présent quand on clique sur les balises. ( liste trouvée sur http://41mag.fr/liste-des-balises-html5) <!– … –> Définit un commentaire <!DOCTYPE> Définit le type du document <a> Définit un lien <abbr> Définit une abréviation <address> Définit une adresse <area> Définit une zone à l’intérieur d’une image <article> Définit un article <aside> Définit une partie latérale au contenu <audio> Définit un fichier audio <b> Texte en gras <base> Définit une URL de base pour tous les liens de la page <bdo> Définit la direction du texte <blockquote> Définit une longue citation <body> Définit le corps de la page <br> Saut de ligne <button> Définit un bouton cliquable <canvas> Définit un graphique <caption> Légende du tableau <cite> Définit une citation <code> Mise en forme d’un texte en code informatique <col> Définit une colonne d’un tableau <colgroup> Définit un groupe de colonne pour un tableau <command> Définit un bouton de commande <datalist Définit une liste d’options <dd> Définition d’un terme <del> Définit un texte supprimé <details> Définit les détails d’un élément <dfn> Définition <div> Définit un calque ou une section <dl> Liste de définition <dt> Définition d’un terme <em> Mise en exergue d’un texte – italique <embed> Définit un contenu extérieur (audio, vidéo …) <fieldset> Regroupe plusieurs éléments d’un formulaire <figcaption> Légende d’un groupe d’élément multimédia <figure> Définit un groupe d’élément multimédia <footer> Définit le bas d’un section ou d’une page <form> Définit un formulaire <h1> to <h6> Définit un titre par degré importance de 1 à 6 <head> Définit l’en-tête d’un document <header> Définit le haut d’une section ou d’une page <hgroup> Regroupe les informations du haut d’une page ou section <hr> Barre horizontale <html> Définit un document html <i> Texte en italique <iframe> Introduit un page html dans une frame <img> Définit une image <input> Définit un champ <ins> Définit un texte insérer <keygen> Générateur de clé pour un formulaire <kbd> Raccourcis ou touche du clavier <label> Légende d’un groupe d’élément de formulaire <legend> Titre d’un groupe d’élément d’un formulaire <li> Élément d’une liste <link> Définit les relations entre les documents <map> Définit une carte <mark> Mise en valeur d’un mot ou d’un texte – Texte marqué <math> Définit une formule mathématique <menu> Définit un menu en liste <meta> Définit des informations relatives au document <meter> Définit une unité de mesure <nav> Définit un groupe de liens de navigation <noscript> Définit une alternative au script non supporté <object> Définit un objet du contenu extérieur multimédia <ol> Définit une liste ordonné <optgroup> Regroupe d’une liste d »option dans un formulaire <option> Option d’une liste dans un formulaire <output> Définit un type de sortie <p> Définit un paragraphe <param> Définit les paramètres d’un objet <pre> Texte pré-formaté <progress> Définit une progression <q> Définit une courte citation <rp> Annotation ruby si le script n’est pas supporté <rt> Annotation ruby d’explication <ruby> Définit une annotation en ruby <samp> Définit un échantillon de code <script> Définit un script <section> Définit une section <select> Définit une liste sélectionnable <small> Minimise l’importance d’un texte <source> Définit la source d’un contenu multimédia <span> Définit une section de type inline <strong> Mise en exergue d’un texte – Texte en Gras <style> Définit un style CSS <sub> Mise en indice d’un texte <summary> Définit l’en-tête des détails d’un document ou section <sup> Mise en exposant d’un texte <svg> Définit une image vectorielle <table> Définit un tableau <tbody> Définit le corps d’un tableau <td> Définit une cellule d’un tableau <textarea> Définit une zone de texte <tfoot> Définit le bas d’un tableau <th> Définit une cellule d’en-tête d’un tableau <thead> Définit le haut d’un tableau <time> Définit une unité de temps <title> Définit le titre d’un document <tr> Définit une ligne de tableau <track> Définit une unité de temps pour les éléments <audio> et <video>. <ul> Définit une liste non-ordonné <var> Définit une variable <video> Définit une vidéo <wbr> Définit un possible retour à la ligne
  8. Si vous souhaitez apprendre la programmation Python, vous trouverez ici une liste des différentes ressources qui vous seront utiles pour votre apprentissage. Outils nécessaires :Python : Disponible sur tous les systèmes d'exploitation, c'est l'outil essentiel pour programmer en Python. Cours :Apprenez à programmer en Python (de prolixe d'OpenClassrooms) : Ce cours vous aidera à obtenir un bon niveau pour programmer en python. Il est à noter que plusieurs mois d'apprentissage sont nécessaires pour parvenir à réussir les exercices contenus dans ce cours. Tutoriels :Tutoriels sur Developpez.com : De nombreux tutoriels susceptibles de vous aider se trouvent sur ce site. Documentations :https://www.python.org/doc/ : La documentation officielle du Python est toujours une bonne amie quand on recherche une fonction.
  9. Bonjour à tous, Après avoir passé une fois de plus mon après-midi à regarder des démos, j'ai eu une petite idée : pourquoi ne pas créer une catégorie relative à la demoscene sur Melinyel ? Je pense que l'univers de la demo colle parfaitement à l'esprit du forum (un grand mix d'informatique, de créations graphiques, musicales, algorithmiques et vidéoludiques). Cela serait l'occasion de faire découvrir cet univers, et de partager quelques trouvailles (voire de partir sur une petite production communautaire, pourquoi pas si des gens sont motivés). Si besoin, je me ferais un plaisir de rédiger une petite introduction relative à la "scene" En espérant que l'idée plaise.
  10. Si vous souhaitez apprendre la programmation Java, vous trouverez ici une liste des différentes ressources qui vous seront utiles pour votre apprentissage. Outils nécessaires : Eclipse : C'est l'IDE le plus utilisé par les développeurs Java. IntelliJ Idea : Un autre IDE pour programmer en Java. Cours : Apprenez à programmer en Java (de Cyrille Herby d'OpenClassrooms) : Ce cours vous aidera à obtenir un bon niveau pour programmer en Java. Il est à noter que plusieurs mois d'apprentissage sont nécessaires pour parvenir à réussir les exercices contenus dans ce cours. Tutoriels : Tutoriels sur Developpez.com : De nombreux tutoriels susceptibles de vous aider se trouvent sur ce site. Documentations : - : La documentation officielle du Java est toujours une bonne amie quand on recherche une fonction.
  11. Sublime Text Aujourd'hui, je viens vous présenter le logiciel par excellence pour développer en HTML / CSS ou même dans quasiment tout les autres langages ne nécessitant pas de compilation (essentiellement du web) : Sublime Text. Liens : http://www.sublimetext.com/ Téléchargement : Sublime Text 3 is currently in beta. The latest build is 3059.OS X (10.7 or later is required)Windows - also available as a portable versionWindows 64 bit - also available as a portable versionUbuntu 64 bit - also available as a tarball for other Linux distributions.Ubuntu 32 bit - also available as a tarball for other Linux distributions. Il n'y a pas grand chose à dire non plus sur ce logiciel, à part que l'essayer c'est l'adopter. Il y a une version payante du logiciel, je n'ai cependant jamais compris à quoi sert-elle puisque la version gratuite dispose de toute les fonctionnalités de manière illimité dans le temps (à part un popup qui apparait toutes les 10 à 15 sauvegardes de fichiers, pour vous demander si vous voulez acheter la license). Quelques screenshots : C'est le logiciel que j'utilise personnellement pour tout mes projets web et je le recommande à tout le monde.
  12. Salut, tout le monde. connaissez-vous des musiques pour rester concentré pendant que l'ont code ? j'ai pas mal recherché, je trouve le dubstep et chillstep pas trop mal, mais il y a surement mieux. il ne faut pas de parole (pas français en tout cas) pour éviter d'écouter et de dévier notre concentration.
  13. Bonjour à tous L'idée d'avoir un GitHub commun au forum est de pouvoir exposer les codes / scripts / projets sérieux des melinyens en programmation. Dans cet ordre d'idée, deux comptes ont été mis en place. Le GitHub de Melinyel : http://github.com/melinyel Ce compte là exposera les différents scripts, soit par upload soit par fork. Vous n'y aurez pas accès directement pour uploader mais vous pouvez envoyer une archive de votre code par MP à Azad pour qu'il soit mit en ligne. Le GitHub de programmation de Melinyel : http://github.com/melinyel-dev Ce compte est une organization, c'est à dire que c'est un groupe commun où se retrouve les développeurs de Melinyel pour travailler sur un projet commun. Là où le premier compte a plus un intérêt d'exposition, ici c'est clairement de la participation. Membres dans l'organization : Azad / Anaeria / Tiphedor / AlexMog / Soulalex Précisions utiles : Chaque code / script peut-être exposé sur le premier compte (du moment que c'est bien de la programmation, et quelque chose d'utile (ne m'envoyez pas un script de boucle infini, par exemple)). Il suffit de demander. Chaque personne ayant des compétences en programmation (prouvées) peut demander à être intégrer dans l'organization du deuxième compte et faire partie de l'équipe qui participe à un projet. Travaux exposés sur le 1er compte : [FORK] POP3-Client : Un script de client mail réalisé par davydavek. Code source : https://github.com/DavyWk/POP3-Client Fork : https://github.com/Melinyel/POP3-Client On en parle sur Melinyel : Travaux en développement sur le deuxième compte : MeliFramework : Projet de création de Framework communautaire, lancé par Soulalex. Encore en étude. Code source : https://github.com/Melinyel-dev/MeliFramework Site : http://melidev.evade-multimedia.net/ On en parle sur Melinyel :
  14. Bonjour à tous, Aujourd'hui je vous propose de choisir quels seront les tutoriels que je vais réalisés. Comme j'ai plein d'idées et pas forcément le temps de tous les faire, voici une sélection parmi lesquelles vous pouvez choisir ceux qui intéresserais le plus. Si vous souhaiter avoir plus de précision sur le contenu d'un tutoriel précis, demandez-moi ! Allez s'y ! Faîtes vos choix ! Voici les tutos déjà réalisés : Crée un personnage de fiction : http://melinyel.net/index.php/topic/641-cr%C3%A9er-un-personnage-de-fiction/ Établir le background d'un Univers :
  15. Bonjour à tous, et bienvenue dans ce premier cours dédié au C. Dans ce cours, nous allons voir pourquoi il est important de comprendre et de programmer en C, puis nous passeront à une partie plus pratique en regardant les outils qui nous sont proposés pour cela. I- Pourquoi apprendre le C? Le C est un langage le plus bas niveau qui existe (après l'ASM bien entendu!), il permet donc de mieux comprendre le fonctionnement de sa machine. Bas niveau? Cela signifie qu'il est simple? Bas niveau ne corresponds pas au niveau de simplicité du C. Il s'agit en faite d'un niveau par rapport à la machine. Plus un langage est bas niveau, plus il sera proche du fonctionnement de la machine, donc difficile. Plus il sera bas niveau, plus il nous permettera de comprendre le fonctionnement de la machine. Nous allons donc avoir plusieurs cours, en ayant pour but de comprendre comment fonctionne notre machine. Pour cela, nous allons nous orienter vers une programmation impérative que nous permet le C, en nous forçant à n'utiliser QUE des appels system (Donc pas de libc! (à titre informatif: c'est la méthode Epitech)). Nous seront donc obligés de re-créer nos propres outils de travail! Vous l'aurez compris: les prochains cours ont pour but de vous apprendre à utiliser de façon extrême le C. Sans utiliser les outils déjà mis à disposition (libs, etc...), pour vous apprendre à comprendre comment ceux-ci fonctionnent! II- Les outils pour programmer en C Le tout premier outils que je vous conseille, c'est d'utiliser LINUX. Pourquoi Linux? Eh bien c'est très simple: Linux propose énormément d'outils de débugage, et beaucoup d'outils de programmation (Make, Valgrind, GDB, Emacs etc...). Ainsi qu'une documentation détaillée des appels system et de la libc (grâce notamment à la commande "man"). Enfin, une protection plus rapprochée du système qui vous évitera de mauvaises suprises lorsque vous jouerez avec la mémoire (je conseille fortement d'utiliser les limitations de ram par users pour éviter les forkbombs et autres malloc infinis). Je vous conseille donc fortement d'utiliser Linux. De mon côté, j'ai opté pour un Debian sur lequel j'ai installé une interface graphique et tout les outils nécéssaires! Je conseille fortement Mint qui est basé sur Debian. Vous pouvez utiliser une machine virtuelle pour faire tourner votre Linux si vous ne souhaitez pas le rajouter au Dump! Ensuite, les outils de base: Nous allons programmer en utilisant 5 outils très importants: Emacs: C'est l'éditeur qui va nous permettre d'éditer nos codes en C. Il est très pratique, mais il faut connaitre les syntaxes et les racourçis qu'il propose! GDB: C'est un excellent débugueur qui permet de fixer des points d'arrêt sur son programme, pour réussir à trouver les problèmes de notre programme! Valgrind: C'est un de mes outils préférés: Il permet de savoir si vous avez bien free tout vos malloc (et donc, bien vidé toute la mémoire) et de repérer les segfaults (à notter: il faut rajouter -g3 aux flags de compilation pour que celui-ci marche pleinement, n'oubliez surtout pas de supprimer -g3 de vos makefiles à la version finale. -g3 rends l'exécutable très lourd). Make: L'outil Make est l'un des plus importants: il nous permettra de créer un "Makefile" qui va nous permettre, grâce à la commande Make, de compiler, et nétoyer notre programme facilement. htop ou top: C'est un invité de commandes pour unix, qui va nous permettre de voir l'avancement et l'utilisation de notre RAM/CPU. Voilà, je vous es donc fait une courte introduction sur tout ce qui es des outils et de la programmation en C! Rendez-vous au prochain cours! Cours écrit par AlexMog. Contact: alexmog [at] live [point] fr
  16. Bienvenue pour ce tout premier cours sur le C: L'introduction au C. Dans cette première partie, nous allons voir de quoi se compose un programme "de base" en C. I- Avant propos. J'aimerais vous informer au niveau des cours qui vont suivre: Le but étant de travailler en étant le plus près possible du fonctionnement de la machine, les seules fonctions autorisées (et vous le verrez pendant les exercices) sont les fonctions System (Googlisez tout ça!). Donc merci de jouer le jeu jusqu'au bout, et de ne pas utiliser de fonctions "interdites" . II- Notre premier programme. Nous allons créer notre tout premier programme. Le but de ce programme est d'afficher une lettre. Avant tout: Un programme en C est composé de fonctions, et plus particulièrement de la fonction "main" cette fonction est la fonction principale appelée lors du lancement de notre programme. Commençons donc par créer un fichier test.c qui contient notre main: int main() { } Pour compiler notre programme, nous allons utiliser GCC. Pour des raisons personnelles et utilitaires, je code sous linux, je vais donc vous proposer de suivre tout mes cours sous linux. Vous aurez donc des informations sur la compilation en ligne de commande. Pour compiler notre programme grâce à GCC, il faut utiliser la commande suivante: gcc test.c -o test Un fichier "test" viens d'être créé. Vous pouvez le lancer: ./test Oh! Nous avons compiler notre premier programme en C... Qui ne fait rien (pour l'instant!). Revenons donc à notre but principal: Créer un programme qui affiche une lettre. Nous allons donc avoir besoin d'une fonction système d'affichage qui s'appelle "Write" (Lisez le man de Write pour avoir plus d'informations sur cette fonction!). Créons donc une fonction "my_putchar" qui prendra en argument une variable de type char (caractère) et qui aura pour but de l'afficher: void my_putchar(char c) { write(1, &c, 1); } int main() { } Voila! Nous avons notre fonction d'affichage! A present, affichons notre premier caractère! void my_putchar(char c) { write(1, &c, 1); } int main() { my_putchar('A'); } Compilons tout ça... Oh! Lorsqu'on lance notre programme, il affiche un A ! Un autre exemple: HelloWorld. Le but de ce programme est d'afficher HelloWorld. Reprenons la base précédente: void my_putchar(char c) { write(1, &c, 1); } int main() { } Et affichons notre "HelloWorld": void my_putchar(char c) { write(1, &c, 1); } int main() { my_putchar('H'); my_putchar('e'); my_putchar('l'); my_putchar('l'); my_putchar('o'); my_putchar('W'); my_putchar('o'); my_putchar('r'); my_putchar('l'); my_putchar('d'); } On compile tout ça, et on obtient un joli "HelloWorld"! III - Les variables de type char[] Nous allons à présent stocker notre chaine de caractères "HelloWorld" dans un tableau de Char, puis nous allons l'afficher: void my_putchar(char c) { write(1, &c, 1); } int main() { char mon_mot[] = "HelloWorld"; my_putchar(mon_mot[0]); my_putchar(mon_mot[1]); my_putchar(mon_mot[2]); my_putchar(mon_mot[3]); my_putchar(mon_mot[4]); my_putchar(mon_mot[5]); my_putchar(mon_mot[6]); my_putchar(mon_mot[7]); my_putchar(mon_mot[8]); my_putchar(mon_mot[9]); } En compilant nous obtenons exactement le même résultat de précédemment. IV - Les includes. Avant de commencer avec les includes, sachez que tout ce qui commence par un # sera une commande interprétée par le compilateur. Les includes permettent d'inclure (logique) le contenu d'un fichier. Il est utilisé pour inclure les .h (headers) dans les fichiers. Par exemple, la fonction "write" est disponible car le système nous la propose, néanmoins, elle n'est pas déclarée (ce qui provoque un "warning" dans votre code) pour remédier au warning, il suffira d'inclure le header unistd.h. comme ceci: #include <unistd.h> Les includes system se font avec des <> alors que les includes locales se font avec des "". Ainsi ma fonction est déclarée, le compilateur sait qu'elle existe, je peux donc l'utiliser sans soucis! V- Allons un peux plus loin. A present, affichons notre HelloWorld avec une boucle (je vous laisse la joie de découvrir le fonctionnement de la boucle en cherchant sur le net): void my_putchar(char c) { write(1, &c, 1); } int main() { char mon_mot[] = "HelloWorld"; int i = 0; while(mon_mot[i] != '\0') { my_putchar(mon_mot[i]); i = i + 1; } } Voila! Nous venons de réafficher "HelloWorld". Pourquoi je vérifie la valeur de "mon_mot" dans le while? C'est très simple. Ce qui définit la fin d'une chaine de caractères, c'est le caractère '\0' qui est égal à 0. Or, si un while reçoit 0 en paramètre, il s'arrête. Le while va donc continuer, jusqu'à la fin de la chaine! Voilà, je ne vous en dirrais pas plus sur ce cours, le but étant de vous donner envie d'en savoir plus par vous même. A bientôt pour le prochain cours! Cours écrit par AlexMog. Contact: alexmog [at] live [point] fr
  17. Bonjour, Si vous ne connaissez rien au langage de programmation en C, voici un tutoriel sur le Site du Zéro (aka Openclassroom) très bien rédigé et assez complet pour s'initialiser dans la programmation en langage C : Apprendre à programmer en C Je vous invite également à poster un sujet dans ce forum pour donner le résultat de votre apprentissage, vos questions, vos codes ou tout autres résultantes de la lecture de ce tutoriel.
  18. Salut all, donc voici un tuto sur le drag'n drop, ce qui consiste juste dans le fait de faire glisser un fichier dans un un programme. Donc sélectionnez votre élément ou votre form (selon la zone où vous voulez faire glisser le fichier, puis dans ses propriétés cherchez "AllowDrop" et activez le (True), si il n'est pas dans les propriétés, il est possible d'aller l'écrire directement dans le code du desing mais pour faire simple on va mettre le code suivant dans l’évènement du la form au chargement (double click sur la form ou double click sur l'évènement load de l'objet) et je rappel que ce code n'est que si vous n'avez pas trouvé "AllowDrop" dans les propriété: [Nom_de_l'élèment] .AllowDrop = true Sélectionnez votre élément et dans les propriétés allez dans l'onglet des events () et double click sur "DragEnter" et "DragDrop", dans DragEnter entrez le code suivant: e.Effect = e.AllowedEffect dans DragDrop, dans cette exemple je vais charger un fichier image dans une picturebox: Dim pictr() As String Dim str As String ' va contenir le chamin d'accès If e.Data.GetDataPresent(DataFormats.FileDrop) Then pictr = e.Data.GetData(DataFormats.FileDrop) str = pictr(0) PictureBox1.Load(str) 'je charge l'image End If Et voilà c'est finis^^ Bonne programmation à tous! Cordialement, Mars073
  19. Bonjour à tous, Aujourd'hui, nous allons apprendre à assimiler la notion de pointeurs, de tableaux et de chaines de caractères. Je vais tenter de vous expliquer le fonctionnement d'un pointeur par des exemples variés. Pourquoi? Eh bien, par mon expérience, la notion de pointeurs est une chose qui m'a fait fuir à l'époque ou j'avais commencé le C, mais uniquement à cause de la difficulté à comprendre le principe. Je vais donc essayer d'être le plus claire possible. Ce qui nous amène donc à la première partie: I- Un pointeur, Kesako? Alors, un pointeur, ça n'a rien de bien méchant. C'est une variable, comme les autres, qui permet de contenir une adresse (généralement, l'adresse d'une autre variable, on parle bien sur des adresses MEMOIRE) Pour mieux comprendre, voyons ce qui se passe lors de la création d'une variable. Lorsque vous créez une variable, de type char par exemple, lors de l'exécution de votre programme, votre programme va prévoir une place en mémoire pour contenir votre variable. Cette place va être reconnue grâce à une adresse, qui peut être contenue dans un pointeur. Il faut se dire qu'un type char permet de contenir 8 bit de données (soit en valeur maximale numérique de 255), et qu'un type int peut contenir jusqu'à 32 bits de données (en fonction de la version de votre machine, sur un 64 bits, il aura 64 bits). (Vous comprenez mieux pourquoi les typages ont été inventés, et pourquoi il est important de bien choisir son type de variable). Donc, lorsque vous lancer votre programme, la machine va allouer un endroit dans la mémoire et lui donner une adresse qui permettera de dire "ICI, la variable X est stockée". Un pointeur va donc contenir l'adresse d'une variable, pour pouvoir modifier le contenu de la dite variable (vous verrez que la gestion d'adresses est importante lorsqu'on va jouer avec les tableaux). Donc, comprenons par l'exemple. Je vais créer un programme, qui définit une variable de type char a, et une autre variable b, qui sera un pointeur sur la variable a. void my_putchar(char c) { write(1, &c, 1); // Voir cours 1 pour cette fonction } int main(void) { char a; // Déclaration de la variable a char *b; // Déclaration du pointeur B, le * permet de définir au PC qu'il s'agit d'un pointeur. a = 'b'; // On assigne une valeur à la variable a. my_putchar(a); // ceci affichera: b b = &a; // On assigne à b l'adresse de a, le signe & permet de définir que l'on récupère l'adresse de a dans b *b = 'c' // On assigne enfin à l'adresse choisie la valeur 'c'. le * définit que l'on modifie le contenu de l'adresse mémoire et NON PAS l'adresse en elle même! my_putchar(*; // On affiche la valeur de b my_putchar(a); // On affiche la valeur de a, et on se rends bien compte qu'elle a changée! return (0); } Vous savez à présent ce qu'est un pointeur et comment l'utiliser. II- Les tableaux statiques: WTF is that shiet? Pour faire simple, un tableau, c'est un "regroupement" de variables du même typage, dont les adresses sont suivies les unes après les autres. Prenons pour exemple une "mémoire" vide: |00| |01| |10| |11| | | | | | | | | Pour l'instant elle ne contient aucune données, déclarons alors notre tableau de char, et ayant 3 de grandeur |00| |01| |10| |11| |yy| |xx| |xx| | | Dans notre cas, yy corresponds au début du tableau, et les xx représentent les valeurs contenues dans ce tableau. Comme vous pouvez le constater, les valeurs se suivent. Donc, en théorie, si on a un pointeur qui pointe sur l'adresse de yy, on peut parcourir notre tableau. On peut donc affirmer qu'un tableau n'est rien d'autre qu'un pointeur qui pointe sur la première valeur de celui-ci. Pour mieux comprendre, imaginons que je déclare un tableau comme ceci: char tab[3]; Lorsque je vais tenter d'accéder à la première valeur, je vais donc faire ceci: tab[0]; Eh bien, vous pouvez aussi y accéder en utilisant directement l'adresse de ce tableau *(tab + (0 * sizeof(char)); Je viens donc de vous démontrer que le contenu des [] n'est que le multiplicateur d'accès à la "case" du tableau. Il suffit d'ajouter à notre pointeur un multiple de la taille de son typage pour accéder à la valeur suivante! La démonstration est faite: Un tableau est un pointeur. Mais attention! Un tableau est un pointeur, mais un pointeur n'est PAS toujours un tableau. III- Les chaines de caractères: Tu voulais pas plutôt dire chaines de vélo?! Nous allons essayer de comprendre ensemble comment fonctionne une chaine de caractères. Et il n'y a pas de meilleurs langages que le C pour vous expliquer le principe même d'une chaine de caractères. Nous avions déjà vu dans le cours #1 qu'une chaine de caractères n'était rien d'autre qu'un tableau contenant, dans chacune de ses cases, un caractère. Par exemple: char tab[6]; tab[0] = 'c'; tab[1] = 'o'; tab[2] = 'u'; tab[3] = 'c'; tab[4] = 'o'; tab[5] = 'u'; le tableau que je viens de déclarer contiendra "coucou". La déclaration ci-dessus est fausse. Le problème étant que lorsqu'on va vouloir afficher cette chaine, on ne saura JAMAIS lorsqu'elle va s'arrêter, et donc, on risquera de provoquer ce qu'on appelle un "segfault" ou "segmentation fault" (ce qui corresponds à une tentative d'accès mémoire qui n'appartiens pas à votre logiciel). Il est donc primordial de dire à votre programme quand est-ce que cette chaine s'arrête. C'est en faite très simple à mettre en place, il suffit de rajouter, dans la dernière case, le caractère '\0' (qui signifie 0 en valeur numérique). Par exemple: char tab[7]; tab[0] = 'c'; tab[1] = 'o'; tab[2] = 'u'; tab[3] = 'c'; tab[4] = 'o'; tab[5] = 'u'; tab[6] = '\0'; Nous venons de définir une fin à notre tableau. Il existe d'autres façon de déclarer un tableau de caractères, comme ceci: char tab[] = "coucou"; Vous savez à présent comment fonctionne une chaine de caractères. Allons encore plus loin à présent. Je vous ai démontré toute à l'heure qu'un tableau était un pointeur. Je peux donc affirmer que je peut utiliser l'adresse principale d'un tableau pour déclarer une chaine de caractères. Voyez plutôt: char *machaine; machaine = "coucou"; Que c'est il passé ici? C'est très simple. Nous avons déclaré un espace de type "tableau de char" dans notre mémoire grâce aux guillemets que nous avons ajouté lors de la définition de la valeur du pointeur "machaine". Le pointeur pointe donc sur l'adresse du premier caractère. (ici, le premier 'c') Notre pointeur va donc pouvoir se comporter comme un tableau, puisqu'un tableau est un pointeur. Voyez par exemple: machaine[0]; //renvois c machaine[4]; //Renvois o machaine[7]; // provoquera un segfault // Ici, je change la valeur d'une des cases par une autre valeur: machaine[0] = 'A';// Ma chaine vaut donc "Aoucou"! // Je peut aussi procéder comme ceci: *(machaine + (0 * sizeof(char)) = 'A'; Voila, je viens de vous inculquer les bases de la gestion de pointeurs et de tableaux. A bientôt pour un prochain cours! Cours écrit par AlexMog. Contact: alexmog [at] live [point] fr
  20. Bonjour à tous ! Je viens vous présenter un projet qui souhaite réunir le plus de programmeurs possible autour d'une même passion : la programmation. Voici une petite vidéo de présentation. https://www.youtube.com/watch?v=nKIu9yen5nc Une fois que vous avez regardé cette vidéo, je vous invite, vous, programmeur en herbe, à vous rendre sur ce site très bien foutu qui vous permettra d'apprendre méthodiquement plusieurs langages (PHP, HTML, CSS, Ruby, Python ...). Vous serez guidé pas à pas dans la programmation, en étant confronté tout le temps à des petits "travaux pratiques" que vous devrez réaliser vous même pour progresser dans le cour. Ne vous en faites pas, vous serez très bien guidé, et si vous avez des problèmes, il y a un petit bouton "HINT" qui vous aidera surement ! Sans plus attendre, voici le site : http://www.codecademy.com/fr/dashboard Cordialement, Abraham
  21. Bonjour à tous. Aujourd'hui, je lance le premier concours de programmation, donc pas nécessairement le plus dur. C'est simple, celui-ci sera de coder un site web basique pour aider Akimace dans son projet ! Toutes les informations sont ses besoins sont ici, mais je vais détailler. Langage de programmation du projet : Web : HTML / CSS (obligatoire). PHP, SQL, Javascript et autre (facultatif). Le but est de concevoir un site web de meilleur qualité que celui-ci : Basket Club Solérien (son club de basket). La date limite est le 31 Mars 2014, 23h59. Les participants devront préciser leurs noms, s'ils veulent s'y essayer, et ceux-ci seront inscrit ci-dessus. Les récompenses seront : 20 points de réputation. Le code final sera exposé sur le GitHub de Melinyel, avec les crédits pour l'auteur. J'espère que vous saurez monter vos capacités.
  22. Hey tout le monde ! Aujourd’hui un petit tuto concernant les bases de la programmation en C, et plus particulièrement l’introduction à l’utilisation des fonctions. (Attention les codes présents dans ce tutoriel sont principalement en algorithmique, inutile d'essayer de les compiler) / !\ Ce tutoriel nécessite la connaissance des grandes bases de la programmation en C, notamment les variables, les types, la fonction « main », les calculs simples… / !\ Les fonctions permettent de structurer un programme en plusieurs « morceaux », un peu comme un puzzle. Le programme est donc mieux organisé, ce qui peut se révéler très utile, par exemple, lors de la recherche d’une erreur… Alors une fonction qu’est-ce que c’est ? Une fonction est un bout de programme destiné à exécuter des actions, ces actions pouvant mener au renvoi d’un résultat, ou non. Un exemple sera plus parlant qu’une explication compliquée. Imaginons que l’on souhaite multiplier un nombre par 3, puis l’afficher. Voici le moyen le plus basique : main() { entier nombre = 5 ; nombre = nombre*3 ; afficher nombre ; return 0; } On crée une variable nombre, on la multiplie par trois, puis on l’affiche. Le tour est joué. Voyons maintenant le même programme mais avec une fonction (explications ensuite): entier triple (entier nombre) // 1. Création de la fonction { entier resultat = 0; resultat = nombre*3 ; // 2. Instructions executées par la fonction return resultat ; // 3. renvoi du resultat } main() { afficher triple(5); // 4. Appel de la fonction return 0; { 1. Création de la fonction Le modèle de création d'une fonction est celui-ci: type nom_de_la_fonction (paramètre_entrant) { // Instructions } - "type" correspond au type de la sortie de la fonction. Dans notre exemple, la fonction "triple" renvoie un entier. - "nom_de_la_fonction" est en fait le nom que vous souhaitez donner à votre fonction. Pour notre exemple, j'ai nommé notre fonction "triple". - "paramètre_entrant" correspond aux valeurs avec lesquelles la fonction va travailler. Dans l'exemple la fonction va travailler avec un nombre, j'ai donc nommé son paramètre en conséquence. Un paramètre doit être précédé de son type, dans l'exemple, un entier. 2. Instructions executées par la fonction Tout bonnement des instructions qui seront par la suite executées par la fonction. Pour l'exemple, les seules instructions données consistent à tripler notre nombre de base, celui rentré en paramètre, et à le stocker dans une variable nomée "resultat". 3. Renvoi du résultat Cette commande ordonne à la fonction de renvoyer la valeur de la variable "resultat" (15 dans l'exemple). 4. Appel de la fonction C'est à ce moment que l'on va réellement utiliser notre fonction. Un appel de fonction suit ce shéma: nom_de_la_fonction(valeurs souhaitées en paramètre) Il suffit d'écrire le nom de la fonction, et d'entrer entre parenthèses les valeurs que l'on souhaite que la fonction traite. Pour faire simple, lorsque vous appelez une fonction, c’est comme si le programme faisait un copier-coller des instructions de la fonction. Donc lorsqu’on écrit « triple(5) », le programme calcule le triple de 5 par le biais de la fonction nommée « triple ». Ce résultat n’est stocké nulle part par défaut, il est juste calculé. Il est donc nécessaire de soit le stocker dans une variable (pour le réutiliser plus tard), soit l’afficher directement, comme dans l’exemple. Et là je vous entends d’ici (si si je vous assure ) : « Mais pourquoi se casser la tête à faire une fonction ? Dans l’exemple c’est beaucoup plus facile sans ! » Oui, mais là il s’agit d’une simple multiplication par trois. Certaines fonctions font des milliers de lignes ! Votre main sera donc beaucoup plus propre et compréhensible avec des fonctions ! De plus, les fonctions permettent d’exécuter plusieurs fois la même action (comme une multiplication par trois) sans avoir à retaper le code, et ce, avec autant de valeurs que l’on veut (Notre exemple multiplie 5 par 3, mais il suffit de taper « triple(20) » pour obtenir le triple de 20). Donc gain de temps et de place. En voilà un outil pratique ! Voilà c’est à peu près tout, il s’agit là d’un tutoriel très basique, destiné à vous faire comprendre le fonctionnement des fonctions. Si vous êtes intéressés, je vous invite à parcourir ceci, afin d’approfondir ces explications. Si vous avez des questions ou des suggestions pour perfectionner ce tutoriel, n’hésitez pas !
  23. Bonjour ! Voilà ,j'ai trouvé un bon site où vous pourrez trouver des templates plutôt sympas. http://html5up.net/ Voilà
  24. Bonjour tout le monde, Je vais vous montrer un petit programme simple qui va permettre de crypter et de décrypter un fichier à l'aide de l’algorithme XOR. Cet algorithme est très simple et léger, il offre une bonne protection sans plus, vous pouvez choisir la clé de cryptage que vous voulez. Commencez par créer une solution DOS Win32 en C++ sous Visual Studio (2010 pour ma part), puis dans le fichier source main (principal) mettez ceci : #include "stdafx.h" #include <stdio.h> #include <STDLIB.H> #include <string.h> /*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/ int crypt (char *clefc,char pathc[255],char targetc[255]);/*fonction de cryptage*/ int decrypt (char *clefd,char pathd[255],char targetd[255]);/*decryptage*/ void bann();/*Montre comment utiliser le programme*/ void test(char *fnc,char *cl,char pathg[255],char target[255]);/*permet d'analyser l'entrée en ligne de commande*/ FILE *fichier; /*handle vers le fichier source*/ FILE *dest; /*handle vers le fichier destination*/ /*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/ int main(int argc, char *argv[]) { /* Vérifie le nombre d'argument en ligne de commande et s'il est exact il les teste pour determiner l'action a faire*/ if (argc==1 || argc==2) bann(); else test(argv[1],argv[3],argv[2],argv[4]); return 0; } /*.................................................................*/ void bann() { puts("\n\t\t<------------------XorCrypt-------------------->"); puts("\t\t<-------------------------------------------->\n"); puts("Fonctionnement :"); puts("xorcrypt -c nom_de_fichier clef Destination : Crypte le ficher"); puts(" -d nom_de_fichier clef Destination : Decrypte le fichier"); puts("Exemple : xorcrypt -c texte.txt clef texte2.txt\n"); system("pause"); } /*.................................................................*/ /* Test des valeurs entrées en argument de la ligne de commande */ void test(char *fnc, char *cl, char pathg[255],char target[255]) { if (strcmp(fnc,"-c")==0) crypt(cl,pathg,target); else if (strcmp(fnc,"-d")==0) decrypt(cl,pathg,target); else bann(); } /*.................................................................*/ /* Fonction de cryptage*/ int crypt (char *clefc,char pathc[255],char targetc[255]) { int pd=0;/*initialisation du compteur de la clef*/ int c; int i; if (clefc!=NULL && pathc!=NULL && targetc!=NULL)/* Verification des arguments necessaires*/ { if (fichier=fopen(pathc,"rb"))/* ouverture du fichier source en mode lecture binaire */ { dest=fopen(targetc,"wb");/* ouverture du fichier destination en mode ecriture binaire */ puts("Fichier ouvert\n Encryption en cours..."); while((c=fgetc(fichier))!=EOF)/* En boucle jusqu'a la fin du fichier*/ { c=~c;/*Réalise une inversion des bits du caractere*/ c^=clefc[pd];/* Effectue un XOR sur le caractere avec un caractere de le clef */ fprintf(dest,"%c",c);/* ecrit le caractere dans le fichier */ if (pd!=strlen(clefc))/*test de la clef */ {pd+=1;} else {pd=0;} } puts("Encryption effectuée"); fclose(fichier); fclose(dest); } else { puts("Impossible d'ouvrir le fichier"); } } else puts("Argument manquant"); return false; } /*.................................................................*/ /*fonction de decryptage*/ int decrypt (char *clefd,char pathd[255],char targetd[255]) { int pd=0; int c; int i; if (clefd!=NULL && pathd!=NULL && targetd!=NULL) /*Test des arguments necessaires */ { if (fichier=fopen(pathd,"rb"))/* ouverture du fichier source en lecture binaire */ { dest=fopen(targetd,"wb"); /* fichier destination en lecture binaire */ puts("Fichier ouvert\n Decryptage en cours ..."); while((c=fgetc(fichier))!=EOF)/* Boucle tant que le fichier n'a pas été entierement parcouru */ { c^=clefd[pd]; /* applique un XOR sur un caractere avec un caractere de la clef */ c=~c; /* Rotation des bits */ fprintf(dest,"%c",c); /*ecriture dans le fichier destination */ if (pd!=strlen(clefd)) /* Test de la clef */ {pd+=1;} else {pd=0;} } puts("Decryptage effectué"); fclose(fichier); fclose(dest); } else { puts("Impossible d'ouvrir le fichier"); } } else puts("Argument manquant"); return false; } Vous enregistrez, vous compilez, vous récupérez l'exe et vous le mettez dans un dossier tout seul, renommez-le en xorcrypt.exe I. Le Cryptage Ensuite vous allez créer un .bat nommé Crypt.bat, dedans vous y mettez : xorcrypt -c nocrypt.txt %CLEF% crypt.txt Remplacez %CLEF% par un mot, un SHA1, un MD5, ce que vous vouez, sans espace. Et remplacez nocrypt.txt par le fichier source non crypté, et crypt.txt par le fichier destination crypté. Fonctionne avec toute les extensions de fichier. Mettez-le dans le même dossier que xorcrypt.exe, et mettez le fichier .txt(ou autre) source au même endroit que les 2 fichier précédents. Lancez Crypt.bat et votre fichier va se Crypter. 2. Le décryptage Créer un .bat nommé Decrypt.bat, mettez-le dans le même dossier que les 2 autres fichiers (xorcrypt et Crypt), et remplissez-le comme ceci : xorcrypt -d crypt.txt %CLEF% nocrypt.txt Remplacez %CLEF% par la même clef qui a servi au cryptage de ce fichier. Et remplacez crypt.txt par le fichier source crypté, et nocrypt.txt par le fichier destination décrypté. Lancez Decrypt.bat et votre fichier va se décrypter. Le tour est joué, vous pouvez désormais crypter un fichier et le décrypter très simplement, il ne reste plus qu'à implanter le décryptage dans un programme pour pouvoir crypter le contenu (pour un jeu par exemple) Code fournit par http://codes-sources.commentcamarche.net et remanié par Karles. Cordialement, Karles
  25. Bonjours à tous, j'ai eu l'idée il y a quelques temps, d'un logiciel permettant le codage par équipe. Alors j'ai eu l'idée de créer OnlineCodeProject. 1 - Présentation Le logiciel est codé en VB.net et utilise du PHP pour interagir avec le serveur. Il dispose d'une colorisation syntaxique qui s'applique sur différents langages. Il permet, comme son nom l'indique de faire du projet en ligne, c'est à dire que où que vous soyez, avec n'importe quel PC, vous aurez accès à vos projets. Vous pouvez bien évidement rajouter et supprimer des participants à votre projet. 2 - Liste des fonctions Système de connexion/enregistrement. Il permet de créer/supprimer/éditer un projet. Il dispose d'une colorisation syntaxique pour vous aidez dans l'écriture ainsi que la compréhension de votre code. Il permet aussi de rajouter/supprimer des participants. Mais aussi d'importer/créer de nouveaux fichiers. Lors d'une proposition de mise à jour, elle s'installera toute seul. 3 - Quelques images 4 - Informations diverses Créateur : Brokeos (alias Bwisingw) Créateur des thèmes : iSynthesis & Xertz Le logiciel nécessite une connexion internet nous conseillons au moins 500 Ko/s. 5 - Téléchargement VirusTotal : OnlineCodeProject - VirusTotal Téléchargement : OnlineCodeProject 7 - Vos idées d'amélioration Bien entendu, vous pouvez m'envoyer vos idées pour améliorer le programmes ! Envoyez moi une message privée ou passé par skype (brokeos17)
×
×
  • Create New...