Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : convertir une adresse MAC decimal en une adresse MAC HEXA [ Réseau & Internet / Client - Server ] (wismerhill40)

mercredi 11 avril 2007 à 15:38:10 | convertir une adresse MAC decimal en une adresse MAC HEXA

wismerhill40

Bonjour,

voila mon probleme: j'ai mon adresse MAC sous le format INT64 et je desire la remettre au format HEXA

cad jai mon int de la forme 9154794631168 et je veux l'avoir sous le format e7:f3:b6:25:11:00
Ne voyez aucune corelations entre les 2 valeurs.

Voila si quelqu'un a une solution je vous en remercie d'avance.



Vive le monde du libre }:)

mercredi 11 avril 2007 à 18:10:40 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

Loulibier

Membre Club

Salut wismerhill40,

voici une fonction qui te permettra d'optenir ce que tu veux :

function IntToHex(const iValue : int64; const cSeparator : char): string;
var
  sValue  : string;
  iNoChar : integer;
begin
  sValue := SysUtils.IntToHex(iValue, 2);

  if (Length(sValue) mod 2) > 0 then
    sValue := '0' + sValue;

  Result := '';

  for iNoChar := 1 to Length(sValue) do
  begin
    Result := Result + sValue[iNoChar];

    if (iNoChar mod 2 = 0) and (iNoChar <> Length(sValue)) then
      Result := Result + cSeparator;
  end;
end;


Bonne Prog,  Olivier
PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.


jeudi 12 avril 2007 à 11:04:09 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

f0xi

Membre Club Administrateur CodeS-SourceS


houlala, >9500ms/1MCall ... c'est enorme.


version plus rapide (125ms/1MCall) :

function MacStr(const AMac : int64) : string;
var
  pR : PChar;
  pB : ^byte;
  N  : integer;
const
  BTC : array[$0..$F] of char = '0123456789ABCDEF';
begin
  pB := @AMac;
  inc(pB,5);
  SetLength(Result, 17);
  pR := PChar(Result);
  for N := 0 to 5 do
  begin
    pR[0] := BTC[ pB^ shr 4 ];
    pR[1] := BTC[ pB^ and $F ];
    dec(pB);
    inc(pR, 2);
    if N < 5 then
    begin
      pR[0] := '-';
      inc(pR,1);
    end;
  end;
end;



Croc (click me)

jeudi 12 avril 2007 à 11:12:57 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

Loulibier

Membre Club
salut foxi,

pourrais-tu m'expliquer ce que tu veux dire par : houlala, >9500ms/1MCall ... c'est enorme. ?


Bonne Prog,  Olivier
PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.

jeudi 12 avril 2007 à 12:46:47 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

c'est pourtant simple : C'est le temps (en Millisecondes)que le processeur met à exécuter ta fonction  1 Millier ou 1 Million de fois

On peut donc dire que celle de F0xi est 76 fois plus rapide que la tienne 

Evidement sur un appel ça ne se voit pas et c'est pour cela que l'on fait des testes sur des Milliers d'appels
mais le plus intéressant c'est de voir par quelle méthode il est passé pour obtenir le même résultat que toi.
 
@+
Cirec


jeudi 12 avril 2007 à 15:09:20 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

wismerhill40

Bonjour

Merci de vos reponses ! je vais essayer en esperant que ca marche je croise les doigts !!

Merci encore

Vive le monde du libre }:)

vendredi 13 avril 2007 à 04:54:10 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

f0xi

Membre Club Administrateur CodeS-SourceS


je vois pas ce que je peu ajouter de plus a l'explication de Cirec... si ce n'est que,

quand tu fait une fonction de convertion de ce genre, chiffre vers lettres, lettres vers chiffre, process d'image etc. il faut que ce sois trés rapide.
par contre on considere que les methodes de compression, cryptage, ou lourd traitement video ou 2d/3d peuvent etre lente (cela depend des cas) et donc afficher un etat de progression.

bien sur, une methode qui donne le meme resultat mais plus rapidement sera toujours bienvenue.

moi, je considere que des methodes legere doivent tourner en dessous de 1000ms pour 1MCall, surtout les methodes succeptibles d'etres appélée 10 ou 20 fois ou plus dans une boucle ou une methode.
et encore la on as 125ms sur une config recente qui est prevue pour de la DAO 2d/3d, de la MAO et faire tourner des jeux recents.
alors je te laisse imaginer l'importance de l'optimisation sur des config plus modestes... une methode qui mets presque 10 secondes pour 1 millions d'appels pour ce genre de truc c'est trop :)
meme si ça parrait un peu deroutant de tester 1 millions d'appels, c'est ce qu'on appel un test de charge, ça permet egalement de tester la stabilitée de la methode pour detecter d'eventuel probleme de pointeur ou de fuite memoire ou de debordement.
un peu comme quand on test la charge d'un serveur pour voir si tout vas bien et pour regler les limites.

pour tester c'est simple, voici un petit shema que j'utilise souvent :

procedure TForm1.Button1Click(sender : TObject);
var GT1,GT2, N : cardinal;
begin
  GT1 := GetTickCount;
  for N := 1 to 1000000 do Methode1; { supposée la plus lente }
  GT1 := GetTickCount-GT1;

  GT2 := GetTickCount;
  for N := 1 to 1000000 do Methode2; { supposée la plus rapide }
  GT2 := GetTickCount-GT2;

  Label1.caption := format('%d ms VS %d ms [%.2f%%]',
                           [GT1, GT2, Abs( (100/GT1)*(GT1-GT2) )]);
end;

certe GetTickCount n'est pas le meilleur de la precision, mais quand on as un ecart de 9500 a 125 ... on se rend vite compte
de qui est la plus rapide...


Croc (click me)

vendredi 13 avril 2007 à 09:27:48 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

Loulibier

Membre Club

Bonjour Foxi,

Merci pour ces  informations très intéressante. Effectivement je n'ai jamais testé mes fonctions sur 1 Millions d'appels, mais on se rend bien compte de l'utilité de le faire.

Bonne Prog,  Olivier
PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.


vendredi 13 avril 2007 à 11:12:53 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

jace1975

salut,

Foxi tu peux m'expliquer ce ratio Abs( (100/GT1)*(GT1-GT2) ); ?????

++




vendredi 13 avril 2007 à 12:50:58 | Re : convertir une adresse MAC decimal en une adresse MAC HEXA

wismerhill40

Bonjour a tous !!

Merci pour tout vos conseils et vos reponses super rapides.

jai essayer vos reponses et celles de Foxi marche super. A part que le resultat est inverse a celui d'une adresse MAC. Donc jai modifie le source de Foxi (Desole) je vous la mettrai Lundi si ca vous interresse. mais je dois dire que je me suis fais aider car je ne suis pas a l'aise avec le travail sur les bites. Mais j'ai la meme chose a faire avec l'Adresse IP mais je vais essayer d'y arriver tout seul avec tes sources Foxi !!

Merci a tous !


Vive le monde du libre }:)


1 2

Cette discussion est classé dans : format, convertir, mac, adresse, decimal


Répondre à ce message

Sujets en rapport avec ce message

convertir un date [ par alex_lecool85 ] existe t-il une fonction qui converti une date au format jj/mm/aaaa eu format mm/jj/aaaa? merci de vos reponce. convertir integer en time ? [ par ladenree76 ] Bonjour,J'ai une table contenant un champ au format numérique.J'ai réussi à faire la somme avec un tquery :select sum(nb) from tablemais comment ensui mac adresse [ par PhilLU ] Salut à tous! Je tente sans succès de récupérer la mac adresse de ma carte réseau. Qui peux m'aider sur ce coup? A+ Phil. Adresse MAC [ par winocam ] Bonjour, Est-il possible de récupérer l'adrese MAC si le PC n'est pas connecté ? J'ai trouvé plusieurs sources qui permettent de récuper l'adresse, Netbios, l'addresse MAC ne se dévoile pas correctment [ par Keneda ] Salut à tous, j'utilise l'api Netbios de netapi32.dll pour récupérer l'adresse MAC d'une carte réseau, on trouve ce code facilement sur google et il s MAC Adresse [ par michelroc ] Bonjour,Je recherche ou faire( delphi) un programme qui tourne sous DOS. Permettant de me donner la MAC Adresse.MerciMichel [:)] Adresse MAC [ par yvessimon ] BonjourEst-il possible de lire l'adresse MAC de la carte réseau du Pc ?Comment faire ?Salutationsyvessimon format d'une adresse dans un edit [ par siral ] salut à tous voila j'ai un probléme dans mon application  avec le edit car je l'ai utilisé comme etant un champs pour<span style="mso-s Convertir un QuickRep en HTML [ par leroukin ] Bonjour,Je cherche le moyen de convertir correctement un QuickRep en HTML.Je sais actuellement le faire à partir des outils Gnostice et la procédure : Chargement d'images au format FITS [ par faymarcel ] Bonjour à tous,Je dois traiter des images au format FITS ..A l'aide du composant "Image" (Delphi Vers.6)J'utilise le code suivant : if OpenPictureDial


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.