Bonjour,
j'aimerais savoir comment afficher du texte unicode dans un memo.
Merci
Bonjour,
j'aimerais savoir comment afficher du texte unicode dans un memo.
Merci
Bonjour, si tu as D2009 alors par défaut les TMemo s'affichent en Unicode sinon ce n'est pas possible avec les composants par défaut, il te faut soit une bibliothèque de composants unicode (comme chez TMS par exemple) ou bien recoder ton TMemo pour qu'il utilise exclusivement des WideString plutôt que des String mais là bon courage.
j'ai trouvé une solution :
le texte s'affiche bien cependant un point d'interrogation vient s'ajouter, je ne vois pas comment résoudre ce problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 memory := TMemoryStream.Create; GetMem(sBuf, memory.Size+1); memory.LoadFromFile(sFileName); memory.Seek(0,soFromBeginning ); memory.Read(sBuf ^, memory.Size); memo1.Lines.Add(WideCharToString(sBuf)); FreeMem(sBuf, memory.Size); FreeAndNil(memory);
Certes cette solution te permet de charger un fichier unicode mais ça ne règles en rien ton problème TMemo est prévu pour fonctionner avec des String (Ansi = 1 octet) et fait donc appels aux API de type Ansi et non pas Unicode ce qui fait que ton texte unicode ne pourra jamais être affiché correctement car Windows s'attend à lire des caractères sur 1 octet et pas 2.
je suis passé par cette méthode celle-ci fonctionne très bien avec un memo.
Merci pour votre aide ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 memo:=TMemoryStream.create(); liste:=TStringList.create(); memo.LoadFromFile(destination+rech.name); memo.Seek(0, soFromend); contenu := #0000; memo.Write(contenu, sizeof(contenu)); char := memo.Memory; if char^ = #$FEFF then begin Inc(char) end; liste.text:=WideChartoString(char);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager