procedure TForm1.Button1Click(Sender: TObject);
var
I, J: Integer;
S: String;
St: Array[0..7] of String;
begin
Memo2.Lines.Clear;
Memo2.Lines.Add('------------------------------------------------------------');
Memo2.Lines.Add(' Док. Дата Оператор Прибор УБТ ЛБТ ТБПВ Тчк ');
Memo2.Lines.Add('------------------------------------------------------------');
I := 5;
while I < Memo1.Lines.Count - 1 do begin
//читаем значения
S := Memo1.Lines;
St[0] := Trim(Copy(S, 1, 3));
Delete(S, 1, 19);
St[3] := Trim(Copy(S, 1, 14));
Delete(S, 1, 28);
St[5] := Trim(Copy(S, 1, 3));
Delete(S, 1, 4);
St[6] := Trim(Copy(S, 1, 4));
Delete(S, 1, 5);
St[4] := Trim(Copy(S, 1, 3));
Delete(S, 1, 4);
St[2] := Trim(S);
S := Copy(Memo1.Lines[I + 1], 1, 18);
J := Pos(',', S);
St[7] := Trim(Copy(S, 1, J - 1));
Delete(S, 1, J);
St[1] := Trim(S);
//приводим к нормальной длине
while Length(St[0]) < 3 do St[0] := ' ' + St[0];
St[0] := St[0] + ' ';
while Length(St[1]) < 10 do St[1] := St[1] + ' ';
while Length(St[2]) < 16 do St[2] := St[2] + ' ';
while Length(St[3]) < 8 do St[3] := St[3] + ' ';
while Length(St[4]) < 3 do St[4] := ' ' + St[4];
St[4] := St[4] + ' ';
while Length(St[5]) < 3 do St[5] := ' ' + St[5];
St[5] := St[5] + ' ';
while Length(St[6]) < 4 do St[6] := ' ' + St[6];
St[6] := St[6] + ' ';
while Length(St[7]) < 3 do St[7] := ' ' + St[7];
//формирование строки
S := '';
for J := 0 to 7 do S := S + St[J];
Memo2.Lines.Add(S);
Inc(I, 2);
end;
end;
Конвертор
Срочно надо написать небольшую прогу-конвертор. Прога должна считывать данные таблицы из одного Memo и на основе них в другом Memo сформировать другую таблицу.
Вот примеры таблиц:
Исходная.[FONT="Courier New"]
--------------------------------------------------------------------------------
N|Интервал, кол. |Тип и номер | Хар-ка ствола замера |Фамилия начальника
|точек и дата |прибора, дата |-------------------------|
|исследования |поверки | Ствол |ЛБТ|ТБПВ|УБТ|
--------------------------------------------------------------------------------
1 10.0-370.0 Пят 13 + 0 0 Иванив
601, 01.06.06 -//-
2 320.0-630.0 Пят 13 + 0 0 Петров
602, 02.06.06 -//-
3 380.0-1270.0 АД 666 + 0 0 Содоров
603, 03.06.06 -//-
--------------------------------------------------------------------------------[/FONT]
Сформерованная.[FONT="Courier New"]
------------------------------------------------------------
Док. Дата Оператор Прибор УБТ ЛБТ ТБПВ Тчк
------------------------------------------------------------
1 01.06.06 Иванив Пят 13 0 + 0 601
2 02.06.06 Петров Пят 13 0 + 0 602
3 03.06.06 Сидоров АД 666 0 + 0 603
[/FONT]
Как видно в первой таблице двойные строки + общее количество строк может быть любым!
Помогите пожалуйста ОЧЕНЬ НАДО!!! По срокам ГОРЮ... Всем откликнувшимся заранее БОЛЬШОЕ СПАСИБО!!!
PS. Во вложении файл с таблицами, на всякий случай...