IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

comment convertir un int 32 en un int 64 ?


Sujet :

VC++ .NET

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut comment convertir un int 32 en un int 64 ?
    je veux récuper la longueur d'un file stream (fs->lenght) et la convertir en un string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int ^i = fs->lenght;// ca marche pas puisque fs->lenght est un int64 alors que i est un int 32
    string^stri= i->Tostring;
    comment convertir un int 32 en un int 64 ?

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut comment convertir un int 64 en un int 32 ?
    c plutot l'inverse
    comment convertir un int 64 en un int 32 ?

    merci d'avance

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu castes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int i = (int)fs->lenght;
    mais tu risques de perdre de la précision

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    je n'ai pas compris ..
    qu'est ce que tu entend par précision?

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    ben, si tu convertis un int64 en int32, si le chiffre est très grand et dépasse la capacité de stockage, ben, l'int32, ne saura pas le reproduire.

    C'est comme si tu essaies de faire passer des oeufs d'une boite de 12 dans une boite de 6.
    Si t'as 5 oeufs, pas de problème, mais si t'en as 10, tu risques d'en perdre 4 ...

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    ah ok merci bien
    donc comment je pourrais définir un int 64 ?
    je veux ensuite le convertir en string
    et le recuperer après lors de la decompression des fichiers
    est ce que c'est fesable

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    ben en utilisant un System::Int64

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    ok
    merci

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut je mets un string dans un fichier texte mais quand je l'ouvre il ya des caract bizzar
    normalement , je dois obtenier un fichier texte avec les noms des fichiers et leur taille sous forme de string
    mais j'obtient un fichier text avec des caractères bizarres????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    files = Directory::GetFiles(path);
    	DirectoryInfo^ di = Directory::CreateDirectory(pathnew);
     
    	for each (file in files)
    	{ 
    		String ^v= file->Substring(path->Length);
     
    		if (!compresserFichier(file, pathnew+v+".gz"))
    				Console::WriteLine("failure in compression");
     
    		FileStream ^fs = gcnew FileStream(file+".gz", FileMode::Open);
    		BinaryReader ^br = gcnew BinaryReader(fs);
     
     
     
    		Int64 ^j =fs->Length();
     
    		String ^jstr = j->ToString();
    		str = +file+","+jstr+";";
    		//str = ""+file;
    		br->Close();
    		fs->Close();
    	}
    et après dans le main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CompressDir(textBox1->Text,textBox2->Text);
    				StreamWriter ^sw = gcnew StreamWriter("c:\\mytest.txt");
    				sw->Write(str);
     
    				sw->Close();

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    c bon ..ca marche

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut exception!
    ce que je veux c'est mettre le resultat de la compression des n fichiers dans un seul fichier

    est ce qu'il y a moyen de passer par un array sans que ca me genere une exception??

    et bien sur dans le début du fichier je mettrais les noms des fichiers suivies de leur taille

    ce qui va m'aider pour decompresser après

    est ce que quelqu'un peux m'aider ?

    merci d'avance

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut comment je pourrais tt simplement passer d'un int à un String et inversement ?
    voilà j'ai récupéré un int et je l'ai convertis en String

    mais pour le convertir je suis passé par un int32

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int i = 9 ;
    int^j ; //j est un int32
    j= i ; 
    String ^jj = j->ToString();
    donc pour récupèrer le Int je convertis le String en Int32
    mais par contre je peux pas mettre le Int32 dans le int

    est ce que t'a une idée comment je pourrais tt simplement passer d'un int à un String et inversement ?

    merci

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    donc pour passer d'un int32 en int je dois changer de base , c'est ca ?
    j'ai vuce code mais j'ai pas compris ce que ca veut dire ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String ^bin = L"1111";
    int decimal = Convert::ToInt32(bin,2);
    merci

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    rien à voir, la c'est pour convertir une chaine qui représente un binaire

  16. #16
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    j'ai vu comment passer d'un string à un int32 ou int64 .. ca je sais faire
    mais de passer d'un string à un int ? comment je pourrais faire ?

  17. #17
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut est ce que (fs->Length) est un int 64?
    voila je récupère un string où il y a un int64 , ce int64 contient le nombre de bytes que je veux lire à partir du fichier ouvert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Int64 ^filelength=System::Convert::ToInt64(fileleng); 
    FileStream ^fs1 = gcnew FileStream(dirSource, FileMode::Append);
    BinaryReader ^br1 = gcnew BinaryReader(fs1);
    
    FileStream ^fws1 = gcnew FileStream(filename, FileMode::CreateNew);
    BinaryWriter ^bw1 = gcnew BinaryWriter(fws1);
    bw1->Write(br1->ReadBytes((int)filelength));//ici il m'affiche une erreur comme quoi il ne peut pas convertir un int64 en un int
    aussi : bw1->Write(br1->ReadBytes(filelength)); ca marche pas
    est ce que tu as une idée comment je pourrais résoudre ce pb ?

    merci d'avance

  18. #18
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 326
    Par défaut
    j'ai travaillé avec des int32 et ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment convertir int en handle ?
    Par ramanov dans le forum C++Builder
    Réponses: 1
    Dernier message: 30/08/2007, 13h56
  2. Réponses: 7
    Dernier message: 26/06/2007, 10h36
  3. Réponses: 2
    Dernier message: 10/04/2007, 12h39
  4. VC++,comment Convertir CString to Int
    Par mqsi dans le forum MFC
    Réponses: 2
    Dernier message: 26/10/2006, 14h31
  5. Réponses: 6
    Dernier message: 28/10/2005, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo