Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
IDC эта версия понимает? 22.03.04 16:26 Число просмотров: 1360
Автор: ukv Статус: Незарегистрированный пользователь
|
Вот idc-скрипт, которым я пользовался. Переписать его под слегка другой входной формат наверное несложно.
static main(void)
{
auto mapname,file,str ;
auto seg,offset,c,i,j,n ;
mapname = AskStr("*.map","Enter map file name:") ;
file = fopen(mapname,"rt") ;
while(1)
{
str = readstr(file) ;
if ( str == -1 ) return ;
if ( strstr(str,"Publics by Value") != -1 ) break ;
}
Message("Starting...\n");
while(1)
{
str = readstr(file) ;
if ( str == -1 ) break ;
n = strlen(str) ;
if ( n < 6 ) continue ;
c = strstr(str,":") ;
if ( c == -1 ) continue ;
seg = xtol(str) ;
for(i=0;i<n;i=i+1) if ( substr(str,i,i+1) == ":" ) break ;
if ( i >= n ) continue ;
offset = xtol(substr(str,i+1,-1)) ;
for(1;i<n;i=i+1) if ( substr(str,i,i+1) <= " " ) break ;
if ( i >= n ) continue ;
for(1;i<n;i=i+1) if ( substr(str,i,i+1) > " " ) break ;
if ( i >= n ) continue ;
for(j=i;j<=n;j=j+1) if ( substr(str,j,j+1) <= " " ) break ;
Message("inserting name %s at %d\n",substr(str,i,j),offset);
if ( MakeName(offset,substr(str,i,j)) ) continue ;
Message("Failed insert name ") ;
Message(substr(str,i,j)) ;
Message("\n") ;
}
fclose(file) ;
Message("LoadMap32 finished\n");
}
|
|
|