2009-10-29 2 views
1

Voici un exemple de chaîne que j'ai récupérée d'un flux de socket.C#: transforme une chaîne ciblée pour l'utilisation du shell unix pour l'invite de commande Windows

\033[H\033[J\033[1;30HSUPERVISOR MAIN MENU\033[6;5H 0. Exit   Exit\033[7;5H 1. Help   Display help\033[8;5H 2. Control  Calling lists and users\033[9;5H 3. Campaign  Campaigns\033[10;5H 4. Manage 

Si vous voulez voir la sortie, je pense ouvrir un shell unix/linux, tapez echo -e suivi d'un espace suivi de la chaîne ci-dessus dans des guillemets simples et appuyez sur la touche Entrée. La sortie apparaît quelque chose comme:

     SUPERVISOR MAIN MENU 


0. Exit   Exit 
1. Help   Display help 
2. Control  Calling lists and users 
3. Campaign  Campaigns 
4. Manage 

Je veux la même sortie, sauf qu'il devrait être en mémoire ... J'ai besoin de travailler avec elle plus tard ... toutes les idées.

+0

juste curieux ... dont le flux de socket? et pourquoi le regardiez-vous? –

+0

vient d'ouvrir une socket qui se connecte à l'une de nos boîtes Unix. Nous sommes juste intéressés par les données que nous recevons ... en fonction de ce que nous voulons émettre des commandes ... – deostroll

Répondre

1

J'ai posé une question presque équivalente il y a quelques heures: Open Source C# VT100 Server. Vous voulez une bibliothèque cliente qui comprend les commandes d'échappement vt100.

J'ai cherché pendant un certain temps et à ce jour n'ai pas trouvé de très bonnes bibliothèques C# vt100. J'ai commencé sur un custom et puisque j'ai vraiment seulement besoin d'interpréter les flèches gauche et droite et le backspace cela n'a pas pris longtemps.

Heureusement, le standard vt100 est très proche et pas trop complexe. Je ne pense pas que cela vous prendra beaucoup de temps pour trouver du code pour comprendre les commandes d'échappement dans votre exemple. Ce lien a une belle liste concise du VT100 escape sequences (vous devez faire défiler vers le bas un peu). Un autre bon site est vt100.net.

Dans votre exemple, les séquences d'échappement sont en octal. Votre première séquence d'échappement est:

\033[H 

qui se traduit par l'ASCII ci-dessous et est utilisé pour définir la position du curseur.

ESC [ H 

Le second est

\033[J 

qui se traduit par la séquence ASCII ci-dessous et un moyen évident de la ligne à l'extrémité de l'écran.

ESC [ J 
Questions connexes