Y a-t-il une différence et quel type de Pansichar et Pchare? (à Delphi Précédent 2007) P>
Merci, à l'avance! P>
5 Réponses :
PANSICHAR est le pointeur du type non unicode (ancien type de chaîne), tandis que Pchak pointe vers un nouveau style, Unicode Char. P>
Vous avez été 44 secondes plus vite :)
Mais vous avez donné une meilleure réponse formulée :)
en D2009 et plus tard: oui, il y a. edit fort>: pour les versions pré-2009 de Delphi PCHAR CODE> est un pointeur sur un char code> qui est un caractère unicode (A widecharar code>). Et PANSICHAR code> est un pointeur sur un ansichar code>, qui est - comme le nom l'implique - un caractère ANSI. P>
pCHAR code> et PANSICHAR code> sont exactement les mêmes. Ils pointent tous les deux à un caractère (ANSI). P>
La question spécifiquement i> déclare "Delphi Précédent 2007", ce qui signifie sûrement "Delphi 2007 et plus tôt". Cette réponse est simplement fausse dans ce contexte. PCHAR == PANSICHAR à Delphi 2007 et plus tôt.
Eh bien, la question n'a pas indiqué que lorsque je lui ai répondu. Vous auriez vu que si vous avez regardé l'historique de modification avant de descendre :(
Eh bien, cela fait maintenant, alors corrigeant cette réponse dans ce contexte aidera quelqu'un d'autre qui vient à cette question, voir votre réponse et disparaît avec complètement la mauvaise réponse dans leur tête sans réfléchir à vérifier les histoires d'édition eux-mêmes.
Je l'ai déjà corrigé, alors je ne comprends pas votre problème. Je pense que vous êtes un peu rude ici. En outre: la réponse n'est en aucun cas «complètement faux», car je souligne clairement que cela est lié à Delphi 2009 et plus tard.
Les types de caractères DELPHI 2009 sont CHAR, ANSICHAR et WIDECHAR, où caractères caractères caractères de WIDECHAR. Dans les versions précédentes de Delphes, un caractère serait équivalent à Ansichar. Le P est d'indiquer un pointeur sur le type donné. P>
PCHAR est un pointeur à un "char", peu importe ce qui se passe. En D2009 et plus tard, le caractère signifie un Unicodechar. Avant cela, Char était Ansichar. P>
La différence est que si vous utilisez D2007 et migrez vers une version ultérieure, la définition de PCHAR changera, tandis que la définition de PANSICHAR ne sera pas. P>
Je prends notification de la "in delphi précédant 2007" dans votre question, que je prends pour signifier "à Delphi 2007 et plus tôt", alors ... p>
dans delphi 2007 em> et précédent pchar fort> et Pansichar strong> est synonyme. Ils signifient la même chose - un pointeur à une valeur Cependant, dans Delphi 2009 em> et ultérieurement, Char fort> devient synonyme de widecharar strong>, donc pchagr fort> devient synonyme de pwidechar fort>. p>
Remarque, qu'un widecharar est pas em> un caractère unicode - Unicode n'est tout simplement pas aussi simple. Toute valeur Le concept d'un "caractère" dans Unicode ne correspond pas facilement à une seule valeur de tout type. P>
Un tel appelé ansichar code> n'est pas nécessairement un caractère ansi non plus. Il peut aussi bien être l'octet de premier plan ou de fuite d'un caractère MBCS.
Les erreurs de composition du passé ne sont pas un moyen de garantir la compréhension correcte à l'avenir.
Ce que la plupart des gens envisagent un "caractère" serait appelé un graphème dans le langage Unicode. Les graphèses sont le caractère complet de la base + tous les points de code + toutes les marques diacritiques attachées. Malheureusement, presque personne ne reçoit cela correctement; Ils utilisent le modèle de réseau de 16 bits échoué.