fix something

- use index to accelerate generate
- fix auto suffix problem
- improve progrssbar
This commit is contained in:
yyc12345 2020-06-21 21:54:07 +08:00
parent 6d68766370
commit 9cd2f93b8b
6 changed files with 54 additions and 23 deletions

View File

@ -176,12 +176,19 @@ BOOL scriptDatabase::finalJob() {
sqlite3_exec(db, "commit;", NULL, NULL, NULL);
//create index for quick select in following app
/*sqlite3_exec(db, "begin;", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where1] ON bIn (thisobj)", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where2] ON bOut (thisobj)", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where3] ON pIn (thisobj)", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where4] ON pOut (thisobj)", NULL, NULL, NULL);
sqlite3_exec(db, "commit;", NULL, NULL, NULL);*/
sqlite3_exec(db, "begin;", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where1] ON behavior ([parent])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where2] ON pOper ([belong_to], [thisobj])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where3] ON pTarget ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where4] ON bIn ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where5] ON bOut ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where6] ON pIn ([belong_to], [thisobj])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where7] ON pOut ([belong_to], [thisobj])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where8] ON pLocal ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where9] ON pLink ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where10] ON bLink ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "CREATE INDEX [quick_where11] ON elink ([belong_to])", NULL, NULL, NULL);
sqlite3_exec(db, "commit;", NULL, NULL, NULL);
return TRUE;
}

View File

@ -484,14 +484,14 @@ void IteratepLocalData(CKParameterLocal* p, scriptDatabase* db, dbScriptDataStru
if (unknowType || t == CKPGUID_VOIDBUF || t == CKPGUID_SHADER || t == CKPGUID_TECHNIQUE || t == CKPGUID_PASS) {
//dump data
unsigned char* cptr = (unsigned char*)p->GetReadDataPtr(false);
char temp[4];
char temp[8];
int cc = 0, rcc = 0, pos = 0;
rcc = cc = p->GetDataSize();
if (rcc > 1024) rcc = 1024;
helper->_db_pLocalData->data.clear();
for (int i = 0; i < rcc; i++) {
sprintf(temp, "%02X", cptr[i]);
sprintf(temp, "0x%02X", cptr[i]);
helper->_db_pLocalData->data += temp;
if (i != rcc - 1)

View File

@ -75,7 +75,8 @@ void PluginMenuCallback(int commandID) {
ofn.lpstrFile = file;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = 1024;
ofn.lpstrFilter = "Database file(*.db)\0*.db\0All files(*.*)\0*.*\0";
ofn.lpstrFilter = "Database file(*.db)\0*.db\0";
ofn.lpstrDefExt = "db";
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;

View File

@ -2,7 +2,7 @@ import sqlite3
import DecoratorConstValue as dcv
import json
import CustomConfig
import sys
import Progressbar
def run():
exportDb = sqlite3.connect(CustomConfig.export_db)
@ -22,25 +22,16 @@ def run():
# decorate each graph
print('Generating graph...')
currentGraphBlockCell = {}
percentageAll = len(graphList)
if percentageAll == 0:
percentageAll = 1
percentageNow = 0
percentageCache = 0
#debug
# graphList=graphList[int(percentageAll*3/4):]
Progressbar.initProgressbar(len(graphList))
for i in graphList:
sys.stdout.write('\r[{}{}]{}%'.format(int(percentageCache / 5) * '#',(20 - int(percentageCache / 5)) * '=', percentageCache))
sys.stdout.flush()
currentGraphBlockCell.clear()
buildBlock(exportDb, decorateDb, i, currentGraphBlockCell)
graphPIO = buildCell(exportDb, decorateDb, i, currentGraphBlockCell)
buildLink(exportDb, decorateDb, i, currentGraphBlockCell, graphPIO)
percentageNow += 1
percentageCache = int(100 * percentageNow / percentageAll)
Progressbar.stepProgressbar()
Progressbar.finProgressbar()
# export information
print('Generating info...')
buildInfo(exportDb, decorateDb)

View File

@ -0,0 +1,29 @@
import sys
value_All = 0
value_Now = 0
progressbar_span = 2
progressbar_count = int(100/progressbar_span)
def initProgressbar(all):
global value_Now, value_All
value_All = all
value_Now = 0
sys.stdout.write('[{}] 0%'.format(progressbar_count * '='))
sys.stdout.flush()
def stepProgressbar():
global value_Now, value_All
value_Now += 1
if (value_Now > value_All):
value_Now = value_All
percentage = int(value_Now / value_All * 100)
percentage_bar = int(value_Now / value_All * progressbar_count)
sys.stdout.write('\r[{}{}] {}%'.format(percentage_bar * '#',(progressbar_count - percentage_bar) * '=', percentage))
sys.stdout.flush()
def finProgressbar():
sys.stdout.write('\r[{}] 100%\n'.format(progressbar_count * '#'))
sys.stdout.flush()

View File

@ -30,6 +30,9 @@
<Compile Include="DecoratorCore.py">
<SubType>Code</SubType>
</Compile>
<Compile Include="Progressbar.py">
<SubType>Code</SubType>
</Compile>
<Compile Include="ServerCore.py">
<SubType>Code</SubType>
</Compile>