Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EMS TQImport3XML.map / 15 сообщений из 15, страница 1 из 1
14.09.2017, 10:32:50
    #39520944
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
На форме лежит 2 компоненты: TQExport4XML и TQImport3XML.

Задача. Временно экспортировать данные из таблицы и потом их импортировать обратно.
Проблема в том, что, на сайте и в документации вообще нет описания и примеров, как правильно заполнять свойство TQImport3XML. map .

вот так выглядит то, что экспортирует компонента TQExport4XML:



свойство MAP имеет тип TStrings.

По разному пробовал заполнять свойство MAP:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
URL=DATAPACKET.ROWDATA.URL,
REGION=DATAPACKET.ROWDATA.ROW.REGION,
ENABLE=ENABLE,
DESCRIPTION=DESCRIPTION,
LAST_URL=LAST_URL,
PROFILE_ID=PROFILE_ID,
SITE_NAME=SITE_NAME,
DAYS_LIMIT=DAYS_LIMIT

слева - имена полей таблицы, а справа не пойму, как правильно прописать теги.

в таблицу добавляются просто пустые строки :(
...
Рейтинг: 0 / 0
14.09.2017, 12:09:47
    #39521016
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
X11,

Глупый вопрос - исходников нет?
...
Рейтинг: 0 / 0
14.09.2017, 12:33:09
    #39521031
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
Есть, изучаю, но может кто-то уже смог.
...
Рейтинг: 0 / 0
14.09.2017, 12:34:17
    #39521034
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
По идее там всё уже есть. Например, GetFields из DATAPACKET и METADATA.
Но как его заставить импортировать всё без MAP. Ведь в самом XML всё уже есть.
...
Рейтинг: 0 / 0
15.09.2017, 11:19:43
    #39521647
Hammer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
X11,
Сюда ...\Demos\templates смотрел?
...
Рейтинг: 0 / 0
15.09.2017, 12:09:16
    #39521705
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
О!
...
Рейтинг: 0 / 0
15.09.2017, 12:25:08
    #39521735
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
Осталось понять, как это загрузить.
Код: pascal
1.
QImport3XML1.LoadConfiguration(sPathOptions + 'url_xml.imp')


в итоге всё равно: map is empty
...
Рейтинг: 0 / 0
15.09.2017, 18:18:38
    #39522030
Hammer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
X11,
Э..., вроде как все написано, не?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
unit QImport3;
...
  TQImport3 = class(TComponent)
...
  protected
...
    procedure DoLoadConfiguration(IniFile: TIniFile); virtual;
...
  public
...
    procedure LoadConfiguration(const FileName: string);
...
  end;
...
procedure TQImport3.LoadConfiguration(const FileName: string);
var
  FIniFile: TIniFile;
begin
  if not FileExists(FileName) then Exit;
  FIniFile := TIniFile.Create(FileName);
  try
    DoLoadConfiguration(FIniFile);
  finally
    FIniFile.Free;
  end;
end;
...
procedure TQImport3.DoLoadConfiguration(IniFile: TIniFile);
var
  i, l, k: integer;
  AStrings: TStrings;
  SectionName,
  Str: string;
  FF: TQImportFieldFormat;
  R: TQImportReplacement;
  TextToFind, ReplaceWith,
  TextToFindHex, ReplaceWithHex,
  TextToFindHexRes, ReplaceWithHexRes: string;
  ignoreCase: Boolean;
  SectionNames: TStrings;
begin
  AStrings := TStringList.Create;
  try
    Self.FileName := IniFile.ReadString(QI_BASE, QI_FILE_NAME, Self.FileName);
    AStrings.Clear;
    Map.Clear;
    IniFile.ReadSection(QI_MAP, AStrings);
    for i := 0 to AStrings.Count - 1 do
...
ну и далее по тексту
...
end;
...





Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
unit QImport3XML;
...
  TQImport3XML = class(TQImport3)
...
  protected
...
    procedure DoLoadConfiguration(IniFile: TIniFile); override;
...
  end;
...
procedure TQImport3XML.DoLoadConfiguration(IniFile: TIniFile);
begin
  inherited;
  with IniFile do begin
    SkipFirstRows := ReadInteger(XML_OPTIONS, XML_SKIP_LINES, SkipFirstRows);
    WriteOnFly := ReadBool(XML_OPTIONS, XML_WRITE_ON_FLY, WriteOnFly);
  end;
end;
...


...
Рейтинг: 0 / 0
16.09.2017, 12:41:45
    #39522184
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
Hammer,

не понял
...
Рейтинг: 0 / 0
16.09.2017, 12:50:01
    #39522185
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
Я вижу, что процедура DoLoadConfiguration не ищет и не загружает "QIW_XML_MAP (XML_MAP)"
...
Рейтинг: 0 / 0
16.09.2017, 13:12:53
    #39522188
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
С помощью TQImport3Wizard импортировать получается и TemplateFile можно использовать.
Но и здесь проблема - в текстовые поля импортируются кракозябры. Не найду, где кодировку указать.
только это вижу
...
Рейтинг: 0 / 0
16.09.2017, 13:23:31
    #39522191
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
В общем, импортировать удалось без TQImport3Wizard.
Переименовал в TemplateFile секцию [XML_MAP] на [MAP].

Проблема с кодировкой осталась.
...
Рейтинг: 0 / 0
16.09.2017, 15:27:49
    #39522210
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
Решил проблему с кодировкой так:

Код: pascal
1.
2.
3.
4.
5.
procedure TDM.QImport3XML1BeforePost(Sender: TObject; Row: TQImportRow;
  var Accept: Boolean);
begin
  row.ColByName('DESCRIPTION').Value := UTF8ToString(RawByteString(row.ColByName('DESCRIPTION').Value));
end;
...
Рейтинг: 0 / 0
18.09.2017, 09:36:44
    #39522594
Hammer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
X11Я вижу, что процедура DoLoadConfiguration не ищет и не загружает "QIW_XML_MAP (XML_MAP)"
Странный ты, вроде все написал:
IniFile.ReadSection(QI_MAP, AStrings);
где:
QI_MAP='MAP'
...
Рейтинг: 0 / 0
18.09.2017, 09:39:19
    #39522598
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EMS TQImport3XML.map
Hammer, та я просто удивлен немного, что у XML импорта использует map в то время, когда есть "xml_map".
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EMS TQImport3XML.map / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]