begin process at 2012 05 29 02:05:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

C++ Lire Fichier Dat File


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

C++ Lire Fichier Dat File

mardi 15 juin 2010 à 11:59:09 | C++ Lire Fichier Dat File

tren13

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

[CODE]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;
[/CODE]

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@:<:DH6D<`:8>>>.H<:H6@44HD(  



et lorsqu'on affiche ce fichier avec matlab on obtient une matrice

0 0 0 0 1 1 2

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 [CODE]fread(q,[3*ccdx + mark, inf], '4616*uint8', 3*ccdx + mark); [/CODE]
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
mardi 15 juin 2010 à 13:50:39 | Re : C++ Lire Fichier Dat File

buno

Administrateur CodeS-SourceS
Hello,
Tu peux, dans un premier temps, utiliser les fonctions fopen(), fseek(),... qui sont disponibles en C. Après, une fois que ton code fonctionnera, tu pourras le "traduire" en C++ avec les ifstream


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mardi 15 juin 2010 à 21:41:18 | Re : C++ Lire Fichier Dat File

CptPingu

Administrateur CodeS-SourceS
Un petit exemple de lecture écriture d'un tableau d'entier dans un fichier:
Code C/C++ :
#include <iostream>
#include <fstream>

bool read(const std::string& filename, int* buff)
{
  std::ifstream file(filename.c_str(), std::ios::binary);
  if (!file)
    return false;

  file.read((char*)buff, 5 * sizeof (int));

  for (int i = 0; i < 5; ++i)
    std::cout << buff[i] << " ";
  std::cout << std::endl;
  file.close();
}

bool write(const std::string& filename, int* buff)
{
  std::ofstream file(filename.c_str(), std::ios::binary);
  if (!file)
    return false;
  file.write((char*)buff, 5 * sizeof (int));
  file.close();
}

int main()
{
  int buff[1024];
  if (read("file.dat", buff))
    std::cout << "Read succeed !" << std::endl;
  else
    std::cerr << "File not found !" << std::endl;


  buff[0] = 45;
  buff[1] = 3;
  buff[2] = 187565;
  buff[3] = 56;
  buff[4] = 190;

  if (write("file.dat", buff))
    std::cout << "Write succeed !" << std::endl;
  else
    std::cerr << "Can't write to file !" << std::endl;

  return 0;
}


_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
mercredi 16 juin 2010 à 16:06:00 | Re : C++ Lire Fichier Dat File

tren13

Merci,
Cest donc bien ce que javais codé, et le probleme vient donc je pense de la taille des bytes dans le read avec le 5 * sizeof (int) quil faut adapter de mon code matlab. Mais bon je pense avoir reussi mais je ne trouve pas les memes chiffres entre le resultat matlab et c++. Mais merci de mavoir aider en tout cas.
Ca ma permis de voir vraiment ce qui nallait pas.

Bonne journée


Cette discussion est classée dans : fichier, code, lire, mark, ccdx


Répondre à ce message

Sujets en rapport avec ce message

lire des valeur dans un fichier texte et les inserer dans une list box [ par pidoumtimo ] Bonjour.Je pense que le sujet decrit mon probleme.Au final la list box est vide.voila le bout de code ki me permet de lire et d'afficher.GetDlgI lecture de fichier [ par psycho ] Bonjour a tous (ou peut etre bonsoir?)Je suis en train de faire un jeu, et je voudrais lire un fichier video pour pouvoir lancer une cinematique(comme Lecture fichier [ par AlexMAN ] Bonjour, Je me pose pas mal de questions a propos de la lecture de fichier utilisant les API : -Dois je lire l'integralité d'un fichier en allouant a Lire une ligne dans un fichier [ par StevenJLMunn ] J'ai besoin d'une fonction qui lit juste une ligne dans un fichier text.J'utilise Visual C++ c'est une win32 consol application.Ca fait pas très longt parse error dans un fichier .rc ? [ par Jeffray ] Bonjour,Une parse error dans un fichier .rc, j'utilise dev c++ 4.9.8.0.voici le code :IDD_ABOUT DIALOG DISCARDABLE 70, 50, 206, 102STYLE DS_MODALFRA lire,ecrire, et sauver un fichier [ par Gipsy974 ] 1deja merci de lire mon pbpuisma kestion est comment fait on pour creer un fichier ds lekel on met des donnes.Aussi, je voudrai savoir comment "charge Debutant - lire un fichier txt [ par aciid_washor ] Bonjour, j'essaye, pour débuter d'ecrire un programme qui lit un fichier et qui affiche caractère par caractère ce qu'il lit, j'ai le code source suiv Lire un fichier en C [ par Angelotus ] Bonjour,Je suis étudiante (1ère année) en ingénierie informatique.J'aurais besoin d'écrire un programme en C qui ouvre un fichier et affiche ce qu'il lire une ligne dans un fichier texte puis........ [ par oudkaramla ] salut out le monde,je veux lire 3 lignes d'un fichier texte, puis faire le découpage de chaque ligne en petits morceauxje sais qu'il ft faire fopen()


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 : 0,562 sec (4)

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