Aller au contenu

Programme EXE incompatible Seven 64 bits !!!!!


Messages recommandés

Posté(e)

Bonsoir,

 

Merci Gilles tout a l'air de fonctionner... Et désolé pour ma réaction tardive à ton premier message...

 

C'est quoi le compilateur ?

 

Je te remercie, envoies moi la note ;)

 

 

Christian

 

 

[Edité le 18/12/2010 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

C'est quoi le compilateur ?

 

Pour faire simple, la technologie utilisée est .NET, le langage est, ici, C# et le compilateur Visual Studio, c'est aussi l'éditeur de code (il existe des versions gratuites).

 

En bref, la technologie .NET permet de créer des applications (exe, dll) écrites dans différents langages (C#, F#, VB.net, ...) qui utilisent une (immense) bibliothèque commune : le Framework.NET.

Ces applications ne sont que "pré-compilées" dans un même langages intermédiaire (CIL) qui ne sera définitivement compilé qu'au moment de la première exécution en fonction du système (32 ou 64 bits) et du système d'exploitation (XP, Vista, Seven, mais aussi Linux et MacOS en utilisant le projet Mono).

 

Autodesk a développé, depuis la version 2005, un SDK qui "emballe" la majeure partie des objets d'ObjectARX de façon à ce qu'ils soient utilisables dans l'environnement .NET ce qui en fait une plateforme de développement pour AutoCAD plus puissante que LISP ou VBA tout en étant d'un accès moins difficile qu'ObjectARX/C++.

 

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonjour,

 

Voila tout fonctionne de nouveau comme avant et même mieux c'est plus rapide... Il reste juste un petit oubli, remplacer la CHAINE par RIEN (vide)

 

 

FINDANDREPLACE CHAINE [surligneur] #RIEN#[/surligneur] FIC.TXT

 

 

Je sais, j'abuse vraiment, mais je t'avais prévenu... ;)

 

Et à charge de revanche, lorsque je serais à nouveau dans le coin...

 

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Salut,

 

J'étais un peu occupé ces jours-ci, mais voilà une nouvelle version avec l'option #RIEN# ajoutée.

L'exe est renommé : Remplace.exe

 

Remplace_2.zip

 

J'ai aussi ré-écrit le code sous une forme plus lisible (à mon avis).

 

EDIT code modifié

 

using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

namespace Remplace
{
   class Program
   {
       private static string str, filename;
       private static StringBuilder sb = new StringBuilder();

       static void Main(string[] args)
       {
           try
           {
               switch (args[0].ToUpper())
               {
                   case "#COPIER#":
                       copier(args);
                       break;
                   case "#DEBUT#":
                       debut(args);
                       break;
                   case "#FIN#":
                       fin(args);
                       break;
                   default:
                       remplace(args);
                       break;
               }
           }
           catch (Exception e)
           {
               Console.WriteLine(e.Message);
           }
       }

       private static void write(string content)
       {
           using (StreamWriter writer = new StreamWriter(filename, false, Encoding.UTF8))
           {
               writer.Write(content);
           }
       }

       private static void remplace(string[] args)
       {
           filename = args[2];
           using (StreamReader reader = new StreamReader(filename, Encoding.UTF8))
           {
               str = reader.ReadToEnd();
               Regex reg = new Regex(args[0], RegexOptions.IgnoreCase);
               if (args[1].ToUpper() == "#RIEN#")
                   sb.Append(reg.Replace(str, string.Empty));
               else
                   sb.Append(reg.Replace(str, args[1]));
           }
           write(sb.ToString());
       }

       private static void fin(string[] args)
       {
           filename = args[2];
           using (StreamReader reader = new StreamReader(filename, Encoding.UTF8))
           {
               while ((str = reader.ReadLine()) != null)
               {
                   sb.AppendLine(string.Format("{0}{1}", str, args[1]));
               }
           }
           write(sb.ToString());
       }

       private static void debut(string[] args)
       {
           filename = args[2];
           using (StreamReader reader = new StreamReader(filename, Encoding.UTF8))
           {
               while ((str = reader.ReadLine()) != null)
               {
                   sb.AppendLine(string.Format("{0}{1}", args[1], str));
               }
           }
           write(sb.ToString());
       }

       private static void copier(string[] args)
       {
           filename = args[1];
           using (StreamReader reader = new StreamReader(filename, Encoding.UTF8))
           {
               while ((str = reader.ReadLine()) != null)
               {
                   sb.AppendLine(string.Format("{0}###{0}", str));
               }
           }
           write(sb.ToString());
       }
   }
}

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

 

Hello Gilles

 

En effet ce code parait "assez limpide" !

 

Question BETE : cet EXE est 64 bits ou 32 bits ou les DEUX ?

 

Le source peut il etre totalement identique ou presque entre une version 32 et 64 bits ?

 

Est ce simplement une directive de compilation ??

 

Joyeux Noel et Bonne Annee, Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Salut,

 

Comme expliqué brièvement réponse 27, le gros avantage de la technologie .NET réside dans l'utilisation de la Common Language Infrastructure (CLI), une sorte de 'machine virtuelle' qui permet d'utiliser des assemblies (dll ou exe) pré-compilées dans un langage intermédiaire (Common Intermediate Language ou CIL) depuis des sources écrites dans les langages compatibles (C#, VB.net, F#, etc).

Le Common Langage Runtime (CLR), qui est l'implémentation de la CLI, compile ces assemblies en langage machine "à la volée" (Just In Time Compilation) lors de la première exécution, en fonction de la plateforme d'exécution courante.

 

En clair, la même application qu'elle soit écrite en VB.NET, C#, F#, J#, IronPython... (ou avec des assemblies écrites dans différents langages) s'exécutera aussi bien en 32 qu'en 64 bits quelque soit le système d'exploitation (y compris Unix et MacOS avec le projet Mono) à condition que la version du Framework .NET (ou des bibliothèques Mono) ciblée par l'application soit chargée sur le poste où elle est exécutée.

 

.NET, outre les "applications Console" comme celle-ci, permet de faire des applications Windows, des bibliothèques de classes, des applications Web et des applications AutoCAD (utilisant l'API AutoCAD .NET).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

  • 2 semaines après...
Posté(e)

Re,

 

Après un test sur l'option #RIEN# ça na pas l'air de fonctionner ? En tapant :

 

REMPLACE CHAINE #RIEN# FICHIER.TXT

 

Remplace la CHAINE par le texte #RIEN# ! En théorie la CHAINE devait être supprimée...

 

Quid ? :casstet:

 

Merci de ta réponse.

 

Christian

 

 

[Edité le 5/1/2011 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

  • 3 semaines après...
Posté(e)

Bonjour Gilles,

 

J'espère qu'il fait beau dans le Sud...

 

Petit problème avec la police lorsque j'ai un fichier qui contient des caractères accentués il sont remplacés par un caractère autre !!!

 

La page de CODE n'est pas la même ! Comme ce programme est exécuté uniquement en mode BATCH je pense qu'il y a un mélimélo en la page de code WINDOWS et DOS !

 

Si tu as une solution ce serait SUPER ! ;)

 

Merci

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Salut,

 

Je dois dire que je ne maîtrise pas bien les problèmes d'encodage de caractères (c'est assez complexe).

 

Après avoir consulté ma doc, j'ai modifié le code, mais je ne peux rien garantir.

Merci de me dire si ça fonctionne.

 

Remplace.zip

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

  • 1 mois après...
Posté(e)

Bonjour,

 

Pour information.

 

Suite à quelques TESTS, j'ai constaté que les premières versions du programme REMPLACE.EXE encodait en fichier UTF-8 !!! ce format ne convient pas du tout à AutoCAD.

 

La dernière version du REMPLACE.EXE encode en ANSI ce qui fonctionne parfaitement !

 

Encore merci

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Re,

 

Visiblement il n'aime pas les caractères accentués !

 

Voici un exemple :

 

REMPLACE.EXE liste listeàèù TEST_FIC.MNS

 

au lieu de [surligneur] listeàèù [/surligneur]on obtient [surligneur] listeÓÞ¨[/surligneur]

 

Il doit y avoir une histoire de page de codes... Si tu peux y jeter un oeil ?! Je te remercie.

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

Bonjour,

 

Mé Ké Ki Di La !? Surtout pas...

 

J'ai utilisé le SUPER Programme de Gilles pour remplacer deux trois bricoles dans un fichier .MNS et en retour ça donne ça !

 

 

Christian

 

 

 

[Edité le 1/3/2011 par rebcao]

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité