Aller au contenu

Programme EXE incompatible Seven 64 bits !!!!!


rebcao

Messages recommandés

Bonsoir à Toutes et à Tous,

 

J'ai un très vieux programme .EXE (1889) très simple que j'utilise pratiquement tous les jours pour faire du RECHERCHER-REMPLACER en BATCH dans un fichier texte...

 

Hors, qui peut le plus peut pas le moins !!!!!!! Avec SEVEN 64 bits, il me jette parce c'est un programme 16 bits !...

 

Existe-t-il une pirouette pour que le système 64 bits accepte quand même d'exécuter le programme ou un émulateur ?

 

C'est fou ça...

 

 

Merci de vos réponses.

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Sur une version Windows 7 pro (ou plus), on peut installer le "mode XP" sur une machine virtuelle. C'est peut-être une solution, mais je n'en suis pas sûr du tout. Suivant comment a été compilé cet exe (dans quel langage) il peut être définitivement incompatible avec un processeur 64 bits (d'où les versions spécifiques 32 bits et 64 bits pour les exe,dll, arx...).

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

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Merci pour vos réponses.

 

Changer les propriétés de compatibilité ne marche pas...

 

Je ne peux pas installer quoi que ce soit, il faut simplement que le fichier s'exécute comme avant...

 

Il existe peut-être un programme équivalent ? Un RECHERCHER-REMPLACER dans un fichier texte en mode BATCH!

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

 

 

Je sais pas si ca va te convenir, car tu ne peux pas installer quoi que ce soit, mais tu peux toujours aller voir la commande Unix sed. Elle existe en version "sous windows", et tourne en ligne de commande.

 

http://www.siteduzero.com/tutoriel-3-287602-la-commande-sed.html

 

Voir tout en bas pour windows.

 

 

 

 

 

 

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Salut rebcao,

 

Personnellement j'ai déjà testé le mode compatible XP sous Sevent 64bits ça fonctionne pour les programme qui ne sont pas compatible avec le 64bits je l'ai testé avec le VPN Client de Sisco, ça fonctionne mais bon c'est pas terrible car c'est un peu long au chargement, par ce que en gros Windows 7 installe un arrière plan une version Windows XP et lorsque tu lances le programme voulu Seven commute en XP pour faire fonctionner le programme mais attention les répertoires comme programme Files User Windows etc, ne sont pas les mêmes donc ça se mélange un peu les pattes, en gros ça fonctionne mais perso je l'utiliserai vraiment que pour dépanner par ce que ce n'est pas terrible.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Christian,

 

[...] un très vieux programme .EXE (1889) [...]

 

Tu m'étonnes. :o 1889 ?

 

Si tu as SEVEN 64 bits pro, il y a le mode « Windows XP » qui est en 32 bits. Là, tu peux lancer du programme 16 bits apparemment à travers la machine virtuelle.

 

Source : http://www.presence-pc.com/actualite/16-bits-64-bits-36442/

 

Sinon, si tu n'as pas la version PRO, tu peux toujours installer VirtualBOX et un XP 32bits.

 

Ici, j'ai XP PRO 64 bits sous lequel tourne AutoCAD 2010 + covadis.

Et VirtualBOX avec XP PRO 32 bits pour faire tourner SewerCAD 2000 (car impossible de le faire tourner sur la 64 bits malgré le Windows on Windows).

J'ai toujours un dossier qui sert à faire le lien entre les deux.

 

@+

--Arthur

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Je vous remercie pour toutes ces réponses, mais j'insiste sur le fait que je ne veux rien installer !

 

Au même titre si je tape la commande DIR (DOS) via un BATCH ça doit marcher...

 

Il faut absolument que la commande fonctionne en mode commande via la fenêtre DOS... qui elle est toujours bien présente...

 

Pour SED, il faut aussi installer quelque chose.

 

Il faut vraiment que cet exécutable fonctionne si l'on appel le PROGRAMME...

 

exemple, le programme serait installé dans un dossier C:\PROG et le programme s'appelle REMPLACE.EXE

 

syntaxe = c:\PROG\REMPLACE.EXE CHAINE1 CHAINE2 FichierTEXTE

 

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

je ne veux rien installer !

 

Alors essayes de te retourner vers les commandes en terminal DOS.

 

Avec Find, FindStr, Dir, Sort, Edit, Copy, (ou Print, Type, je sais plus...) Toutes ces commandes ont de l'aide dans le treminal (option /? de la commande: if /? par exemple est très intéressant pour les transmissions avec les %1, %2, Shift, les caractères de redirections " > et < "

 

Comme les véritables fichiers BATCH (Traitements par lots: .BAT) de l'époque.

Tu as aussi la commande HELP|More(dans la console) pour l'aide générale.

 

Je l'ai eu fais il y a bien longtemps, (avec même l'utilisation d' ErrorLevel et des conditions If, Else ou encore For GoTo)

 

Au même titre si je tape la commande DIR (DOS) via un BATCH ça doit marcher...

J'avais trouvé cela très laborieux à l'époque. Mais cela doit être faisable (si tu en as eu fais quelque peu...)

Pour ma part je n'ai pas de système 64 bits, je ne peux même pas tester et imaginer cela sous un OS en 64.

 

Le plus simple (qu'un programmeur généreux te refasse un EXE en mode 64), ou en trouver un gratuit en open source, une recherche s'impose. ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Du coup j'ai cherché un peu et j'ai trouvé http://a.e.b.free.fr/remplace/index.htm

 

J'ai essayé sous XP (32 :( ) et cela fonctionne bien (essayé avec des fichiers textes en ASCII)

 

Compatible 64 ??

 

[Edité le 12/12/2010 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonjour ,

 

Un crochet ] en trop, j'ai édité le lien.

 

Il est gratuit, en mode recherche pas besoin de s'enregistrer, tu teste si cela fonctionne en mode 64 ....

Si oui, il faut s'enregistrer pour pouvoir effectuer les remplacements.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

J'ai essayé un truc tout simple en .NET qui devrait donc fonctionner sous Windows XP, Vista, 7 en 32 ou 64 bits du moment que le Framework .NET 2.0 (ou supérieur) est installé.

 

Je ne sais pas si ça correspond bien à ta demande, mais ça fonctionne sur Windows 7 64 bits.

 

http://img.ahst.fr/data/images/replace.png

 

La première expression lancée depuis le répertoire du fichier texte (C:\Users\Public\Document\) remplace toutes les occurrences de "Toto" par "Bibi".

La seconde lancée depuis le répertoire contenant le fichier exe remplace toutes les occurrences de "Bibi" par "Titin"

 

FindAndReplace.zip

Je t'envoie le fichier parce qu'il semble que certains ont des problèmes pour téléchrager depuis mes pages perso.

 

Le code pour ceux que ça intéresse :

 

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

namespace FindAndReplace
{
   class Program
   {
       static void Main(string[] args)
       {
           if (args.Length != 3)
               Console.WriteLine("Nombre d'arguments incorrect");
           else if (File.Exists(args[2]))
           {
               StringBuilder sb = new StringBuilder();
               using (StreamReader reader = new StreamReader(args[2], Encoding.UTF8))
               {
                   sb.Append(reader.ReadToEnd());
               }
               using (StreamWriter writer = new StreamWriter(args[2], false, Encoding.UTF8))
               {
                   writer.Write(sb.Replace(args[0], args[1]).ToString());
               }
           }
           else
               Console.WriteLine("Fichier introuvable");
       }
   }
}

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

OOPS, OOPS, je n'avais pas vu les réponses !!! Désolé :P

 

J'étais à l'école toute la semaine...

 

Je vais tester tout ça et te remercie déjà

 

Une question on peut présenter l'argument 1 entre GUILLEMET s'il y a des espaces ? Et peut-être que \" permet d'utiliser le guillemet dans les chaines ?

 

Encore merci à tous, je test et je reviens...

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Le Crabe je te remercie, mais après avoir cherché dans tous mes mails, je n'ai pas trouvé de Mail avec ton fichier ???

 

Curieux ?!... tu peux me le renvoyer ? 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 @)

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Pour (Gile) ça marche très bien... ;) en mode commande tout ce qu'il de plus simple et efficace... :)

 

Et je vais abuser, car mon ancien programme ajoutait une chaine DEVANT ou à la FIN de chaque enregistrement exemple :

 

FINDANDREPLACE [surligneur] DEBUT[/surligneur] CHAINE-TEXTE FIC.TXT

 

FINDANDREPLACE [surligneur] FIN [/surligneur] CHAINE-TEXTE FIC.TXT

 

et un mode COPIE qui recopiait tout l'enregistrement une deuxième fois séparé par ###, exemple avec l'enregistrement :

 

c:\temp\dessin.dwg devenait alors c:\temp\dessin.dwg[surligneur]###c:\temp\dessin.dwg[/surligneur]

 

La syntaxe serait FINDANDREPLACE [surligneur] #COPIER# [/surligneur] FIC.TXT

 

Ce serait possible d'ajouter ces conditions ? Tu m'envoies ta note...

 

 

Je te confirme que [surligneur] \" [/surligneur]( \ guillement) permet bien d'utiliser le guillemet dans les chaines 1 ou 2

 

Génial, c'est presque le frère jumeau de mon vieux clou...

 

 

Merci (Gile), tu ne serais pas de Marseille par hasard ?

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Pour ignorer la casse, pas de problème, mais je ne comprends pas bien les autres demandes :

Et je vais abuser, car mon ancien programme ajoutait une chaine DEVANT ou à la FIN de chaque enregistrement exemple :

 

FINDANDREPLACE DEBUT CHAINE-TEXTE FIC.TXT

 

FINDANDREPLACE FIN CHAINE-TEXTE FIC.TXT

 

et un mode COPIE qui recopiait tout l'enregistrement une deuxième fois séparé par ###, exemple avec l'enregistrement :

 

c:\temp\dessin.dwg devenait alors c:\temp\dessin.dwg###c:\temp\dessin.dwg

 

La syntaxe serait FINDANDREPLACE #COPIER# FIC.TXT

 

Est-ce bien :

- si le premier argument est DEBUT, on ajoute la chaine (CHAINE-TEXTE) au début du fichier txt

- si le premier argument est FIN, on ajoute la chaine (CHAINE-TEXTE) à la fin du fichier txt

- si le premier argument est #COPIER#, on ajoute ### et le contenu du fichier à la fin de celui-ci

- dans tous les autres cas, on remplace toutes les occurrences de la première chaîne (sans tenir compte de la casse) par la seconde.

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

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

OUI c'est bien ça, exemple avec un enregistrement qui contient la ligne

 

c:\temp\dessin.dwg

 

avec la syntaxe FINDANDREPLACE [surligneur] #DEBUT#[/surligneur] "Mon_petit_toto " FIC.TXT donnerait

 

[surligneur] Mon_petit_toto [/surligneur]c:\temp\dessin.dwg

 

avec la syntaxe FINDANDREPLACE [surligneur]#FIN#[/surligneur] " Mon_grand_titi" FIC.TXT donnerait

 

c:\temp\dessin.dwg[surligneur] Mon_grand_titi[/surligneur]

 

avec la syntaxe FINDANDREPLACE [surligneur]#COPIER#[/surligneur] FIC.TXT donnerait

 

c:\temp\dessin.dwg###[surligneur]c:\temp\dessin.dwg[/surligneur]

 

J'ai mis le caractère # à chaque pour identifier l'option, car si je veux remplacer les mots FIN ou DEBUT par autre chose ça risque de mettre le bazarre...

 

 

Tu n'avais pas répondu à ma question ! Tu es sur Marseille ?

 

 

Merci

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Voilà une nouvelle version qui devrait correspondre complètement à tes demandes.

 

Remplace.zip.

 

Et toujours le code source pour ceux que ça intéresse.

 

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

namespace FindAndReplace
{
   class Program
   {
       static void Main(string[] args)
       {
           if (args.Length == 2 && args[0].ToUpper() == "#COPIER#")
           {
               string filename = args[1];
               if (File.Exists(filename))
               {
                   try
                   {
                       StringBuilder sb = new StringBuilder();
                       using (StreamReader reader = new StreamReader(filename, Encoding.UTF8))
                       {
                           string s;
                           while ((s = reader.ReadLine()) != null)
                           {
                               sb.AppendLine(string.Format("{0}###{0}", s));
                           }
                       }
                       using (StreamWriter writer = new StreamWriter(filename, false, Encoding.UTF8))
                       {
                           writer.Write(sb.ToString());
                       }
                   }
                   catch (Exception e)
                   {
                       Console.WriteLine("Le processus a échoué: " + e.Message);
                   }
               }
               else
                   Console.WriteLine("Fichier introuvable");
           }
           else if (args.Length == 3)
           {
               string filename = args[2];
               if (File.Exists(filename))
               {
                   try
                   {
                       string s;
                       StringBuilder sb = new StringBuilder();
                       using (StreamReader reader = new StreamReader(filename, Encoding.UTF8))
                       {
                           if (args[0].ToUpper() == "#DEBUT#")
                               while ((s = reader.ReadLine()) != null)
                               {
                                   sb.AppendLine(string.Format("{0}{1}", args[1], s));
                               }
                           else if (args[0].ToUpper() == "#FIN#")
                               while ((s = reader.ReadLine()) != null)
                               {
                                   sb.AppendLine(string.Format("{0}{1}", s, args[1]));
                               }
                           else
                           {
                               s = reader.ReadToEnd();
                               Regex reg = new Regex(args[0], RegexOptions.IgnoreCase);
                               sb.Append(reg.Replace(s, args[1]));
                           }
                       }
                       using (StreamWriter writer = new StreamWriter(filename, false, Encoding.UTF8))
                       {
                           writer.Write(sb.ToString());
                       }
                   }
                   catch (Exception e)
                   {
                       Console.WriteLine("Le processus a échoué: " + e.Message);
                   }
               }
               else
                   Console.WriteLine("Fichier introuvable");
           }
           else
               Console.WriteLine("Nombre d'arguments incorrect");
       }
   }
}

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

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Pour la fonction de remplacement tout fonctionne parfaitement.

 

Par contre les OPTIONS #DEBUT# #FIN# et #COPIER#, il s'agissait de traiter chaque enregistrement du fichier. Ajouter au début et à la fin de toutes les lignes la même CHAINE et COPIER chaque ligne en ajoutant à la ligne son propre contenu séparé par ###

 

Voici une exemple du résultat attendu avec le fichier source suivant :

 

C:\Temp\_Bib_Meca.dwg

C:\Temp\_Bib_schema_NMAT.dwg

C:\Temp\SLD\DWG\arc.dwg

C:\Temp\SLD\DWG\cercle.dwg

 

Résultat avec #DEBUT#

CHAINE-DEBUT C:\Temp\_Bib_Meca.dwg

CHAINE-DEBUT C:\Temp\_Bib_schema_NMAT.dwg

CHAINE-DEBUT C:\Temp\SLD\DWG\arc.dwg

CHAINE-DEBUT C:\Temp\SLD\DWG\cercle.dwg

 

Résultat avec #FIN#

C:\Temp\_Bib_Meca.dwg CHAINE-FIN

C:\Temp\_Bib_schema_NMAT.dwg CHAINE-FIN

C:\Temp\SLD\DWG\arc.dwg CHAINE-FIN

C:\Temp\SLD\DWG\cercle.dwg CHAINE-FIN

 

Résultat avec #COPIER#

C:\Temp\_Bib_Meca.dwg###C:\Temp\_Bib_Meca.dwg

C:\Temp\_Bib_schema_NMAT.dwg###C:\Temp\_Bib_schema_NMAT.dwg

C:\Temp\SLD\DWG\arc.dwg###C:\Temp\SLD\DWG\arc.dwg

C:\Temp\SLD\DWG\cercle.dwg###C:\Temp\SLD\DWG\cercle.dwg

 

En tout cas, je te félicite pour ton travail.

 

Je trouve le source relativement sobre... va falloir que je m'intéresse à ce langage...

 

Et je t'avais prévenu que j'allais abuser... ;)

 

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 @)

Lien vers le commentaire
Partager sur d’autres sites

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é