![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Плиз помогите несведущему
![]() Я копирую данные из таблиц в текстовый файл, но, естественно, теряется выравнивание текста. Как выравнить столбцы в текстовом файле? Последний раз редактировалось Vayrus, 24.08.2008 в 18:49. |
#2
|
||||
|
||||
![]() Вот, так будет понятнее
Последний раз редактировалось Vayrus, 22.08.2008 в 19:46. |
#3
|
|||
|
|||
![]() Для этого первое условие - моноширинный шрифт (типа Курьера).
Далее, загоняешь все данные в массив записей, например. Или другим способом выясняешь длинну самой длинной строки для каждого поля. Ну и теперь при выводе данные "дорисовываешь" сзади пробелами до нужной длинны. |
#4
|
||||
|
||||
![]() Покажи, пожалуйста, примерчик по теме для работы с массивами, а то я с ними особо не работал.
|
#5
|
||||
|
||||
![]() Код:
function ReplaceSubString(source,target,new:string):string; var rslt: String; begin While POS(target,source)>0 do begin rslt:=rslt+copy(source,1,POS(target,source)-1)+new; Delete(source,1,POS(target,source)+Length(target)-1); Application.ProcessMessages; end; Result:=rslt+source; end; function To_HTML_Table(InTxt: String): String; const first='<TR><TD noWrap width="30%">'; Stand='</TD><TD noWrap align=middle width="1%">'; closet='</TD></TR>'; var List : TstringList; OutL : TstringList; I:Integer; S:String; begin List := TstringList.Create; OutL := TstringList.Create; List.Text := InTxt; for i:=0 to list.Count-1 do begin S:=List.Strings[i]; S:=ReplaceSubString(S,#9,Stand); S:=first+S+closet; OutL.Add(S); Application.ProcessMessages; end; RESULT:=OutL.Text; List.Free; OutL.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin if not CheckBox1.Checked then begin ShowMessage('ClipBoard is empty!'); EXIT; end; Memo1.Clear; memo1.Text:=To_HTML_Table(CB.AsText); end; Подскажите в чем ошибка? Есть такая строчка в буфере обмена: АЕ 2066-20А* 2 853,0 554,5 Вместо: <TR><TD noWrap width="30%">АЕ 2066-20А*</TD><TD noWrap align=middle width="1%">2</TD><TD noWrap align=middle width="1%"> 853,0 </TD><TD noWrap align=middle width="1%"> 554,5 </TD></TR> выдает: <TR><TD noWrap width="30%">АЕ 2066-20А*</TD><TD noWrap align=middle width="1%"></TD><TD noWrap align=middle width="1%"></TD><TD noWrap align=middle width="1%">2</TD><TD noWrap align=middle width="1%"> 853,0 </TD><TD noWrap align=middle width="1%"> 554,5 </TD></TR> |