Показать сообщение отдельно
Старый 24.08.2017, 13:29   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
а привет
создаем табличку: тип, старый ID, новый ID
выгружаем объекты в текст.

IF FileName = '' THEN
ERROR('файлик не выбран');

F.OPEN(FileName);
F.TEXTMODE(TRUE);
F1.CREATE(<новое имя файла>);
F1.TEXTMODE(TRUE);
F1.WRITEMODE(TRUE);
REPEAT
//_pos := F.POS;
CLEAR(fString);
F.READ(fString);
ConvertString();
//F.SEEK(_pos);
F1.WRITE(fString);
UNTIL F.POS = F.LEN;



F.CLOSE;
F1.CLOSE;


ConvertString()

IF <табличка>.FIND('-') THEN REPEAT
CLEAR(_From);
CLEAR(_To);
_From := FORMAT(<табличка>.Type) + ' ' + FORMAT(<табличка>."ID From");
_To := FORMAT(<табличка>.Type) + ' ' + FORMAT(<табличка>."ID To");
IF STRPOS(fString, _From) <> 0 THEN BEGIN
//MESSAGE(fString);
fString := COPYSTR(fString, 1, STRPOS(fString, _From)-1)
+ _To
+ COPYSTR(fString, STRPOS(fString, _From) + STRLEN(_From));
//MESSAGE(fString);
END;
_From := FORMAT(<табличка>.Type) + FORMAT(<табличка>."ID From");
_To := FORMAT(<табличка>.Type) + FORMAT(<табличка>."ID To");
IF STRPOS(fString, _From) <> 0 THEN BEGIN
fString := COPYSTR(fString, 1, STRPOS(fString, _From)-1)
+ _To
+ COPYSTR(fString, STRPOS(fString, _From) + STRLEN(_From));
END;
_From := 'Record ' + FORMAT(<табличка>."ID From");
_To := 'Record ' + FORMAT(<табличка>."ID To");
IF STRPOS(fString, _From) <> 0 THEN BEGIN
fString := COPYSTR(fString, 1, STRPOS(fString, _From)-1)
+ _To
+ COPYSTR(fString, STRPOS(fString, _From) + STRLEN(_From));
END;
UNTIL <табличка>.NEXT = 0;

далее импортируем текстовичек в пустую базу (в эту же нельзя, название объектов)
почти все переносится, не помню где какой-то хвостик остается
с переносом данных не помогу.