Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lire dans un fichier texte en prenant en compte les accents [ Système / Fichier & Disque ] (Tioneb)

mercredi 2 juillet 2008 à 14:09:22 | Lire dans un fichier texte en prenant en compte les accents

Tioneb

Salut,
Je suis en train de développer un petit programme pour le jeu Company of Heroes. Ce programme va gérer les cartes que les joueurs téléchargent. Ces cartes sont composées de plusieurs fichiers dont un fichier texte (ex: macarte.info) qui contient les informations relative à la carte associée. Voici un exemple de fichier:

HeaderInfo = 
{
    scenarioname = "Ben_2 collines (4)",
    scenariodescription = "Carte créée par BenoitFR59",
    maxplayers = 4,
    date = "05/11/2007 20:34",
    scenarioabbrname = "",
    savedname = "",
    version = 2002,
    mapsize = 
    {
        640,
        352,
    },
    music = "",
    scenariotype = 2,
    modname = "RelicCOH",
}

Une des fonctions de mon programme sera de donner les infos de la carte quand l'utilisateur cliquera dessus dans une liste. Pour récupérer ce qui m'intéresse, j'ouvre le fichier en mode "input", je récupère l'ensemble du contenu (du fichier) dans une variable et j'isole ce que je veux. Mon problème est le suivant: Quand j'affiche les infos, je n'ai pas les caractères accentués. Les "é" sont remplacés par des "é". J'ai cherché un peu sur le site et la fonction StrConv(MonString, vbUnicode) me retourne seulement le 1er caractère de la chaine!!! Et je voudrais éviter de devoir programmer l'ensemble des caractères accentués (surtout que mon prog est multilangue donc je sais pas si le problème sera présent dans un autre pays...)

Merci d'avance

--------------------------------------------------------------------------
Visitez mon site sur [ Lien ]
(Sur le jeu Company of Heroes pour PC)

mercredi 2 juillet 2008 à 15:13:28 | Re : Lire dans un fichier texte en prenant en compte les accents

jack

Administrateur CodeS-SourceS

Salut
Ce doit être un problème de conversion OEM.
Essaye ça dans un module :
Partie déclaration
   Public Enum eOEMStringTypeConversion
       [ANSI to ASCII]
       [ASCII to ANSI]
   End Enum
   Private sASCI As String
   Private sANSI As String

Sub InitOEM
    ' Constantes de conversion ASCII <> ANSI
    sASCI = Chr$(132) & Chr$(148) & Chr$(129) & Chr$(225) & Chr$(142) & Chr$(153) & Chr$(154) & Chr$(128) & Chr$(130) & Chr$(131) & Chr$(133) & Chr$(134) & Chr$(135) & Chr$(136) & Chr$(137) & Chr$(138) & Chr$(139) & Chr$(140) & Chr$(143) & Chr$(144) & Chr$(147) & Chr$(150) & Chr$(151) & Chr$(20) & Chr$(145) & Chr$(146) & Chr$(155) & Chr$(156) & Chr$(166) & Chr$(167) & Chr$(171) & Chr$(172) & Chr$(237) & Chr$(241) & Chr$(246) & Chr$(253) & Chr$(21) & Chr$(157)
    sANSI = Chr$(228) & Chr$(246) & Chr$(252) & Chr$(223) & Chr$(196) & Chr$(214) & Chr$(220) & Chr$(199) & Chr$(233) & Chr$(226) & Chr$(224) & Chr$(229) & Chr$(231) & Chr$(234) & Chr$(235) & Chr$(232) & Chr$(239) & Chr$(238) & Chr$(197) & Chr$(201) & Chr$(244) & Chr$(251) & Chr$(249) & Chr$(182) & Chr$(230) & Chr$(198) & Chr$(162) & Chr$(163) & Chr$(170) & Chr$(186) & Chr$(189) & Chr$(188) & Chr$(216) & Chr$(177) & Chr$(247) & Chr$(178) & Chr$(167) & Chr$(165)
End Sub

Public Function OEMConvert(ByRef Texte As String, _
                                                      ByVal ConvertMode As eOEMStringTypeConversion) As String
    ' Vient de source de EBartSoft :
http://www.vbfrance.com/code.aspx?ID=39592
    Dim Src  As String
    Dim dest As String
    Dim r    As Long
    Dim Pos  As Long
   
    OEMConvert = Texte
   
    ' sASCI et sANSI sont renseignés dans InitOEM
    If (ConvertMode = [ANSI to ASCII]) Then
        Src = sANSI
        dest = sASCI
    Else
        Src = sASCI
        dest = sANSI
    End If
   
    For r = 1 To Len(Src)
        Do
            Pos = InStr(OEMConvert, Mid$(Src, r, 1))
            If (Pos = 0) Then Exit Do
            Mid$(OEMConvert, Pos, 1) = Mid$(dest, r, 1)
        Loop
    Next
End Function

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés


Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)


mercredi 2 juillet 2008 à 15:25:06 | Re : Lire dans un fichier texte en prenant en compte les accents

Tioneb

Je te remerci pour ta réponse rapide. Mais le problème persiste. En fait dès qu'on lit dans le fichier, les caractères accentués sont remplacés par 2 autres caractères. Je pense qu'il faudrait dire à VB qu'on veut utiliser une table de caractère différente de celle par défaut. Reste à savoir si c'est possible et si oui, laquelle utiliser!

--------------------------------------------------------------------------
Visitez mon site sur [ Lien ]
(Sur le jeu Company of Heroes pour PC)



Cette discussion est classé dans : fichier, programme, texte, lire, carte


Répondre à ce message

Sujets en rapport avec ce message

lire un fichier texte unix [ par bj ] je n'arrive pas à récupérer un gros fichier texte unix pb de fin de ligne ? ou de codage des caractéresqui pourait me dépanner ?merci Comment crée on et edite-t-on un fichier texte depuis le programme [ par Moi ] je ne trouve pas de fonctions permetant de generer un fichiers texte. Lire une ligne précise d'un fichier texte [ par morpheus2096 ] J'ai un fichier texte, je veux lire la ligne 31, comment je fais ?merci beaucoup Lire un fichier texte par bloc [ par fuutanke ] Bonjour à tousce que je veux faire c'est lire un fichier textepar bloc de longueur fixe et mettre le bloc ludans une variable string.merci!!! lire un fichier texte sur une machine distante [ par nick ] bonjourcomment lire un fichier texte se trouvant sur une machine distante d'un LANmerci écrire/lire ds 1 fichier texte existant... [ par tomcouc ] comment écrire dans un fichier texte existant sans effacer les lignes déjà écrites. Par ex, si à la ligne 1 et 2, il est deja ecrit quelque chose, alo Lire un fichier texte [ par chitboy ] Salut,je voudrait lire un fichier texte. Cela ne parait pas compliquer mais j'ai essayer tout ce qui trouve dans l'aide et ca ne fonctionne pas.J'util Lire un fichier texte [ par chitboy ] Salut,je voudrait lire un fichier texte. Cela ne parait pas compliquer mais j'ai essayer tout ce qui trouve dans l'aide et ca ne fonctionne pas.J'util comment interdire l'accès à un fichier texte en dehors d'un programme [ par bolos ] je desire utiliser un fichier texte pour des informations sur les utilisateurs d'un programme que j'ai ecrit et je voudrais que ce fichier texte ne so


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.