DFM READER

cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008 - 25 mars 2008 à 16:55
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008 - 2 avril 2008 à 15:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46167-dfm-reader

cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
2 avril 2008 à 15:50
je c tous ça, et j'ai éssayé d'usé ces procedures bien plus avant mais j'ai pas réussie a utiliser car ça planté bc et puisque j'ai pas eu le temps de continué alors j'ai laissé tombé , et pour le but lire la conclusion et fais marché ton imagination il bc a faire avec et n'éssay pas de pensé a les Resources ;).
bon courage.
Utilisateur anonyme
1 avril 2008 à 11:25
ah bon ... pourtant ça fait exactement la même chose que ton code (même résultat) mais la grande différence c'est que ça n'est pas limité à un seul format tu peux tout récupérer :(Icônes, Images, Images Listes et plus encore).
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
1 avril 2008 à 10:50
@cirec je connais ces procédures, mais c'été pas le but.
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
29 mars 2008 à 11:19
Pour @cirec,j'ai met le lien en Haut!alors tu veux quoi au juste???
Seriesement vous ete tous Aveugles, Lire SVP La conclusion.
//*********Conclusion**********
tous personne désire de faire un composant pour charger des fichier sans utiliser les ressources RES DCR de delphi directemnt dans votre Exécutable pour faire des installers par exemple, c le moment de la même façon que Delphi enregistre les donnée de bitmap dans un fichier ASCII (.DFM) .
//****************************************************
ce que je voulais dire c'est : qu'on peut stocker des donnée binaire en format ASCII et les récupérer qu'on ton veux,
j'explique:
on peut converire un fichier binaire en code ASCII puis le charger dans une variable; un Widestring par exemple, comme ça le fichier et dans votre executaple, bien sure vous allez ajouté le nom et l'extention du fichier ainsi vous pouvez crypter et compressés vos données, et quand vous avez besoin, vous récupérez votre fichier vous n'avez qu'a renversez la procedure.
c'été ça le but, Personnelement ça marche chez moi nikel, j'éssay just de compréssé mes donnée car la taille du fichier an code ASCII se double c normale, c le resultat de conversation.
personnellement quand j'ai vue tous le code de mon ami et apré que j'ai pue comprendre comment le delphi manipule les Fichier source DFM ça ma venu cette idée, chui pas bornée moi!! les Raws Scoket, Blocked no Blocked socket, AVR ARM, thread, Classe, composant, ASM ^point, checksum, GPR Protocol, TStringstream, array of byte, Ortographe, les petit code de gens ...
ça ne me dit rien tous ça,
mais quoi faire avec !! ça , peut m'occupe, j'espère que je me suis fais comprendre, il faut avoir l'esprit un peut vaste.

Et pour mon voisin @nethacker, c vrai ce que ta dit , mais pour se que tu suggérais c possible, pour le moment je ne peut le faire qu'avec RemObject c a dire exécuté un script en runtime pour me facilté la tâche et pas vraiment complètement, car il faut connaitre tous le syntaxe de fichier DFM pour evitez les surprises d'un propreité ou évènement inattendue ;), car le delphi ne copie pas batement les proprité des composant en string, c un peut plus que ça.

Finalement les Mecs c un plaisir de changé des idées avec vous,c la seul chose qui me tien a posté des sources ici ;).
nethacker Messages postés 288 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 12 octobre 2011
28 mars 2008 à 10:47
C'est pas DFMreader ! c'est plutot dfm's icon reader !
ca serait bien si ta source affiche une form à partir d'un dfm ! voir même concevoir !
Utilisateur anonyme
27 mars 2008 à 12:53
Salut,

c'est peut être ton amis qui te la donnée mais ça n'empêche pas de remarquer les similitudes entre les deux codes et d'en déduire que ta procédure découle de sa grande soeur que l'on peut trouver à l'adresse indiqué par WhiteHippo.

On peut conserver ton code à condition de mettre un lien explicite dans la description et dans le code juste avant la procédure vers le lien d'origine ... au cas contraire je serai obligé de supprimer le code.
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
26 mars 2008 à 11:25
ah, non @WhiteHippo ! j'accepte tous de toi, mais ça
c'est inacceptable!!!!!!!!
ça veux dire que t'es très faible, moi je veux plus tôt que tu télécharge toutes mes source et tu laisse a chaque source le commentaire que tu veux, impose toi soi un homme m***e! exprime toi comme tu veux, ne t'inquiète pas ni pour moi ni pour le reste, y compris Codes-Sources:D.
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
26 mars 2008 à 10:50
Matrix1
"je c que tu m'aime pas"
Aucun rapport, je ne juge pas les gens mais leur travail.
"c pour ça que tu te fiche de tous les explications ainsi de voire la source"
J'ai regardé ta source, c'est pour ça que j'ai mis un commentaire. Et, je persiste, ta source reprend une grosse portion du code situé à l'adresse donnée. Il suffit de regarder les similitudes quant aux noms des variables, au formattage du texte, etc....

Je te rappelerais donc le règlement :
"13 - On ne poste pas le travail d'autrui et on cite les auteurs pour les morceaux de code publics"

P.S. Rassures toi, désormais, je ne mettrais plus de commentaires sur tes sources.

Cordialement.
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
26 mars 2008 à 10:02
je te comprend @WhiteHippo, je c que tu m'aime pas c pour ça que tu te fiche de tous les explications ainsi de voire la source, tu tombe don le même piège, un programmeur qui tombe dans le même piège n'est pas un programmeur intelligents :D c'est une information que ma donnée un prof:D .
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
26 mars 2008 à 09:54
@WhiteHippo alors d'après Ton l'URL

procedure TForm1.sbut_HexStr2BmpClick(Sender: TObject);
var
HexStr: String;
BmpStream: TMemoryStream;
Bmp1: TBitmap;
i: Integer;

begin
{copy and paste the Text from the memo into the HexStr below
don't forget to add a ' at the end}
HexStr := '424D76020000000000007600000028000000200000002000'+
'0000010004000000000000020000130B0000130B00001000'+
'00000000000004020400349A0400CC32FC0016820000B8C8'+
'0C00D3C2D2000C7600001E00000040A43B00D952360002B0'+
'F7000081BF00BFB0C80016550800405C0000D98200000000'+
'000000000000000000000000000000000000000000000000'+
'000000000000000000000000000000000000000000000000'+
'000000000000000000000000000000000000000000000000'+
'000000000000000000000000000000000100000000000000'+
'000000000000000012100000000000000000000000000001'+
'222100000000000000000000000000122222100000000000'+
'000000000000012222222100000000000000000000001222'+
'222210000000000000000000000122222221000000000000'+
'000000000012222222100000000000000011000001222222'+
'210000000000000000121000122222211000000000000000'+
'001221012222221000000000000000000112221222222100'+
'000000000000000001122222222210000000000000000000'+
'012222222221000000000000000000000122222222100000'+
'000000000000000001222222222100000000000000000000'+
'012222222222100000000000000000000122222222222100'+
'000000000000000001222222221110000000000000000000'+
'122222221100000000000000000000001222211100000000'+
'000000000000000012111000000000000000000000000000'+
'110000000000000000000000000000000000000000000000'+
'000000000000000000000000000000000000000000000000'+
'000000000000000000000000000000000000000000000000'+
'000000000000';
if Length(HexStr) mod 2 <> 0 then
Begin
ShowMessage('Not Even');
Exit;
end;
BmpStream := TMemoryStream.Create;
BmpStream.Size := Length(HexStr) div 2;
for i := 0 to (Length(HexStr) div 2)-1 do
begin
PByteArray(BmpStream.Memory)[i] := StrToInt('$'+Copy(HexStr,((i+1)*2)-1,2));
end;
Label2.Caption := IntToHex(PByteArray(BmpStream.Memory)[0],2);
Bmp1 := TBitmap.Create;
BmpStream.Position := 0;
Bmp1.LoadFromStream(BmpStream);
Canvas.Draw(4,4,Bmp1);
Bmp1.Free;
BmpStream.Free;
end;

//*********************************************
mou je te dit que cette procedure ma donnée mon ami presque comme elle est en haut mais ça marchai pas avec les données de DFM c'est Normale par ce que il ne savais pas tous se que j'ai peut découvert : re..
bon! pour les DFM je pense que le delphi enregistre tous format que soit image jpeg icon ou tous autre format d'image en bitmap.
j'explique un peut plus,si on utilisent un Timage pour enregistrer un image par exemple ; les données de cette image sont enregistrer dans le ficher DFM (Fichier ASCII) dans le Block qui situe entre "Picture.Data {" jusqu'au prochaine "}" sous format de chaine en Hexadécimale, et il écrit le type de format original dans les 24 premiers bites genre (075 7D..bal bla) pour l'identifier format original "TJPEG ou TBITMAP" ou cas ou vous voulez récupérer ce que vous appartiens bien sure :D!, tous format bitmap commence par 42 4D M B c a dire format bitmap (pour tester et ouvrer une bitMap avec un éditeur Hex pour voire, d'ailleurs c le cas de tous les fichier non ASCII, alors il ne reste que de récupérer tous block de donnée entre 42 4D jusqu'au prochaine "}" et convertir le code hex en byte puis les récupérer dans un Tstream et le reste .
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
25 mars 2008 à 23:02
"j'ai fais cette source juste en break time pour un ami qui a bc chercher sur le net et rien trouvé alors je pense que ça sera utile pour bc de gens."

Soit, ton ami n'a pas su trouvé sur le net; apparemment toi si...

Il aurait été normal de précisé d'où est tirée la principale fonction "HexStr2Bmp" de "U_operator.pas" même si tu l'as modifiée, ou plutôt adaptée dirons nous.
Je pense d'ailleurs que le niveau expert viens du fait de l'origine de la source (http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20438223.html)

Toujours repiquer les sources des autres pour ne les modifier que très légèrement, et surtout sans rien leur apporter de plus, faut effectivement pas s'étonner de l'ennui que cela entraine... Qui plus est en ce qui concerne des sources de 2002...

Cordialement.
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
25 mars 2008 à 17:00
niveau Expert ...
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
25 mars 2008 à 16:55
Pas de commentaire ^o), c'est l'ennui qui reine ici
Rejoignez-nous