Smith4400
Messages postés39Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention20 août 2009
-
1 juil. 2009 à 15:26
Smith4400
Messages postés39Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention20 août 2009
-
2 juil. 2009 à 17:04
slut les Mec !!
je suis un debutant dans le delphi et j'ai un problaime avec les fichier bin et le hex
je voudrais faire un programme pour ecrire des valeur hex dans un fichier bin
mais j'arrive pas a accomplire ce projet car je suis débutant
mon porgramme doit avoir un tedit dont on ecris les valeur et un bouttons pour sauvgarder cette chaine de caracteres hex....
comme cette chaine
CF 7E 35 0B AB 0B 88 34 C8 40 9A 51 3A BB D8 7B
aider moi
merci
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 1 juil. 2009 à 15:31
Je ne vois pas trop ce que tu veux faire ... Tu veux créer un fichier qui contienne les valeurs hexadécimales que tu as entrées ? Faut-il ajouter à ce fichier les nouvelles valeurs ?
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 1 juil. 2009 à 18:39
La routine d'écriture :
procedure WriteHex(FilePath: String; Value: Byte);
Var
H: HFILE;
Tmp: Longword;
begin
H := CreateFile(PChar(FilePath), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if H <> HFILE_ERROR then
begin
SetFilePointer(H, 0, nil, FILE_END);
WriteFile(H, Value, SizeOf(Byte), Tmp, nil);
CloseHandle(H);
end;
end;
_______________________________________________
La routine de lecture :
function ReadHex(FilePath: String; Pos: Longword): Byte;
Var
H: HFILE;
Tmp: Longword;
begin
Result := 0;
H := CreateFile(PChar(FilePath), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if H <> HFILE_ERROR then
begin
SetFilePointer(H, Pos, nil, FILE_BEGIN);
ReadFile(H, Result, SizeOf(Byte), Tmp, nil);
CloseHandle(H);
end;
end;
_______________________________________________
La méthode pour le bouton :
procedure TForm1.Button1Click(Sender: TObject);
begin
{ MonFichier contient l'adresse sur disque de ton fichier }
WriteHex(MonFichier, StrToInt(Format('$%s', [Edit1.Text])));
end;
_______________________________________________
Pas de gestion d'erreurs concernant le TEdit (si tu entres des valeurs correctes, comme AB, E3, F9, tout va bien, mais si tu entres 'KHFJHFK' il y aura une exception).
Pour lire une valeur hexadécimale, il suffit d'utiliser la fonction ReadHex, en passant la position de la valeur que tu désires lire dans le paramètre Pos (0, première valeur / 1, 2eme valeur / 2, 3eme valeur ...)
Je n'ai pas testé, mais il me semble que cela devrait marcher.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 1 juil. 2009 à 18:41
Je vais faire une source avec ce que tu désires faire, mais en plus général. Elle sera disponible avant le week-end je pense ... n'oublies pas d'y jeter un oeil !
Cordialement, Bacterius !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 1 juil. 2009 à 19:37
Utilise les Stream à la place CreateFile
c'est mieux, plus simple d'utilisation et sécurisé au niveau des allocations
toutes les procédures utiles y sont déjà implémentées !!
Smith4400
Messages postés39Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention20 août 2009 2 juil. 2009 à 12:07
[../auteur/BACTERIUS/1247343.aspx Bacterius]
Thx frero mais je prefere un exemple tres facile pour me facilité la vie
par exemple
ouvrir un fichier bin tres simple et ecrire des valeurs hexdemical
c tous
j'atend tous tes sujet dans ce comaine
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 2 juil. 2009 à 12:22
Ce qui serait bien c'est de ne PAS attendre le travail des autres
mais essayer de le faire toi même ... la leçon rentre beaucoup mieux dans la tête de cette manière.
Smith4400
Messages postés39Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention20 août 2009 2 juil. 2009 à 12:30
Mr Cirec
j'ai fais un grand prograis dans ce projet et car je suis débutant
j'arrive pas a finir le programme
c pour ça que je demande de l'aide des pro
merci
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 2 juil. 2009 à 12:34
Mais je ne suis pas un pro ^^ (Cirec oui :p)
Vais ptet faire autre chose que l'éditeur hexadécimal en fait c'est ... comment dire, trop simple, j'apprendrais pas grand-chose et toi non plus en fin de compte :/
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 2 juil. 2009 à 15:54
Bon faudrait songer à parler un peut mieux quand même ...
je ne pense pas que Bacterius soit ton "frero" et je doute qu'il apprécie ces familiarités.
Moi en revanche j'ai droit au "Mr" c'est pas méchant certes mais on passe dans l'autre extrême .. le pseudo tout seul suffit et tout le monde sait à qui ça s'adresse !!!
et ce n'est pas par ce que t'es un débutant que les autres doivent faire le travail à ta place ... débutant nous l'avons tous étés ... mais la grande différence c'est qu'on avait pas internet !!!!!!!
il fallait vraiment travailler, chercher, tester, lire des livres pour arriver à apprendre quelque chose !!!!!
alors que maintenant c'est ... ah ben j'sais pas alors à la place de chercher 5 minutes (grâce à internet) je demande sur le forum si il n'y en a pas un voudrait faire ce travail à ma place ... il fait trop chaud pour travailler ...
j'ai un Scoop pour toi : si t'avais cherché un peut sur le net t'aurais déjà ta réponse ... et surtout ne me dis pas que t'as cherché ... on trouve des centaines de liens qui traitent du sujet ... mais encore faut il chercher dans les réponses ... il fait vraiment trop chaud pour travailler!!!
Quand on apprend, (quand on débute), en général on commence par un "Hello World" puis une "Calculatrice" et un "Editeur Hexadécimal"
donc si tu poursuis ton apprentissage tu devrais passer par cette étape très rapidement et du coup trouver par toi même !!!
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 2 juil. 2009 à 16:37
Ouais j'ai horreur qu'on m'appelle frère ou frérot, ça m'évoque des choses désagréables, et puis d'ailleurs ton comportement (certes traditionnel de nos jours, malheureusement) me donne envie de ne même pas faire l'éditeur héxadécimal. Voilà ...
Smith4400
Messages postés39Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention20 août 2009 2 juil. 2009 à 17:04
dans ce monde, qui cherche a étudier est fautif....
moi j'étudis pas plus
mais je vais faire mon possible pour avoir la solution
tjs merci pour qui m'a aider