Salut,je voudrais modifier le fichier dfm d'un autre projet et de recompiler le projet modifier par dcc32 et make , car je voudrais associer une requette sql à IBQuery et de recompiler le projet.
Salut,je voudrais modifier le fichier dfm d'un autre projet et de recompiler le projet modifier par dcc32 et make , car je voudrais associer une requette sql à IBQuery et de recompiler le projet.
Vous pouvez répéter la question ?
je voudrais modifier le fichier dfm par un autre programme, et de recompiler le projet correspond à ce dfm
pourquoi ?
il y'a surement moyen de faire autrement
quel est le pb exactement ?
Si je comprends tu as un exe, mais pas les sources, et voudrais modifer l'exe (extraire les ressources dont les DFM, modifié le SQL d'une Query dans une DFM, et réintégrer les ressources dan l'exe)
... sinon tu as les sources et tu n'a rien compris à la programmation sous DELPHI ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
S'il veux recompiler, c'est qu'il a les sources!
Ou alors il fume la moquette.![]()
Attendez les réponses aux questions posées par Issam, un peu de patience et d'empathie ça fait pas de mal.
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Ou alors il veux une technique de hack...style injection sql.
et ça c'est pô bien![]()
j'ai deux projet différent avec mon code source, et je veut à partir de l'executable du premier projet modifier quelque paramètre du 2iem projet et de recompiler(ce 2 projet) pour générer un autre executable qui prend en charge les modification effectuer. c'est pour cette raison je veut modifier le fichier dfm du projet quand veul modifier et de recompiler ce projet.
la solution la plus simple est de lire la requete depuis un fichier.
Sinon il y a la solution des procedures stoquées en modifiant la procédure depuis une application, ou les IPC( fichier mappés en mémoire) etc...
mon pb:
j'ai créer une application qui permet de générer une requette SQL pour supprimer des ligne d'une table ( l'utilisateur n'a pas le deroit de supprimer), je veut associer cette requette à ibquery qui est dans un autre projet et générer un executable pour que je peut donner l'executable à l'utulisateur qui a demamnder la suppression d'une ligne avec mon accord, et je ne veut pas modifier à chaque fois le code source pour modifier la requette sql et de recompiler je veut que tous sa se fait par programmation.
je ne veut pas donnér la requette directement à l'utulisateur (pour ne pas modifier) c'est pour cette raison que veut metre cette requtte dans un exectable aprés l'affectation du requette à ibquery et la recompilation.
je veut associer la requtte au moment de compilation, car la solution de mettre la requtte dans un fichier demande l'existance de ce fichier au moment de l'execution (je ne veut pas donner la requtte dans un fichier à l'utulisateur), je veut que cette requette soit affecter à ibQuery au moment de compilation
En fait tu as un programme, une sorte d'éditeur ... qui compile des sources pour générer un autre programme ? tout ça pour lancer une requête "secrète" pour que tes utilisateurs ne triche pas ...
Bon, si tu sais déjà compilé en ligne de commande un exécutable, modifier une DFM (Texte ou Binary) n'aurait pas du être compliqué ce n'est que de la modification de fichier, mais cela me semble peu viable à long terme ...
Je te propose une solution différente ...
Tu as actuellement le Client ZoheirSoft ... lui ne change pas
Tu vas créer et donner à ton Client ZoheirTools ... c'est nouveau (c'est ton programme qui contient le SQL)
Tu vas créer un programme pour toi uniquement ZoheirAdmin (c'est ton editeur de SQL qui devrait remplacer dans la DFM et recompiler)
ZoheirTools, c'est juste une petite fenêtre avec un bouton qui lance une requête
Cette requête est stockée dans un fichier, et ce fichier est Crypté (le cryptage, si tu n'as pas de fonction qui le fait, je peux t'en filer une très débile mais rend le fichier non lisible et puis tes utilisateurs ça ne semble pas être des informaticiens)
une fois la requête lancée, le fichier est supprimé
Tu as ZoheirAdmin, lui la seule chose qu'il fait c'est un editeur de SQL (un TMemo suffira) et il écrit la requête dans un fichier et crypte le fichier !
C'est quand même moins tordu non ?
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
j'ai pensé a cette solution mais j'ai pas trouver des fonctions de cryptage et de décryptage, est ce que tu peut me envoyer une fonction de cryptage. sinon je vait sauvgarder les ligne que je vait suuprimer dans une BDD (firebird) puis je vait compresser cette base de données pour obtenir BDD.jbk (firbirde) pour donner ce fichier à l'utulisateur
merçi mes amie
Voiçi mon mail:
b.zoheir at yahoo.fr
Tient pondu à la sauvage, à l'instant, cryptage à la con, mais ça devrait suffir non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 procedure CryptFile(const InFileName, OutFileName: string); var InFile, OutFile: File; InBuffer: array[Byte] of Byte; OutBuffer: array[Byte] of Word; I: Integer; AmtTransferred: Integer; begin AssignFile(InFile, InFileName); Reset(InFile, 1); try AssignFile(OutFile, OutFileName); Rewrite(OutFile, 2); try while not EOF(InFile) do begin BlockRead(InFile, InBuffer, Length(InBuffer), AmtTransferred); for I := Low(InBuffer) to AmtTransferred - 1 do begin OutBuffer[I] := Sqr(InBuffer[I]); end; BlockWrite(OutFile, OutBuffer, AmtTransferred); end; finally CloseFile(OutFile); end; finally CloseFile(InFile); end; end; procedure DeCryptFile(const InFileName, OutFileName: string); var InFile, OutFile: File; OutBuffer: array[Byte] of Byte; InBuffer: array[Byte] of Word; I: Integer; AmtTransferred: Integer; begin AssignFile(InFile, InFileName); Reset(InFile, 2); try AssignFile(OutFile, OutFileName); Rewrite(OutFile, 1); try while not EOF(InFile) do begin BlockRead(InFile, InBuffer, Length(InBuffer), AmtTransferred); for I := Low(InBuffer) to AmtTransferred - 1 do begin OutBuffer[I] := Trunc(Sqrt(InBuffer[I])); end; BlockWrite(OutFile, OutBuffer, AmtTransferred); end; finally CloseFile(OutFile); end; finally CloseFile(InFile); end; end; procedure TFrmTestFichier.BtnCryptClick(Sender: TObject); begin CryptFile(EdPathSearch.Text, EdPathSearch.Text+ '.Crypt'); end; procedure TFrmTestFichier.btnDeCryptClick(Sender: TObject); begin DeCryptFile(EdPathSearch.Text+ '.Crypt', EdPathSearch.Text+ '.DeCrypt'); end;
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Sinon, le cryptage Rot13 est simple à mettre en oeuvre comme les cryptages "XOR".
Une autre idée de conception:
1) Ton appli cliente s'appuye sur com pour exposer via une interface IQueryFactory une méthode genre CreateSqlQuery(aRequete: string).
2) Depuis une autre appli via COM ou DCOM(Ca devient intéressant) , tu demandes l'objet TQueryFactory puis tu appelles sa méthode CreateSqlQuery en lui transmettant la requete sous forme d'une chaine de caracteres.
La requete est mise à jour via cet appel (local ou distant) de méthode.
PS
Pour le cryptage Xor, l'avantage c'est que le premier Xor crypte et lel second décrypte.
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Cle Xor simpliste: 011 données à crypter: 110 -> 110 xor Cle = 101 décryptage 101 Xor Cle = 110
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager