Bonjour,
j'aurais une question sur la lecture de fichier en C++ a partir d'un code matlab effectué.
Voici le code matlab tout dabord
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function [intensity] = readHi3D(filename)
mark = 0;
ccdx = 1536;
ccdy = 512;
q = fopen(filename);
fseek(q, 0, 'eof');
filesize = ftell(q);
fseek(q,0,'bof');
numcolumns = 1536;
numprofiles = filesize/4/numcolumns;
raw8 = fread(q,[3*ccdx + mark, inf], '4616*uint8', 3*ccdx + mark);
fclose(q);
size(raw8);
intensity = raw8(1 + mark:ccdx + mark,:)';
lb = raw8(ccdx+mark+1:2:3*ccdx+mark-1,:)';
hb = raw8(ccdx+mark+2:2:3*ccdx+mark,:)';
range = double(lb) + double(hb)*256; |
Ce code permet de lire un fichier du format .dat qui quand on l'ouvre par exemple avec un traitement de texte affiche par exemple
*440<.**0,2,:24@:<

H6D<`:8>>>.H<:H6@44HD(
et lorsqu'on affiche ce fichier avec matlab on obtient une matrice
par exemple.
Le code matlab traduit donc les caracteres en chiffre: Le fichier est donc "crypté" on dira pour me simplifier les mots. La traduction en matlab se fait avec le
fread(q,[3*ccdx + mark, inf], '4616*uint8', 3*ccdx + mark);
qui precise donc le fichier a traduire (q), puis si jai bien compris la taille , le type de byte. A = fread(fileID, sizeA, precision, skip).
Il faudrait a present que je fasse de meme en C++. Les fonction ifstream sont possibles, je peux ouvrir un fichier, je peux le ""lire"" mais je n'obtient pas dutout le meme resultat. Il faudrait que je convertisse les caracteres en chiffre. Et voici la question . Comment peut on ecrire cela en C++ ?
Car lire un simple fichier avec des lettres ou chiffre je sais faire, mais quand j'ai un fichier avec des caracteres cryptés je ne vois pas comment faire. Il faut peut etre preciser les bytes ou je ne sais pas.
Pouvez vous m'aider , cela serait tres gentil de votre part.
Cela peut etre une aide en anglais ou francais ou meme allemand ... cela ne me pose pas de probleme.
Je vous remercie par avance ,
bonne journée
Partager