begin process at 2012 05 29 10:43:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Editeur Hexadecimal


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

Editeur Hexadecimal

mardi 11 mars 2008 à 14:29:33 | Editeur Hexadecimal

dayvid75014

Bonjour à tous,

Vous voyez à quoi ressemble un éditeur héxadécimal? un logicilel qui vous affiche les octets contenu dans le fichier ; par exmple, j'ai un fichier MPEG, que je rentre dans l'éditeur et op' en quelques secondes tous mes octets de mon flux s'affiche.. savez-vous comment coder la fonction qui m'afficherait les octets de mon flux sans utiliser l'éditeur ?  (au préalable je voudrais que l'utilisateur rentre un chemin de fichier)

1)Récupération des info de la ligne de commande (filepath)
2)Lecture des octets du flux vidéo
3)Affichage de ces octets tel un éditeur héxadécimal

Suggestion (qui ne marche pas sinon je ne vous demanderais pas ):

FILE *ip_file;
char *ip_filepath;

int main(int argc, char *argv[])
{
                if (argc == 1)
         { 
            display_usage();
            exit_prog(""); 
         }

 while ((argc > 1)
{
ip_filepath = &argv[1][2];
 }
  ++argv;
  --argc;
 }

printf("Opening MPEG-2 file %s, %d bytes.\n", ip_filepath, ip_file_length);
ip_file = fopen(ip_filepath, "rb");

......affichage....

}

mardi 11 mars 2008 à 15:02:51 | Re : Editeur Hexadecimal

Pistol_Pete

Salut

FILE *ip_file=NULL;
char *ip_filepath=NULL;

int main(int argc, char *argv[])
{
   int size;
          if (argc == 1)
         { 
            display_usage();
            exit_prog(""); 
         
ip_filepath = &argv[1][0];      //ip_filepath pointe sur le premier argument premier caractere


ip_file = fopen(ip_filepath, "rb");

if(ip_file==NULL){            //test obligatoire
   printf("Erreur a l'ouverture du fichier\n");
   exit(0);
}
fseek (ip_file , 0, SEEK_END);      //On se place a la fin du fichier
ip_file_length=ftell (ip_file );            //Retourne le nombre d'octet depuis le debut du fichier jusqu'a la position du curseur(ici la fin)



printf("Opening MPEG-2 file %s, %i bytes.\n", ip_filepath, ip_file_length);

char *Buffer=new char[ip_file_length];
fread(Buffer,sizeof(char),ip_file_length,ip_file);         //On a tout le fichier recopier dans le Buffer
fclose(ip_file);

for(i=0;i<ip_file_length)
   printf("%c\t",Buffer[i]);         //Tu affiches tes octets

delete []Buffer;

}


A+
Mon site internet : [ Lien ]

mardi 11 mars 2008 à 15:19:42 | Re : Editeur Hexadecimal

dayvid75014

Bonjour,

Je viens d'arranger tout ça comme ça, mais ça ne marche pas, ça me renvoie dans la console, press a key to exit.. :s

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>        
#include <string.h>         // Bibliothèques utiles
#include <io.h>
#include <fcntl.h>
#include <windows.h>
void exit_prog(char error_msg[]);
void press_key(char press_key_text[]);

FILE *ip_file=NULL;
char *ip_filepath=NULL;
long ip_file_length=0;

void exit_prog(char error_msg[])
{
 printf("\n%s\n", error_msg);          
 _fcloseall( );
 press_key("Press a key to exit...");
 exit(0);


void press_key(char press_key_text[])

 printf("%s", press_key_text);           
 while ( !_kbhit() )
 {;}
 _getch();
}

 

//=================================================

 


int main(int argc, char *argv[])
{
   int size=0;
          if (argc == 1)
         {
            //display_usage();
            exit_prog("");
        
ip_filepath = &argv[1][0];      //ip_filepath pointe sur le premier argument premier caractere


ip_file = fopen(ip_filepath, "rb");

if(ip_file==NULL)
{            //test obligatoire
   printf("Erreur a l'ouverture du fichier\n");
   exit(0);
}
fseek (ip_file , 0, SEEK_END);      //On se place a la fin du fichier
ip_file_length=ftell (ip_file );            //Retourne le nombre d'octet depuis le debut du fichier jusqu'a la position du curseur(ici la fin)

 


printf("Opening MPEG-2 file %s, %i bytes.\n", ip_filepath, ip_file_length);

char *Buffer=new char[ip_file_length];
fread(Buffer,sizeof(char),ip_file_length,ip_file);         //On a tout le fichier recopier dans le Buffer
fclose(ip_file);

int i =0;
for(i=0 ; i<ip_file_length ; i++)
{
 printf("%c\t",Buffer[i]);         //Tu affiches tes octets

    delete []Buffer;
    return 0;

}}}

mardi 11 mars 2008 à 15:33:50 | Re : Editeur Hexadecimal

Pistol_Pete

Comment lances tu ton exe?

Mon site internet : [ Lien ]

mardi 11 mars 2008 à 15:39:13 | Re : Editeur Hexadecimal

dayvid75014

je mets le code que tu vois ci-dessus dans visualC++ et je fais compiler puis assembler et là la console apparait et m'affiche ce que tu sais : press o key for exit... tu as une idée ?
mardi 11 mars 2008 à 15:48:09 | Re : Editeur Hexadecimal

Pistol_Pete

Oui c'est bien ce que je pensais.
Donc tu ne passes rien en argument a ta fonction. Et s'il y a pas d'argument tu as mis exit_prog()!! (ton premier if)

Le plus simple est de code en dur ton chemin de ta video pour l'instant et voit si ca marche:

char ip_filepath[]="C:/Mavideo.mpg";
 
A+
Mon site internet : [ Lien ]

mardi 11 mars 2008 à 15:54:51 | Re : Editeur Hexadecimal

dayvid75014

mais ce n'est pas ce que je veux faire!
mon problème est de venir récupérer les arguments sur la ligne de commande et d'ouvrir ce maudit fichier MPEG
Tus sais comment faire s'il te plait?
mardi 11 mars 2008 à 15:58:12 | Re : Editeur Hexadecimal

dayvid75014

et voila toujours l'éternel problème, j'en peux plus :

"C:\Documents and Settings\dgombert\Bureau\Text1.cpp(48) : error C2440: '=' : cannot convert from 'int' to 'char [15]'
        There are no conversions to array types, although there are conversions to references or pointers to arrays" a cause de la ligne :

ip_filepath = &argv[1][0];      //ip_filepath pointe sur le premier argument premier caractere

meme avec atoi(&argv[1][0]); ça ne marche pas

QUELQU'UN SAIT-IL SVVVPPPPP ??????
mardi 11 mars 2008 à 16:05:32 | Re : Editeur Hexadecimal

dayvid75014

char ip_filepath[]="C:\Documents and Settings\dgombert\Bureau\DecodageMpeg\videotest.mpg";  ne marche pas non plus, la console s'affiche puis s'éteind sans rien afficher..

36ème dessous...
mardi 11 mars 2008 à 16:06:34 | Re : Editeur Hexadecimal

Pistol_Pete

"récupérer les arguments sur la ligne de commande "

Faut que tu passes par une invite de commande et ecrire quelque chose de la forme:

LeNOMdeMonEXE C:\MaVideo.mpg

Pour ta seconde erreur essaye cette ligne:   ip_filepath = argv[1][0]; 

A+
Mon site internet : [ Lien ]


1 2 3

Cette discussion est classée dans : file, ip, éditeur, octets, filepath


Répondre à ce message

Sujets en rapport avec ce message

Integration fonction C [ par metek ] Bonjour!!Voila j'ai une ptite question sur les API!!!J'ai fait un petit programme qui liste un fichier texte cherche un mot entré et recupere le reste Sélection d'octet [ par dayvid75014 ] Bonjour à tous, Je récupère les octets de mon fichier vidéo dans un buffer "Buffer[]" et je voudrais sélectionner les octets 0x47 et je n'y a Erreur : Access violation [ par dayvid75014 ] Bonjour à tous,Je fais ceci : FILE *ip_file;seek(ip_file, synchro_bytes[1], 0);  //synchro_bytes stocke mon 1er octet de synchro, je me positionne des Récupération des octets d'un flux MPEG [ par dayvid75014 ] Bonjour à tous,J'aimerais demander à l'utilisateur de rentrer dans la console le chemin d'un fichier vidéo et après je voudrais récupérer ce flux MPEG charger le contenu d'un QtextEdit dans un fichier [ par naddoush ] salut tout le monde, dans mon application j'ai un QtextEdit et un bouton save à coté.je voudrais bien qu'on ecrivant quelques lignes dans ce Qtextedit Convertion de symbole en entier [ par dayvid75014 ] Bonjour à tous,   Voici mon problème : lorsque j'affiche les octets constituant un flux élémentaire d'une vidéo (tel que le ferait un éditeur hexa nom d'un fichier,urgentttt [ par naddoush ] salut tous, dans mon interface graphique j'ai un qlinedit et un bouton ouvrir à coté je veux qu'on ouvrant un fichier, seulement le nom de celui ci s' Problème avec traitement de fichier (cplusplus !) [ par Sianrin ] Voila, j'explique mon problème. Pour voir un peu comment les accès au fichiers se géraient en cplusplus, je me suis mis en tête de faire un programme adresse IP [ par IronLeader ] comment je peux lire l'adresse ip du pc sur lequel l'executable est lance en c++un peu comme winipcfg en fait Merci d'avance prob de compilation [ par jacky66 ] salutje debute dans la prog c++pour mon 1 er prog quand je compile il me sort un message fatal error C1083: Cannot open include file: 'idoctidm.h': No


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 2,262 sec (3)

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