2012-05-16 8 views
0

хорошо у меня есть принтер, и я печатать их цены как этоконтрольные помещения? в примечании продукции

4  $297.41$297.41$892.24 
11   $135 $135 $1350 
5  $211.2  $0$1056.03 
4  $211.2 $211.2$633.62 
3  $318.96$206.89 $750 
1  $172.41  $0$172.41 
2  $172.41$172.41$172.41 
1  $172.41  $0$172.41 
1  $172.41  $0$172.41 
1  $172.41  $0$172.41 
1  $189.65  $0$189.65 
1  $189.65  $0$189.65 

мне нужно что-то, как это:

4 $297.41 $297.41 $892.24 
11 $135 $135 $1350 
5 $211.2 $0  $1056.03 
4 $211.2 $211.2 $633.62 
3 $318.96 $206.89 $750 
1 $172.41 $0  $172.41 
2 $172.41 $172.41 $172.41 
1 $172.41 $0  $172.41 
1 $172.41 $0  $172.41 
1 $172.41 $0  $172.41 
1 $189.65 $0  $189.65 
1 $189.65 $0  $189.65 

это мой C# код

file.WriteLine(cantidad+preciouni.PadLeft(13,' ')+desctot.PadLeft(7,' ')+stotal.PadLeft(7,' ')); 

но это мой первый пример, как я должен его использовать? padleft? или padleft? спасибо вер много

ответ

1

Я думаю, что все, что вам нужно сделать, чтобы перейти от PadLeft к PadRight:

Возвращает новую строку заданной длины, в котором конец текущей строки дополняется пробелами или с указанным символом Unicode.

Поскольку вы хотите, чтобы поля столбцов были выровнены по левому краю, вы должны править вправо.

file.WriteLine(
    cantidad.PadRight(5, ' ') + 
    preciouni.PadRight(9, ' ') + 
    desctot.PadRight(9, ' ') + 
     stotal.PadRight(9, ' ')); 
+0

ohh это сработало очень хорошо .. большое спасибо –

1

Вы можете сделать это с помощью встроенных кодов формата:

file.WriteLine(
    string.Format(
     "{0,-3} {1,-13}, {2,-7} {3,-7}", 
     cantidad,preciouni,desctot,stotal 
    ) 
); 

Использование отрицательного числа в ширину формата левого оправдывает строку.

1

Я хотел бы использовать alignment formatting:

file.WriteLine(String.Format("{0,-5}{1,13}{2,7}{3,7}", 
          cantidad, preciouni, desctot, stotal)); 

Число после запятой количество пробелов в блокноте.