begin process at 2012 02 10 08:32:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Problème DELPHI HEXA -> Virgule Flottante


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

Problème DELPHI HEXA -> Virgule Flottante

mardi 22 avril 2008 à 15:12:41 | Problème DELPHI HEXA -> Virgule Flottante

darnau

Bonjour,

Je suis étudiant en informatique et dans le cadre de mon stage je doit réaliser un Shape (.shp) Viewer.
Je suis en train de tenter de "décortiquer" l'entête du fichier .shp.
Le problème c'est que pour X min j'obtiens : 411EE334000003C2 ce qui ne me parle pas beaucoup.
Je devrais obtenir une valeur proche de 506061.

Si quelqu'un à une idée pour récupérer la valeur approchée en nombre a virgule flottante.

Merci d'avance.


D@rNaU
mardi 22 avril 2008 à 16:08:25 | Re : Problème DELPHI HEXA -> Virgule Flottante

Kenavo

Réponse acceptée !
Salut,

Ça c'est la représentation hexa d'un réel sur 8 octets (type Double) égal à 506061.000000055996

Voir :
représentation IEEE en virgule flottante

Ken@vo

Code, Code, Codec !
mardi 22 avril 2008 à 16:25:56 | Re : Problème DELPHI HEXA -> Virgule Flottante

darnau

Merci beaucoup pour ta réponse même si je comprend rien du tout je vais voire avec mon responsable de stage si ca peut l'aider.

Encore Merci.

D@rNaU
mardi 22 avril 2008 à 17:07:08 | Re : Problème DELPHI HEXA -> Virgule Flottante

darnau

Excuse moi Kenavo pourrais-je avoir de plus amples informations sur la technique que tu as utilisés pour effectuer la conversion car ton site me parais vraiment écrit en Chinois... (Désolé je débute      )

Merci d'avance.

D@rNaU

mardi 22 avril 2008 à 17:43:12 | Re : Problème DELPHI HEXA -> Virgule Flottante

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Position Field Value Type Order
Byte 0 File Code 9994 Integer Big

Byte 4 Unused 0 Integer Big
Byte 8 Unused 0 Integer Big
Byte 12 Unused 0 Integer Big
Byte 16 Unused 0 Integer Big
Byte 20 Unused 0 Integer Big

Byte 24 File Length File Length Integer Big
Byte 28 Version 1000 Integer Little
Byte 32 Shape Type Shape Type Integer Little

Byte 36 Bounding Box Xmin Double Little
Byte 44 Bounding Box Ymin Double Little
Byte 52 Bounding Box Xmax Double Little
Byte 60 Bounding Box Ymax Double Little
Byte 68* Bounding Box Zmin Double Little
Byte 76* Bounding Box Zmax Double Little
Byte 84* Bounding Box Mmin Double Little
Byte 92* Bounding Box Mmax Double Little



{ Declaration du type SHPFileHeader }

{ SHP File Header }
Type
  pSHPFileHeader = ^TSHPFileHeader;
  TSHPFileHeader = record
    FileCode  : integer; { = 9994 }
    __Unused0 : integer;
    __Unused1 : integer;
    __Unused2 : integer;
    __Unused3 : integer;
    __Unused4 : integer;
    FileLength: integer;
    Version   : integer; { = 1000 }
    ShapeType : integer;
   
BBXmin    : Double;
    BBYmin    : Double;
    BBXmax    : Double;
    BBYmax    : Double;
    BBZmin    : Double;
    BBZmax    : Double;
    BBMmin    : Double;
    BBMmax    : Double;
  end;

const
  SIZEOFSHPFileHeader = SizeOf(TSHPFileHeader);

{ Shape Type }
const
  ShapeTypeNull        = 0;
  ShapeTypePoint       = 1;
  ShapeTypePolyLine    = 3;
  ShapeTypePolygon     = 5;
  ShapeTypeMultiPoint  = 8;
  ShapeTypePointZ      = 11;
  ShapeTypePolyLineZ   = 13;
  ShapeTypePolygonZ    = 15;
  ShapeTypeMultiPointZ = 18;
 
ShapeType PointM      = 21;
 
ShapeType PolyLineM   = 23;
 
ShapeType PolygonM    = 25;
 
ShapeType MultiPointM = 28;
 
ShapeType MultiPatch  = 31;


{ Exemple Lecture }


var
  FileHeader : TSHPFileHeader;
begin
  ...
  with TFileStream.Create(FileName, fmOpenRead) do
  try
    ReadBuffer(FileHeader, SIZEOFSHPFileHeader);
    ...
  finally
    Free;
  end;
  ...
end;


{ Exemple Ecriture }

var
  FileHeader : TSHPFileHeader;
begin
  ...
  with TFileStream.Create(FileName, fmCreate) do
  try
    FileHeader... := ...;
    Position := 0;
    WriteBuffer(FileHeader, SIZEOFSHPFileHeader);
    ...
  finally
    Free;
  end;
  ...
end;

Shape File specification [PDF]




mardi 22 avril 2008 à 18:02:07 | Re : Problème DELPHI HEXA -> Virgule Flottante

Caribensila

Membre Club
... C'était une traduction du chinois vers le japonais, par f0xy.

mardi 22 avril 2008 à 20:28:31 | Re : Problème DELPHI HEXA -> Virgule Flottante

Kenavo

Réponse acceptée !
Vénérable f0xy très gentil donner solution toute faite !
Mais honorable étudiant doit .... étudier !...

Peut être ceci plus clair !

Ken@vo

Code, Code, Codec !
mardi 22 avril 2008 à 20:56:30 | Re : Problème DELPHI HEXA -> Virgule Flottante

darnau

Merci ton dernier lien etais bien plus clair.
Après plus de recherche j'obtient :

code


procedure TForm1.Button6Click(Sender: TObject);
var
  i64: int64;
  r: Double absolute i64; // r a donc la même adresse que i64, et tous les 2 sont codés sur 8 octets
begin
  i64:=$411EE334000003C2; // on affecte l'un des deux
  ShowMessage(FloatToStr(r)); // et on lit l'autre...
end;



Merci encore!!

D@rNaU


Cette discussion est classée dans : problème, delphi, virgule, hexa, flottante


Répondre à ce message

Sujets en rapport avec ce message

EInvalidOp Virgule flottante [ par PoPoV83 ] Bonjour tout le monde!Voila je suis en train de developper une application avec Delphi 5,et après avoir éliminer toutes les erreurs de compilation je virgule flottante [ par pseudoOM ] Bonjour ami développeurs en delphi. Voici mon problème : dans ma base de données ACCESS j'ai un champs de type numérique (réel double format euro). Do [Delphi 8] Problème de compilation [ par mightteam ] Salut à tous       Voila je débutte avec Delphi (versio 8. NET)       quand je crée un nouveau projet il m'indique toujours la meme erreure qui est Port serie N°6 dans Delphi 4 [ par froggy666 ] Bonjour, voila j'ai un gros problème, j'ai acheté un convertisseur rs232/USB pour pouvoir utiliser un lecteur de carte a puce, jusque la aucun problèm Richview delphi 6 et doinpalette [Problème] [ par Powa87 ] Bonjour,j'ai une appli qui utilise les compo richview.Je les ai donc telechargés (version 1.8),et installés.J'ai ensuite fait une petit modif sur ma f problème d'installation de delphi [ par mustapha031 ] Salut Les gars j'ai un problème dans l'installation du delphi5, lors de l'installation du delphi5 ,l'installation se faite correctement mais quand j'o gros problème de compatibilité !!! :s [ par alex_lecool85 ] Bonjour à tous. Mon problème est simple mais complique beaucoup la chose. J'ai fait un programme sous delphi 7 qui utilise une base de donnée avec l problème avec le serveur ISAP [ par othland ] slt tlm;je suis entrain de concevoir une application web (en delphi), je veux bien la faire marcher en reposant sur le serveur ISAP!! est ce que ce de Problème SQL et date [ par wisdeco81 ] Bonjour,  Sous Delphi je dois faire une recherche sur une table paradox.  Le champ "DateCtrl" est de type Date.  Voici la requete demandée :SELECT * F Problème Delphi 5(oraclesession) avec oracle 10g [ par dimanazel ] Bonjour,j'ai une application qui tourne sous delphi 5 comme langage et oracle 10g comme SGBD.Mon problème est le suivant :à l'ouverture des quelques f


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 5,366 sec (3)

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