QuickBasic - Impossible d'executer un prog

Résolu/Fermé
Fonx2 Messages postés 331 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 5 mai 2013 - 28 mai 2008 à 12:45
Fonx2 Messages postés 331 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 5 mai 2013 - 6 déc. 2009 à 03:53
Bonjour,
Voila je cherche à s'implifier la compression/décompression par le célèbre UPX. Pour cela, j'ai essayé de créer un petit éxecutable en Basic. Seulement voila: je n'arrive pas à lui ordonné de lancer upx.exe. J'ai essayé "RUN" et "CHAIN" mais j'obtient toujours la même erreur. Voici le contenu de mon programme:

CLS
PRINT "Utilitaire de (d‚)compression pour UPX"
PRINT
INPUT "Comment s'appel le fichier à traiter"; Fichier$
PRINT
PRINT "Liste des choix disponibles:"
PRINT "c = Compression"
PRINT "d = Décompression"
PRINT "q = Quitter"
PRINT
INPUT "Que voulez-vous faire"; Op$
PRINT
WHILE Op$ <> "c" AND Op$ <> "d" AND Op$ <> "q"
PRINT
PRINT "ERREUR: Votre choix est inconnu!"
PRINT
PRINT "Rappel: le fichier à traiter est: "; Fichier$
PRINT
PRINT "Liste des choix disponibles:"
PRINT "c = Compression"
PRINT "d = Décompression"
PRINT "q = Quitter"
PRINT
INPUT "Que voulez-vous faire"; Op$
WEND
IF Op$ = "c" THEN
PRINT "Vous avez choisi de compresser "; Fichier$:
CHAIN "C:\UPX\upx.exe -c; Fichier$":
END
END IF
IF Op$ = "d" THEN
PRINT "Vous avez choisi de décompresser "; Fichier$:
CHAIN "C:\UPX\upx.exe -d; Fichier$":
END
END IF
IF Op$ = "q" THEN END
END

Voila. Je soupsconne que le fait de mettre les paramètres d'upx.exe dans les "" de la fonction CHAINE est responsable de mon problème mais je ne sais pas y remédier c'est pour quoi je fait appel à vous pour un petit coup de pouce.

Merci d'avance!!

3 réponses

Bonjour,

Je viens d'effectuer quelques essais avec votre programme.

Comme je n'ai pas UPX.EXE, je me suis limité à PKZIP.EXE pour voir le bon fonctionnement du programme.

Tout va à merveille avec PKZIP.EXE. La modification apportée fut de changer CHAIN pour SHELL. Et oui, CHAIN n'accepte qu’un nom de fichier (un seul). Il va de soi, qu'il bloque sans hésitation en constatant un série de codes et un second fichier. Il n’a besoin que du nom du fichier pour chaîner et rien d’autre (pas de commandes et ni d’options). Par contre, SHELL est une fonction qui permet au QuickBASIC de lancer, à l’invite du DOS, des opérations avec commandes et options. En somme, SHELL permet d’exécuter des commandes DOS sans quitter le programme en cours.

Programme : CHAIN "C:\UPX\upx.exe -c; Fichier$":
Modification : SHELL "C:\UPX\upx.exe -c; Fichier$": ( à vérifier . . . )

Mon essai : SHELL " PKZIP –exx fiche " + fichier$ ( bon résultat )

-exx : compression maximale
fiche : nom du fichier de sortie avec extension ZIP
fichier$ : variable contenant le nom du fichier à compresser
NOTE : J’ai dû mettre un espace entre les guillemets et les caractères.

Ceci étant, il ne reste plus qu'à expérimenter diverses approches. À défaut de connaissance, je suis allé sur le WEB pour avoir quelques informations sur UPX.EXE. Là, j'ai appris qu'il suffisait de lancer UPX.EXE suivi du nom du fichier à compresser sans autre attention. Peut-être ai-je mal compris les informations.

J'opère sous WINDOWS. J'aimerais bien en connaître davantage car selon les infos, UPX permet de compresser des fichiers EXE de sorte à minimiser l'espace utilisé sur le disque dur et, très rapide à l'exécution lors de l'appel. Très intéressant.

Sur ce, mes salutations et ne perdons pas patience dans la recherche de solution.

AE
1
Fonx2 Messages postés 331 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 5 mai 2013 132
6 déc. 2009 à 03:53
Je n'ai malheureusement plus le temps de programmer. Peut-être plus tard...

En attendant, merci infiniment pour cette solution tempest.

Bonne continuation!
0
Fonx2 Messages postés 331 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 5 mai 2013 132
28 sept. 2008 à 22:40
Dsl pour le retard à rep. Je suis déborder là. Je reposte un peu plus tard. Un grand merci pour la réponse cependant. Sa m'a tout l'air d'être la solus!!

Merci beaucoup!

A très bientôt!
-1