Bonjour,
Je réalise une interface et je souhaiterais pouvoir ouvrir et lire des fichiers binaires... est ce possible?si oui comment faire?
Merci
Bonjour,
Je réalise une interface et je souhaiterais pouvoir ouvrir et lire des fichiers binaires... est ce possible?si oui comment faire?
Merci
Tout dépend du codage de ton fichier binaire.
Quelques pistes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8load %avec option -ascii textscan textread fopen fread
et cela est censé me lire un fichier binaire?
Pour lire un fichier binaire, la première chose à trouver, c'est le format d'écriture du fichier. Ensuite comme indiqué par Caro, tu utilises FOPEN/FREAD/FCLOSE avec le format.
A lire : File I/O Guide
et une fois que l'on connait le format il faut le convertir ou pas?
Que veux-tu dire par convertir ?
Convertir quoi en quoi ?
Si tu veux de l'aide, il faut nous donner des infos sur le format de ton fichier "binaire" (parce qu'en fait ça ne signifie pas grand chose binaire : c'est un fichier avec que des 0 et des 1 ???, un fichier avec que des numériques ? avec un peu de texte dedans aussi ???).
Donc le mieux, si c'est un fichier lisible en mode texte, c'est un copier-coller d'un bout du fichier...
pour le moment je sais juste que c'est un .bin
Autant te dire tout de suite que si tu ne connais pas le format de codage des valeurs à l'intérieur du fichier, c'est inutile de continuer plus loin![]()
mais commen ca les valeur de codage a l'intérieur du fichier????
je comprend pas très bien....![]()
Moi non plus... on parle bien de fichier binaire... pas de fichier ascii ?Envoyé par nuans
Si c'est un fichier texte par ex. tu peux l'ouvrir sous Notepad (ou autre éditeur de texte).
exemple mon fichier fichier.txt à cette tête là :
10 20
40 50
Je veux lire les valeurs dans une matrice :
Par contre si je crée un fichier MAT-File :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 %sol° 1 A = load('fichier.txt','-ascii'); %sol° 2 [c1,c2]=textread('fichier.txt','%d %d') A=[c1,c2]; %et y'en a d'autres....
Si tu ouvres le fichier en mode texte, et ben c'est pas très joli...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A=[10 20;40 50]; save('fichier.mat','A');
Le seul moyen de récupérer ta valeur c'est :
Or des formats de fichiers il y en a un nombre sûrement presque infini...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 load('fichier.mat');
Le plus simple c'est le texte, mais après...entre les formats propriétaires (MAT, Acrobat,...), les images...
Le fait d'avoir une extension .bin ne donne aucune info.
En effet rien ne m'empêche de créer mon fichier.txt et de le renommer en .bin, ça restera toujours un fichier texte que je peux lire.
C'est un peu plus clair ?
donc si c'est un fichier ascii je procede de la maniere décrite avec fopen fread fclose...mais sur mon interface cela me permettra-t-il que lorsque je clique sur un bouton il m'ouvre une fenetre avec dedans ts les fichiers que l'on peu sélectionner??????
Voui...ou avec textread, ou avec textscan...Envoyé par nuans
Exemple avec textscan si tu veux vraiment juste récupérer du texte et l'afficher dans un edit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 fid=fopen('matlabrc.m');%matlabrc.m est une fonction de matlab C=textscan(fid,'%s'); fclose(fid); ue=uicontrol('style','edit','max',2,'string',C{1},'pos',[10 10 100 300])ça c'est encore autre chose...Une piste :Envoyé par nuans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2help uigetfile
La commande uigetfile me permet d'ouvrir les fenetre me premettant a choisir le fichier a charger.
Mais par exemple, disons que je veux visualiser un signal .
Je le charge par l'interface à l'aide de la commande uigetfile, mais comment pourrais-je faire pour le visualiser dans un axe par la suite?
Voila ce que tu dois faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [fname,pname])uigetfile(...); fname=fullfile(pname,fname); fid=fopen(fname,'rt'); % Si c'est toujours un fichier ASCII <lecture des données> fclose(fid); axes(handles.axes_où_tracer) <traçage des données>
et pour un fichier codé en binaire (donc codé en 0 et 1) les lignes de commandes changent?
Pour lire un fichier texte (ascii) :
- fopen
- fscanf
- fgetl
- sscanf
- fclose
- dlmread
- textread
- textscan
Pour lire un fichier binaire :
- fopen
- fread
- fseek
- fclose
A lire : File I/O Guide
et si je veux faire apparaitre mon fichier binaire(qui représente un signal) sur un axe,j'ai juste utiliser la commande:
plot(t,signal)???
c'est pas facile tout ça a faire...![]()
si t représente des valeurs binaires comme l'exemple ci dessous ,oui:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>t=[1 0 1] t = 1 0 1 >> plot(t)
Pour le moment mon code est le suivant mais je n'arrive pas a lire le fichier voulu...
et pareil pour 't' je ne sais pas quel valeur mettre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [fileName,PathName] = uigetfile({'*.m';'*.bin';'*.dat';'*.mat'},'ouvrir','D:\IHM_001') set(handles.tagSignalIHM_001,'String',sprintf( '%c',fileName)) assignin('base','charge',charge); fname=fullfile(PathName,fileName); assignin('base','fileName',fileName) fid=fopen(fname,'r+'); fclose(fid); plot(t,fileName);
Je rappel que le fichier .bin que je souhaite ouvrir est un signal...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager