|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | 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 Все символы имеют одинаковую ширину как на пишущей маш |