Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Конвертор

19K
10 августа 2006 года
Ulay
2 / / 10.08.2006
Люди добрые, помогите кто чем может!
Срочно надо написать небольшую прогу-конвертор. Прога должна считывать данные таблицы из одного 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. Во вложении файл с таблицами, на всякий случай...
339
10 августа 2006 года
verybadbug
619 / / 12.09.2005
Код:
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;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог