2010-08-24 7 views
0

Comment puis-je passer d'une échelle de notation à une autre en utilisant ma fonction personnalisée en C#.Transformation d'une échelle de notation à une autre

abstract string Convert(string value, string fromBase, string toBase); 

valeur - échelle de représentation de chaîne de notation dans la notation de base

frombase - chaîne représente la base du numérique

tobase - représentation de chaîne la base numérique que vous devez transformer

PS chaîne qui représente l'échelle de la position de base de la notation peut inclure des symboles pour représenter le chiffre ordre croissant

Par exemple

Value = « GSAK »

fromBase = “A,S,G,K” – four(4) is the base scale of notation (If write arabic figures: 0,1,2,3) 
    toBase= “0,1,2,3,4,5,6,7,8,9” – ten(10) is the base scale of notation 
    return value = “147” 

Répondre

1

Je voudrais d'abord traduire l'entrée valeur à l'un des types de données numériques (long), puis encoder dans le format cible. Projet d'implémentation d'une classe pour effectuer l'analyse et l'encodage (non testé et certainement pas optimal):

public class Formatter 
{ 
    List<char> symbols; 
    int base; 

    public Formatter(string format) 
    { 
    string[] splitted = format.Split(","); 
    symbols = splitted.Select(x => x[0]).ToList(); 
    base = symbols.Size; 
    } 

    public long Parse(string value) 
    { 
    long result = 0; 
    foreach(char c in value) 
    { 
     long n = symbols.IndexOf(c); 
     result = result*base+n; 
    } 
    return result; 
    } 

    public string Encode(long value) 
    { 
    StringBuilder sb = new StringBuilder(); 
    while(value>0) 
    { 
     long n = value % base; 
     value /= base; 
     sb.Insert(0, symbols[n]); 
    } 
    return sb.ToString(); 
    } 
} 
+0

Votre classe est convertie en échelle de notation 10 UNIQUEMENT. J'ai besoin de convertir à une échelle de notation. –

+0

Salut @ Amis, vous devez créer une instance de cette classe pour chaque échelle. L'échelle doit être déterminée par la longueur de la liste des symboles fournis. Pourquoi dites-vous que son échelle 10 seulement? – Grzenio

+0

Votre classe convertit UNIQUEMENT la notation décimale, n'est-ce pas ?? –

Questions connexes