Выравнивание строк при получении - PullRequest
0 голосов
/ 19 октября 2019

Как выровнять текст по строке справа?

Это мой код для генерации строки

for (int i = 0; i <= qtd_itens - 1; i++)
{                                        
    String adicionais = dados_msg[i].addon;

    //A soma do pedido + os pontos devem dar 63 caracteres 80mm
    int qtd_pontos = 0;    

    int qtdLinhaPedido = 0;
    String LinhaPedido = Quantidade + "x " + item + " - " + preco + "\n";
    qtdLinhaPedido = LinhaPedido.Length;
    qtd_pontos = 80 - qtdLinhaPedido;                                  

    DadosPedido = String.Format("{0,-10}{1,"+qtd_pontos+"}", DadosPedido + Quantidade + "x " + item + "  ", preco + "\n");

    if (adicionais.Length > 10)
    {

    }
    else {
        DadosPedido = DadosPedido + "\n";
    }

    // using the method 
    String[] strlist = adicionais.Split('}');

    foreach (String s in strlist)
    {
        String Addon = s.Replace("[", "").Replace("]", "").Replace("{", "").Replace("}","").Replace(",\"addon_name","\"addon_name");
        Addon = "{" + Addon + "}";                                        
        if (Addon.Length > 15)
        {
            dynamic JsonAddon = JObject.Parse(Addon);
            String Item = JsonAddon.addon_name;
            String Qtd = JsonAddon.addon_qty;
            double Preco_AddonF = JsonAddon.addon_price;
            Preco_AddonF = Double.Parse(Qtd) * Preco_AddonF;
            string preco_addon = Preco_AddonF.ToString("C", CultureInfo.CurrentCulture);

            int qtdLinhaPedido = 0;
            String LinhaPedido = Qtd + "x " + Item + " " + preco_addon + "\n";
            qtdLinhaPedido = LinhaPedido.Length;
            qtd_pontos = 80 - qtdLinhaPedido;

            DadosPedido = String.Format("{0,-10}{1," + qtd_pontos + "}", DadosPedido + "  - " + Qtd + "x " + Item + " ", preco_addon+ "\n");
        }          
    }
    DadosPedido = DadosPedido + "\n";
    if (Instrucao_item.Length > 5)
    {
        DadosPedido = DadosPedido+"Obs: " + Instrucao_item+ "\n\n";
    }

На самом деле я использую String.Format("{0,-10}{1," + qtd_pontos + "}",DadosPedido + Quantidade + "x " + item + " ("+ tamanho + ") ", preco + "\n"); для форматирования строки, но цена не выравнивается, я хочу, чтобы вся часть цены была правильнойвыравнивается, и значение всегда начинается с одной и той же позиции.

Current Receipt

1 Ответ

0 голосов
/ 19 октября 2019

Это можно сделать с помощью String.Format, только если используется моноширинный шрифт .

...