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

C++ Discussion :

[CSV+UNICODE] problème d'utilisation wstring unicode et écriture dans un fichier


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut [CSV+UNICODE] problème d'utilisation wstring unicode et écriture dans un fichier
    Bonjour,

    J'ai un problème de gestion de string UNICODE :
    J'ai une interface grapique en C# d'ou je récupère une chaine de caractères à écrire dans un CSV. La partie écriture du fichier se fait depuis un DLL C++. Je passe par un Wrapper en C++/CLI pour faire le lien entre le C# et la DLL C++.

    Dans mon Wrapper, je convertis en wstring ma chaine venant du C# :
    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
    int ExportW::doExportCSV(String ^data, String ^csvFile)  {
    	std::wstring dataStr(L"");
    	std::wstring csvFileStr(L"");
    	MarshalString(csvFile, csvFileStr);
    	MarshalString(data, dataStr);
     
    	return exportCSV(&dataStr, &csvFileStr);
    }
     
    void ExportW::MarshalString( String ^source, std::wstring& target) {
    	using namespace Runtime::InteropServices;
    	const wchar_t* chars = (const wchar_t*)(Marshal::StringToHGlobalUni(source)).ToPointer();
    	target = chars;
    	Marshal::FreeHGlobal(IntPtr((void*)chars));
    }
    La fonction ExportCSV est une fonction d'une DLL pur C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int ExportCSVDLL::exportCSV(std::wstring *data, std::wstring *csvFile) {
    	wofstream ofs;
    	ofs.open(csvFile->c_str());
     
    	//ofs << *data;
    	// ofs << data->length() << endl;
    	ofs.write(data->c_str(), sizeof(wchar_t) * data->length());
     
    	ofs.close();
     
    	return 0;
    }
    J'ai essayé plusieurs solutions (même écrire en binaire). A chaque chaque génération du fichier CSV, l'écriture s'arrète au premier caractère UNICODE . J'ai l'impression qu'utiliser des wtring et wofstream n'est pas la bonne façon de faire.

    Est-ce que qq un a une idée ? (autre façon d'écrire dans le fichier, utiliser autre chose que wtring...)

    Merci,

  2. #2
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 401
    Par défaut
    bonjour, est ce que l'écriture s'arrête au premier caractère wchar_t (donc 2 octets) écrit OU au premier octet écrit?

    et est ce que data contient bien ta chaine complète?

    ps: je suppose que ça http://www.codeguru.com/forum/showpo...09&postcount=8 devrait résoudre ton soucis.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    Bonjour Stardeath,

    L'écriture s’arrête au premier caractère wtchar_t. Et ma chaine de caractères est bien complète.

    Je regarde le lien ce midi.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    Merci, après qq adaptations ca marche nickel

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/12/2012, 22h26
  2. problème d'utilisation d'image en PHP dans une bdd.
    Par BenGonGon dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/09/2011, 13h17
  3. Réponses: 7
    Dernier message: 13/05/2011, 11h22
  4. Problème d'utilisation de gnome-web-photo dans script PHP
    Par 9h0ost dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 21/08/2009, 10h22
  5. [AS2] problème d'utilisation d'une variable number dans un calcul
    Par Mosler dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 12/06/2008, 21h44

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