Caractere compris entre des entiers?? [Résolu]

sphaxslayer 216 Messages postés mardi 5 avril 2005Date d'inscription 17 septembre 2008 Dernière intervention - 18 mai 2005 à 12:00 - Dernière réponse : sphaxslayer 216 Messages postés mardi 5 avril 2005Date d'inscription 17 septembre 2008 Dernière intervention
- 18 mai 2005 à 12:42
Salut la compagnie, voilà j'ai repris un code existant fait par mon prédécesseur qui devait être très fâché avec la touche / de son clavier...j'ai des instructions que je ne comprends pas, si quelqu'un pouvait m'expliquer svp...voilà le bout de code:

public void ScanHL7(string mess)
{
int numSegment = 1;
char c; string segment "", suite mess;//.Substring(4, mess.Length - 4);

char separateur;
if ( mess.Substring(0,3).Equals("MSH") )
separateur = mess[3];
else
separateur = mess[1];


while (!suite.Equals(""))
{
c = suite[0];
if (0<c && c<32)
{
numSegment++;
try
{
if (0<suite[1] && suite[1]<32)
{
suite = suite.Substring(2, suite.Length-2);
}
else
{
suite = suite.Substring(1, suite.Length-1);
}
this.treeView1.Nodes.Add(ScanSegmentHL7(segment, separateur));
segment = "";
}
catch (Exception) {
suite = "";
}
}
else
{
segment = segment+c;
suite = suite.Substring(1, suite.Length-1);
}
....
}

Je sais c'est un peu brut de demander ça...mais franchement j'comprends pas les tests de ses ifs, ni meme ses histoires de segment + séparateur...

pour l'info, les messages à aller chercher son au format HL7 ou HPRIM, cad commencant soit par "MSH" soit pas "M", chaque message étant composé de segments eux-meme séparés par des | ....voilà voilà merci de votre aide !

"Un seul Être vous manque, et tout est dépeuplé..."
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 18 mai 2005 à 12:10
3
Merci
Hola,

suite[x] retourne un caractère.
Donc if (0<suite[1] && suite[1]<32) compare en fait un caractère avec un entier.
Mais un caractère peut être transformer en entier (via son code ASCII).

Ca permet de s'assurer qu'un certain caractère de la chaine 'suite' soit comprise dans une certaine plage du code ASCII, en l'occurance que la valeur soit entre 0 et 32.
Pour la valeur des caractères, voire http://www.asciitable.com/

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_Bidou
sphaxslayer 216 Messages postés mardi 5 avril 2005Date d'inscription 17 septembre 2008 Dernière intervention - 18 mai 2005 à 12:04
0
Merci
en fait j'comprends pas a partir du while....le test de séparateur ça va:
si les 3 premiers caracteres sont MSH alors le séparater est le 4eme, cad le |
sinon caveut dire que le premier caractere est H et donc le séparateur est le 2eme, cad le |

CORRECTION: je me suis trompé dans le poste précédent: le HPRIM commence par H| et non M|....pardon

"Un seul Être vous manque, et tout est dépeuplé..."
Commenter la réponse de sphaxslayer
sphaxslayer 216 Messages postés mardi 5 avril 2005Date d'inscription 17 septembre 2008 Dernière intervention - 18 mai 2005 à 12:18
0
Merci
merci pour le lien
Donc là son test c'est de voir si le caractere est un truc spécial vu qu'apparement jusqu'à 32 c des trucs particuliers, sauf le 32 ki est l'espace, et si c'est le cas il coupe sa string en disant qu'elle commence au caractere suivant..?

"Un seul Être vous manque, et tout est dépeuplé..."
Commenter la réponse de sphaxslayer
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 18 mai 2005 à 12:40
0
Merci
Oui c'est ça.
(Apparement, entre 0 et 32, c'est des trucs un peu spéciaux, entre parenthèse tu trouves la définition à chaque fois).

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
sphaxslayer 216 Messages postés mardi 5 avril 2005Date d'inscription 17 septembre 2008 Dernière intervention - 18 mai 2005 à 12:42
0
Merci
OK ben merci beaucoup c'est sympa, j'crois que j'ai compris, j'vais essayer de décortiquer et si ca brouille encore j'repasse ;)
merci en tous cas !

"Un seul Être vous manque, et tout est dépeuplé..."
Commenter la réponse de sphaxslayer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.