2009-12-11 9 views
3

Je cherche à manipuler du texte entrant telnet qui a des codes d'échappement ANSI. Pour la prime, je cherche une implémentation complète où je peux juste ajouter du texte à la fin d'un tampon. Le contrôle devrait être défilable, tout en étant capable de gérer le texte d'ajout, le positionnement du curseur, etc. pendant que l'utilisateur défile hors de la vue.Vous cherchez un UserControl qui prend en charge les codes d'échappement ANSI

Par exemple,

"\e[0;32mHello \e[0;37mWorld" 

afficherait un vert « Bonjour » et un blanc « Monde »

Comme cela devrait gérer le positionnement du curseur, la mise en valeur par défaut 80 caractères par ligne (80 colonnes) serait bien, mais doit également gérer d'autres tailles de colonnes. Ce serait bien de pouvoir changer la police aussi.

Voir Wikipedia ANSI Escape Codes pour plus d'informations.

Répondre

2

Jetez un oeil à Dart's Vt.NET control (en supposant qu'une émulation VTxxx est assez proche d'une émulation ansi).

+0

Le VTxxx, en particulier les séquences d'échappement VT52 sont ce qui s'est développé dans les séquences d'échappement standard ANSI comme dans ANSI X3.64. contrôle de Dart est intéressant de regarder. – Slaftos

1

En supposant que vous voulez dire « code d'échappement ANSI, » vous pouvez commencer par convertir chaque code d'échappement dans votre chaîne en une couleur (car il semble que ce sont les seuls codes qui vous intéressent). Utilisez simplement une table comme celle here (en bas de la page) et faites un peu d'analyse de chaîne personnalisée.

codes d'échappement ANSI sont assez vieille école, donc je ne les attendre d'avoir l'effet escompté. Ils sont destinés à contrôler la sortie vers des terminaux de texte, pas des choses sophistiquées comme un contrôle utilisateur .NET.

+0

J'ai déjà écrit l'analyseur, et malheureusement j'ai besoin de gérer un peu plus comme le positionnement du curseur, l'effacement de l'écran, etc. – esac

+0

On dirait que vous êtes bloqué en train d'analyser ces codes. Je n'ai pas grand-chose à offrir car c'est à vous d'interpréter comment chaque personnage de contrôle affecte votre RichTextBox. Essentiellement, cherchez-vous à écrire un contrôle qui fonctionne comme un terminal? Il doit y avoir une meilleure façon de le faire ... –

+0

un contrôle qui fonctionne comme un terminal, oui dans une certaine mesure. J'ai déjà déterminé comment je pourrais dessiner les caractères à l'écran, avec la couleur dans mon propre contrôle. mais alors je perds beaucoup de la fonctionnalité que quelque chose comme une riche. et je dois le convertir en ma propre structure de couleurs/caractères et mapper la carte sur l'écran. – esac

2

Commander le lien suivant: AckTerm @ sourceforge.com

je suis en train de traduire les codes ANSI provenant d'une interface série à l'aide contrôle terminal projet de www.sourceforge.com écrit en C# - si ackterm ne sera pas bon pour vous google projet de contrôle terminal

espoir est ce que vous cherchez ...