![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет. Имеются некоторые строки det, count, firm. Значения в стоках разное. Необходимо отформатировать их в тексте типа такого:
det1 count1 firm1 det2 count2 firm2 det3 count3 firm3 det4 count4 firm4 в memo. Всегда получается, что например det1 по длине меньше det3 или firm1 больше, допустим, firm4. Нужно сделать чтобы все это дело было ровненько в столбиках: Карбюратор......4.....ОАО "АвтоВАЗ" Трамблер.........3.....ОАО "...." Стартер..........12.....ОАО "...." вот, чтобы так. Как это можно сделать, что то не понимаю. Надеюсь на помощь) |
|
#2
|
||||
|
||||
|
|
|
#3
|
|||
|
|||
|
ещё есть функция Format
PHP код:
|
|
#4
|
|||
|
|||
|
Нет, точки я специально поставил, т.к. после редактирования сообщения будет не то, что нужно. Вместо точек пробелы должны быть.
Pyro, пробовал, все равно, кол-во символов разное, то выходит криво. Последний раз редактировалось win32nod32, 26.12.2011 в 14:06. |
|
#5
|
||||
|
||||
|
Цитата:
Код:
function RightPad(S: string; Ch: Char; Len: Integer): string; var RestLen: Integer; begin Result := S; RestLen := Len - Length(s); if RestLen < 1 then Exit; Result := StringOfChar(Ch, RestLen) + S; end; шрифт Courier установи. |
|
#6
|
|||
|
|||
|
Цитата:
PHP код:
|
|
#7
|
|||
|
|||
|
NumLock, что то я не понимаю, зачем нужно заполнять строку пробелами.
Значение len в этой процедуре нада же взять откуда то. Вот скрин, там показаны 3 слова(строки), которые соединяются в одну и добавляются в мемо. Нужно выровнять эти столбики (буквы цифры буквы), чтобы ровно было, как в примере с деталями. Pyro, а как тогда сделать? вот есть 3 константы с типом string[50]. result.add(format('%s %s %s', [det, count, firm])); result - stringlist. Последний раз редактировалось win32nod32, 26.12.2011 в 14:29. |
|
#8
|
||||
|
||||
|
Цитата:
![]() Код:
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
function LeftPad(s: String; len: Integer): String;
begin
Result:=s;
len:=len-Length(s);
if len<1 then Exit;
Result:=s+StringOfChar(' ', len);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
det, count, firm: String[20];
begin
det:='Карбюратор';
count:='4';
firm:='ОАО "АвтоВАЗ"';
Memo1.Lines.Add(LeftPad(det, 24)+LeftPad(count, 24)+LeftPad(firm, 24));
Memo1.Lines.Add(LeftPad('Трамблер', 24)+LeftPad('3', 24)+LeftPad('ОАО "Жигули"', 24));
det:='Стартер,';
count:='12,';
firm:='"Ferrari"';
Memo1.Lines.Add(LeftPad(det, 24)+LeftPad(count, 24)+LeftPad(firm, 24));
end;http://zalil.ru/32376022 Последний раз редактировалось NumLock, 26.12.2011 в 14:58. |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
win32nod32 (26.12.2011)
| ||
|
#9
|
|||
|
|||
|
NumLock, большое спасибо =)
|
|
#10
|
|||
|
|||
|
а можно проще.
Используй моноширинный шрифт Например Courier New Все символы имеют одинаковую ширину как на пишущей маш |