![]() |
【转帖】how to use setpathname
how to use setpathname
how to use setpathname i tried to change xref path name of dwg files using setpathname as follows, but i catched error every time. could anybody tell how to use setpathname or how to change xref name of dwg files? thanks in advance. oddbdatabaseptr pdb; try { pdb = m_svcs.readfile( strftoprocess, false, false, oda::ksharedenyno ); } catch(...) { //error handling code here return; } try { oddbblocktableptr pblocks = pdb->getblocktableid().safeopenobject(); oddbsymboltableiteratorptr pblkiter = pblocks->newiterator(); for (pblkiter->start(); ! pblkiter->done(); pblkiter->step()) { oddbblocktablerecordptr pblock = pblkiter->getrecordid().safeopenobject(); if (pblock->isfromexternalreference()) { // fullfilename cstring strreffile; strreffile.format("%s", (const char *)pblock->pathname()); // change file name here strreffile.replace("c:", "f:"); pblock->setpathname((lpctstr)strreffile); // error catched!! } } } catch(...) { //error handling code here return; } i got the error message. it said that file "not opened for write". so i guess readfile has something about it. i tried different shared modes. it could not solve the problem. hello, try oddbblocktablerecordptr pblock = pblkiter->getrecordid().safeopenobject(oddb::kforwrite); instead of oddbblocktablerecordptr pblock = pblkiter->getrecordid().safeopenobject(); regards, tomaz thank you, tomaz. it works. |
所有的时间均为北京时间。 现在的时间是 01:42 AM. |