begin process at 2010 02 09 14:19:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Foxpro

 > 

Divers

 > 

Débutant(e)

 > 

"traduction"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

"traduction"

jeudi 15 novembre 2007 à 14:30:35 | "traduction"

Inferno8

Bonjour tout le monde Je suis en stage pour l'AFPA pour être développeur informatique et mon maitre de stage m'a donné un ch'tit exercice : il m'a donné un programme qui prmet d'encrypter une chaîne de caractère et je dois faire la marche inverse. Il m'a donné le programme en foxpro et je dois la traduire en w-langage. le programme c'est *!***************************************************************** *! *! Function: ENCODE *! *!***************************************************************** FUNCTION encode PARAMETER xsource,xrecno PRIVATE ALL EXCEPT pubclebase *==== Retourne la chaîne encodée. * Utilise la variable publique PubCleBase * : Chaîne à encoder * : si vrai, le nø d'enregistrement influe * sur la clé. *==== production de la clé de base * PUBLIQUE si nécessaire IF TYPE("PUBCLEBASE")="U" DO mkclebase ENDIF *==== Calcul de la rotation à appliquer * à la clé de base x_rotat=ASC(LEFT(xsource,1))+IIF(xrecno,RECNO(),0) *==== production de la clé d'encodage IF x_rotat=0 x_cleencod=pubclebase ELSE x_cleencod=RIGHT(pubclebase,x_rotat); +LEFT(pubclebase,255-x_rotat) ENDIF *==== Encoder la fin de la chaîne x_fin=SYS(15,x_cleencod,SUBSTR(xsource,2)) *==== Encoder le premier caractère * checksum sur la fin de clé x_checkfin=SYS(2007,x_fin) * encodage premier caractère x_premcar=SUBSTR(xsource,1,1) x_premasc=MOD(ASC(x_premcar)+VAL(x_checkfin)+IIF(xrecno,RECNO(),0),255) x_debut=CHR(x_premasc) *==== concaténer x_retour=x_debut+x_fin RETURN x_retour *=========== EOFUNC Decode ===========* *!***************************************************************** *! *! Function: DECODE *! *!***************************************************************** FUNCTION decode PARAMETER xsource,xrecno PRIVATE ALL EXCEPT pubclebase *==== Retourne la chaîne décodée. * Utilise la variable publique PubCleBase * : Chaîne à décoder * : si vrai, le nø d'enregistrement influe * sur la clé. *==== production de la clé de base * si nécessaire IF TYPE("PUBCLEBASE")="U" DO mkclebase ENDIF *==== décoder le premier caractére * somme de contrôle de la fin de chaîne x_fincodee=SUBSTR(xsource,2) x_ckval=SYS(2007,x_fincodee) * déplacement appliqué pour encoder le premier caractère x_deplace=MOD(VAL(x_ckval)+IIF(xrecno,RECNO(),0),255) * décoder le premier caractère x_debutcode=LEFT(xsource,1) x_ascclair=ASC(x_debutcode)-x_deplace IF x_ascclair<0 x_ascclair=x_ascclair+255 ENDIF x_debutclair=CHR(x_ascclair) *==== production de la clé utilisée * Rotation utilisée pour produire la clé d'encodage x_rotat=MOD(ASC(x_debutclair)+IIF(xrecno,RECNO(),0),255) *==== production de la clé d'encodage IF x_rotat=0 x_clealler=pubclebase ELSE x_clealler=RIGHT(pubclebase,x_rotat); +LEFT(pubclebase,255-x_rotat) ENDIF *==== Clé inverse x_cledecod=mkcleinverse(x_clealler) *==== Décoder la fin de chaine x_finclair=SYS(15,x_cledecod,x_fincodee) *==== concaténer x_retour=x_debutclair+x_finclair RETURN x_retour *=========== EOFUNC Decode ===========* es-ce que quelqu'un pourrait m'aider SVP? Merci. Minna Oyasuminassaï
vendredi 16 novembre 2007 à 00:46:31 | Re : "traduction"

Mike Gagnon

Membre Club
1.  Qu'est-ce que le 'w-langage', je suis du Canada, et ai jamais entendu parlé de ce langage.
2. Si vous connaissez ce langage, jusqu'ou vous etes vous rendu en fait de traduction, je dois imaginé que vous avez pus faire un bout vous meme?


Mike Gagnon
vendredi 16 novembre 2007 à 09:41:22 | Re : "traduction"

Inferno8

le W-Langage c'est un langage utilisé par le logiciel windev.
Il est assez simple à comprendre bien que je ne comprenne pas certaines fonctions
Son interface est en francais et, dans l'aide, donne la correspondance cdes commandes en anglais.
Je vous envoie les programme d'encryptage en w-langage et, si vous y arrivez, donnez moi la marche inverse (je ne vous envoie évidemment pas la clé faites-en une autre il faut qu'elle fasse 255 caractères)


PROCEDURE DecodeNom(x_source)

fd est un entier = fOuvre("key.txt", foLecture)

SI (fd < 0) ALORS
   
    RENVOYER(ErreurInfo)
   
SINON
   
    pubclebase est une chaîne = fLit(fd, 255)
    fFerme(fd)
   
    x_debutcode est un caractère = Gauche(x_source, 1)
    x_fincodee est une chaîne = Milieu(x_source, 2)
    x_ckval est un entier = Sys2007(x_fincodee)
    x_deplace est entier = modulo(x_ckval, 255)
    x_ascclair est entier = Asc(x_debutcode) - x_deplace
    SI (x_ascclair < 0) ALORS x_ascclair = x_ascclair + 255
    x_debutclair est un caractère = Caract(x_ascclair)
    x_rotat est un entier = modulo(Asc(x_debutclair), 255)
   
    x_clealler est une chaîne
   
    SI (x_rotat = 0) ALORS
        x_clealler= pubclebase
    SINON
        x_clealler = Droite(pubclebase, x_rotat) + Gauche(pubclebase, 255 - x_rotat)
    FIN
   
    x_cledecod est une chaîne = MkCleInverse(x_clealler)
    x_finclair est une chaîne = Sys15(x_cledecod, x_fincodee)
   
    RENVOYER(x_debutclair + x_finclair)
FIN

______________________________________________________________


PROCEDURE MkCleInverse(clealler)

x_tab est un tableau de 255 caractères
cleinverse est une chaîne
x_car est un caractère
x_i est un entier

POUR x_i = 1 A 255
   
    x_car = Milieu(clealler, x_i, 1)
    x_tab[Asc(x_car)] = Caract(x_i)
FIN
_____________________________________________________________
cleinverse=""

POUR x_i = 1 A 255
    cleinverse = cleinverse + x_tab[x_i]
FIN
RENVOYER(cleinverse)


_____________________________________________________________

PROCEDURE Sys15(cledecod, fincodee)

s est une chaîne
i,j est un entier

s = ""

POUR i = 1 A Taille(fincodee)
   
    j = Asc(Milieu(fincodee, i, 1))
    s = s + Milieu(cledecod, j, 1)
FIN

RENVOYER(s)


Pas évident mais pouvez-vous m'aider à trouver la procédure inverse SVP?
.
Merci

Minna Oyasuminassaï

vendredi 16 novembre 2007 à 13:20:18 | Re : "traduction"

Mike Gagnon

Membre Club
Puis-je vous poser une question? En tant qu'étudiant en informatique, qu'est-ce que vous étudié?
Certainment pas la programmation, puisque vous nous demandez de faire le travail pour vous. Est-ce votre maitre de stage vous a demandé de trouver une solution par n'importe quel moyen, incluant poser la question sur des sites internet, ou si votre maitre de stage  préfèrerait que vous essayé vous meme de concevoir cette traduction. Et que va t'il advenir de votre futur en tant que programmeur? Allez vous toujours dépendre des reponse sur l'internet pour vous batir une carriere en informatique?
Je m'excuse d'etre si abrut, mais lorsqu'il s'agit d'étudiant, je ne crois pas que ce soit très éducatif de vous fournir une solution toutes 'cuite', pour que vous obteniez des bonnes marques.

Mike Gagnon
vendredi 16 novembre 2007 à 13:58:18 | Re : "traduction"

MichelAtoutFox

Membre Club

J'approuve completement Mike !

Que crois-tu que je vais faire de ton CV, si tu me l'envoie un jour pour un stage en entreprise? poubelle, directement, et sans réponse!

Internet et les forums sont des moyens extraordinaires de documentation, d'échange et de partage de savoirs. Mais ça n'a d'intéret que si c'est TOI qui fait, TOI qui réfléchit.

voilà une aide pour faire ton exercice:
la documentation complete de Visual FoxPro est disponible ici: [ Lien ]

commence par reconstituer l'algo du code qu'on t'a donné en VFP, puis essaye de faire un tableau de correspondance entre les mots-clés syntaxiques utilisés dans le code VFP et leur équivalent en w-langage.

vendredi 16 novembre 2007 à 15:20:28 | Re : "traduction"

Inferno8

Excusez-moi si ma formulation est confuse...

Je souhaiterais une aide, un coup de pouce, pas la solution à mon problème.

Minna Oyasuminassaï

vendredi 16 novembre 2007 à 18:24:15 | Re : "traduction"

Mike Gagnon

Membre Club
>>Excusez-moi si ma formulation est confuse...

>>si vous y arrivez, donnez moi la marche inverse

Ok j'ai mal compris alors la demande ci-haut

Mike Gagnon
lundi 19 novembre 2007 à 10:14:29 | Re : "traduction"

Inferno8

Désolé j'ai trés mal formulé ma demande.
Ceci dit, pouvez-vous me dire la signification de la fonction <xRecNo> SVP?
et la formulation

 <xRecNo>    : si vrai, le nø d'enregistrement influe sur la clé.

Merci de votre aide

Minna Oyasuminassaï

lundi 19 novembre 2007 à 12:39:16 | Re : "traduction"

Mike Gagnon

Membre Club
xRecno semble etre un parametre de la fonction, Soit .T. ou .F.

FUNCTION encode
PARAMETER xsource,xrecno

et plus bas on verifie si il est vrai ou faux. Si il est mit à .T., on incorpore le numéro de record dans la fonction d'encryptage, sinon on utilise 0

x_rotat=ASC(LEFT(xsource,1))+IIF(xrecno,RECNO(),0)


Mike Gagnon
lundi 19 novembre 2007 à 12:54:03 | Re : "traduction"

Mike Gagnon

Membre Club
Petit commentaire pour vote maitre de stage, dites-lui de reviser la façon de nommer ses variables. Elle/Il ne joues pas dans les 'règles de l'art'.
Typiquement si on s'attend à recevoir une variable .T. ou .F., la premiere lettre de la variable devrait etre un 'l' (lettre L minuscule) et non un 'x', comme cela simplement en regardant la variable on sait à quoi s'attendre.

Mike Gagnon

1 2

Cette discussion est classée dans : clé, chaîne, pubclebase, rotat, xsource


Répondre à ce message

Sujets en rapport avec ce message

Trouver clé primaire [ par ducker88 ] Bonjour,Est t'il possible de trouvé automatiquement la clé primaire en connaissant la table ?Je voudrais realiser une fonction permettant de renvoyer Recursivité [ par ducker88 ] Bonjour a tous,Voici mon probleme, j'ai besoin de realiser une recursivité sur une table et j'aimerai savoir si cela est possible en foxpro.En fait j' La propriété de clé primaire n'est pas valide [ par ducker88 ] Bonjour à tous,Voici mon problème, auquel je ne trouve aucune solution.J'ai une database et dans celle-ci j'ai une table qui me renvoi l'erreur "La pr


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales