none
ascii

Odpovědi

  • Zdravím,
    není mi úplně jasné, co přesně potřebujete, ale zkusím něco naznačit.
    .NET zpracovává interně textové řetězce (string) v kódování Unicode, resp. vývojář je od tohoto v podstatě odstíněn a řetězce tam prostě jsou. Pojem kódování se dostává do hry v okamžiku, kdy chcete udělat načtení/výstup řetězce z .NETu.

    Základní převody třeba:
    // převod do ASCII
    byte[] bytes = Encoding.ASCII.GetBytes("Muj retezec");
    
    // čtení z ASCII
    string s = Encoding.ASCII.GetString(bytes);
    

    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    středa 3. března 2010 8:47
    Moderátor
  • Po paměti (musíte si doladit):

    // vezmu délku kratšího řetězce
    int length = Math.Min(retezec1.Length, retezec2.Length);
    
    a pro každý znak na pozici i
    for (int i = 0; i < length; i++)
    {
      // vytáhnu si cifry
      char c1 = retezec1[i];
      char c2 = retezec2[i];
    
      // převedu na čísla
      int x1 = Convert.ToInt32(c1);
      int x2 = Convert.ToInt32(c2);
    
      // sečtu a vypíšu
      Console.Write(x1 + x2);
      Console.Write(' ');
    }
      
    ...musíte si doplnit spoustu kontrol (že je to číslice, atp.)
    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    pondělí 8. března 2010 21:31
    Moderátor
  • string c1 = retezec1.Substring(i, 1);
    string c2 = retezec2.Substring(i, 1);
    ...vyměťe ty dva řádky, neuvědomil jsem si, že při převodu z char se vezme ordinální hodnota a ne hodnota čísla. String to vyřeší.


    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    úterý 9. března 2010 21:32
    Moderátor
  • Pro parsování toho řetězce s čísly oddělenými mezerami použijte metodu string.Split(' '), která vám to rozdělí na pole stringů po jednotlivých číslech. Ty pak procházejte v cyklu foreach místo toho stávajícího cyklu for, který jde po znacích.
    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    středa 10. března 2010 10:06
    Moderátor

Všechny reakce

  • Zdravím,
    není mi úplně jasné, co přesně potřebujete, ale zkusím něco naznačit.
    .NET zpracovává interně textové řetězce (string) v kódování Unicode, resp. vývojář je od tohoto v podstatě odstíněn a řetězce tam prostě jsou. Pojem kódování se dostává do hry v okamžiku, kdy chcete udělat načtení/výstup řetězce z .NETu.

    Základní převody třeba:
    // převod do ASCII
    byte[] bytes = Encoding.ASCII.GetBytes("Muj retezec");
    
    // čtení z ASCII
    string s = Encoding.ASCII.GetString(bytes);
    

    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    středa 3. března 2010 8:47
    Moderátor
  • Po paměti (musíte si doladit):

    // vezmu délku kratšího řetězce
    int length = Math.Min(retezec1.Length, retezec2.Length);
    
    a pro každý znak na pozici i
    for (int i = 0; i < length; i++)
    {
      // vytáhnu si cifry
      char c1 = retezec1[i];
      char c2 = retezec2[i];
    
      // převedu na čísla
      int x1 = Convert.ToInt32(c1);
      int x2 = Convert.ToInt32(c2);
    
      // sečtu a vypíšu
      Console.Write(x1 + x2);
      Console.Write(' ');
    }
      
    ...musíte si doplnit spoustu kontrol (že je to číslice, atp.)
    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    pondělí 8. března 2010 21:31
    Moderátor
  • string c1 = retezec1.Substring(i, 1);
    string c2 = retezec2.Substring(i, 1);
    ...vyměťe ty dva řádky, neuvědomil jsem si, že při převodu z char se vezme ordinální hodnota a ne hodnota čísla. String to vyřeší.


    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    úterý 9. března 2010 21:32
    Moderátor
  • Pro parsování toho řetězce s čísly oddělenými mezerami použijte metodu string.Split(' '), která vám to rozdělí na pole stringů po jednotlivých číslech. Ty pak procházejte v cyklu foreach místo toho stávajícího cyklu for, který jde po znacích.
    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    středa 10. března 2010 10:06
    Moderátor