begin process at 2010 02 10 14:42:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Système

 > 

Fichier & Disque

 > 

Lire dans un fichier texte en prenant en compte les accents


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

Lire dans un fichier texte en prenant en compte les accents

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ée dans : fichier, programme, texte, lire, carte


Répondre à ce message

Sujets en rapport avec ce message

Lire fichier texte [ par thierryp01 ] Bonjour a tous,J'ai developpé un application qui tourne sur internet et qui me permet de recevoir un mail en remplissant des champs d'un formulaire st Fichier compreneant texte et image [ par moi4975 ] Salut à tous,Voila j'ai cherché sur le forum mais je n'ai rien trouver !Je réalise un programme de gestion de dvd et je voudrais créer un fichier qui Lire un partie specifié d'un fichier texte [ par patoch ] Bonjourje precise que je suis en vb6j'ai un fichier texte et un texboxje voudrais lire un partie specifié d'un fichier texte dans mon texboxexemple du lire un fichier texte dans un listbox [ par snake57 ] Bonjour,Alors voilà, j'ai un petit bout de code qui me permet de lire un fichier texte et de l'afficher dans un listbox:Open App.Path & "\monfichier.t Lire le premier caractère d'un fichier texte [ par thkiller ] Bonjour, Je désire pouvoir lire uniquement le premier caractère d'un fichier text que j'aurais préalablement inscrit un foix pour tout grave a windows Lire un fichier texte et récupérer le contenu de chaque champ de ligne qui est séparé par des tabulations [ par gregory__forel ] Bonjour à tous,Je dispose d'un fichier texte dont voici le contenuA   150B   385C   789etc...Entre les lettres et les numéros, il y a une "tabulati Lire un fichier sur FTP [ par poitierjohan ] Bonjour,Je voudrais que mon programme (fait avec VB5) puisse lire un fichier .TXT qui se trouve sur un serveur! J'ai le login, le mot de passe, l'adre Lire un fichier texte mot à mot [ par akaii ] Hello,Je dois lire un fichier text et faire ressortir tous les mots pour les comparer avec deux autres mots et je n'ai pas trouvé de code équivalent, probleme d'encodage [ par benbox69 ] C'est tout simple mais ca me pose problème . Mon programme doit pour commencer par télécharger un fichier txt sur un seveur, puis le lire ligne par li Ecrire dans un fichier texte existant quand mon programme ce lance [ par Triboutmatthieu ] Bonjour, j'ai crée un programme et ce programme se lance dés que Windows s'ouvre.Je voudrais savoir si mon programme pourrait introduire dans un fichi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,733 sec (4)

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