powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EMS TQImport3XML.map
15 сообщений из 15, страница 1 из 1
EMS TQImport3XML.map
    #39520944
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме лежит 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
EMS TQImport3XML.map
    #39521016
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

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


в итоге всё равно: map is empty
...
Рейтинг: 0 / 0
EMS TQImport3XML.map
    #39522030
Hammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
EMS TQImport3XML.map
    #39522184
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hammer,

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

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

Код: 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
EMS TQImport3XML.map
    #39522594
Hammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Я вижу, что процедура DoLoadConfiguration не ищет и не загружает "QIW_XML_MAP (XML_MAP)"
Странный ты, вроде все написал:
IniFile.ReadSection(QI_MAP, AStrings);
где:
QI_MAP='MAP'
...
Рейтинг: 0 / 0
EMS TQImport3XML.map
    #39522598
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hammer, та я просто удивлен немного, что у XML импорта использует map в то время, когда есть "xml_map".
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EMS TQImport3XML.map
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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