09.04.2014, 00:00
(
Последний раз редактировалось BielCorpOProgramm; 12.04.2014 в 02:24.
)
Bom, o meu desejo era terminar as minhas postagens sobre a bCini...
Entao aн vai a quinta e ъltima bCini...
Agora com funзхes programadas totalmente em inglкs, mais otimizaзгo, correзгo de loops infinitos e setґs / readґs mais rбpidos que DOF2 e mais eficientes que bIni.
Eu nгo tenho muito а dizer, sobre a include, caso vocкs queiram saber mais sobre ela, acessem: https://sampforum.blast.hk/showthread.php?tid=469974
Bom... Vamos ao que interessa!
As funзхes estгo na include e sгo renomeadas para o inglкs: O modo de uso й o mesmo.
Vamos supor que vocк usava bCini3_GetarTexto... Agora vocк deverб usar bCini5_ReadText.
E assim por diante!
Testes de velocidade (Como eu estou sem LightShot, eu vou digitar) ~>
Foi um pouco melhor do quк eu esperava, pois com a funcionalidade 100%, estгo Y_Ini, bCini5 e DOF2.
E assim se encerra os cуdigos destinados а bCini, muito obrigado а quem me ajudou todo este tempo.
CRЙDITOS:
Biel_COP - Programaзгo Geral e Idealizaзгo de todas as versхes da bCini.
Willian Luigi - Ajuda na bCini e bCini2.
Ips Bruno - Ajuda na bCini.
zSuYaNw - Ajuda na funзгo de criar arquivos.
DracoBlue - Lуgica proposta na bCini, bCini2 e bCini3.
Entao aн vai a quinta e ъltima bCini...
Agora com funзхes programadas totalmente em inglкs, mais otimizaзгo, correзгo de loops infinitos e setґs / readґs mais rбpidos que DOF2 e mais eficientes que bIni.
Eu nгo tenho muito а dizer, sobre a include, caso vocкs queiram saber mais sobre ela, acessem: https://sampforum.blast.hk/showthread.php?tid=469974
Bom... Vamos ao que interessa!
As funзхes estгo na include e sгo renomeadas para o inglкs: O modo de uso й o mesmo.
Vamos supor que vocк usava bCini3_GetarTexto... Agora vocк deverб usar bCini5_ReadText.
E assim por diante!
Testes de velocidade (Como eu estou sem LightShot, eu vou digitar) ~>
Quote:
bCini (Mexendo com o Sistema de Arquivos): 13487 ms, Funcionalidade: 90%. bCini2 (Mexendo com o Sistema de Arquivos): 6524 ms, Funcionalidade: 92%. bCini3 (Mexendo com o Sistema de Arquivos): 5347 ms, Funcionalidade: 91%. bCini4 (Mexendo com o Sistema de Arquivos): 3321 ms, Funcionalidade: 95%. bCini5 (Mexendo com o Sistema de Arquivos): 1291 ms, Funcionalidade: 100%. DOF (Mexendo com o Sistema de Arquivos): 5564 ms, Funcionalidade: 97%. DOF2 (Mexendo com o Sistema de Arquivos): 1294 ms, Funcionalidade: 100%. RocksFile (Mexendo com o Sistema de Arquivos): 3215 ms, Funcionalidade: 92%. bIni (Mexendo com o Sistema de Arquivos): 954 ms, Funcionalidade: 87%. Y_Ini (Mexendo com o Sistema de Arquivos): 634 ms, Funcionalidade: 100%. |
pawn Код:
// Include bCini5
#define bCini5_Open fopen
#define bCini5_Exists fexist
#define bCini5_Write fwrite
#define bCini5_Read fread
#define bCini5_Close fclose
#define bCini5_Create(%0) if(!bCini5_Exists(%0)) bCini5_Close(bCini5_Open(%0,io_write)) && bCini5_OpenArchive(%0)
#define bCini5_Delete(%0) if(bCini5_Exists(%0)) fremove(%0)
// Definitions Of Include
#define bCini5_Lines 100
#define bCini5_Capacity 128
#define bCini5_Separator "="
#define bCini5_Console_Fail "O arquivo nгo existe! "
#define bCini5_Console_Up "Console do arquivo "
// Variables
stock bCini5_Archive_Line_Value[bCini5_Lines][bCini5_Capacity];
stock bCini5_Archive_Value[bCini5_Lines][bCini5_Capacity];
stock bCini5_Archive_Name[bCini5_Capacity];
stock bCini5_Archive_Lines;
stock bCini5_Archive_Line_ID;
stock bool:bCini5_Archive_Has_Been_Used;
// Functions
stock Include_bCini5[bCini5_Capacity];
#define bCini5_ReadInt(%0,%1) strval(bCini5_ReadText(%0,%1))
#define bCini5_ReadBool(%0,%1) bool:strval(bCini5_ReadText(%0,%1))
#define bCini5_ReadFloat(%0,%1) floatstr(bCini5_ReadText(%0,%1))
#define bCini5_SetInt(%0,%1,%2) format(Include_bCini5,sizeof(Include_bCini5),"%d",%2) && bCini5_SetText(%0,%1,Include_bCini5)
#define bCini5_SetBool(%0,%1,%2) format(Include_bCini5,sizeof(Include_bCini5),"%d",%2) && bCini5_SetText(%0,%1,Include_bCini5)
#define bCini5_SetFloat(%0,%1,%2) format(Include_bCini5,sizeof(Include_bCini5),"%f",%2) && bCini5_SetText(%0,%1,Include_bCini5)
#define bCini5_CleanArchive(%0) if(bCini5_Exists(%0)) bCini5_OpenArchive(%0); for(new i; i < bCini5_Archive_Lines; ++i) bCini5_DeleteSet(%0,bCini5_Archive_Line_Value[i])
#define bCini5_Log(%0,%1) new File:bCini5_Archive = bCini5_Open(%0,io_append); bCini5_Write(bCini5_Archive,%1) && bCini5_Close(bCini5_Archive)
stock bCini5_SetText(archive[],line[],value[])
{
if(bCini5_Archive_Lines == bCini5_Lines)
{
return 1;
}
if(!bCini5_Exists(archive))
{
bCini5_Create(archive);
}
if(!line[0])
{
strcat(line,"(null)",7);
}
if(!value[0])
{
strcat(value,"(null)",7);
}
bCini5_OpenArchive(archive);
new bCini5_1,bCini5_2,bCini5_Archive[bCini5_Capacity];
format(bCini5_Archive,sizeof(bCini5_Archive),"%s%s%s\r\n",line,bCini5_Separator,value);
bCini5_1 = strlen(bCini5_Archive);
bCini5_2 = strlen(value);
if(!bCini5_IsSet(archive,line))
{
strmid(bCini5_Archive_Line_Value[bCini5_Archive_Lines],bCini5_Archive,0,bCini5_1,bCini5_1+1);
strmid(bCini5_Archive_Value[bCini5_Archive_Lines],value,0,bCini5_2,bCini5_2+1);
++bCini5_Archive_Lines;
}
else
{
strmid(bCini5_Archive_Line_Value[bCini5_Archive_Line_ID],bCini5_Archive,0,bCini5_1,bCini5_1+1);
strmid(bCini5_Archive_Value[bCini5_Archive_Line_ID],value,0,bCini5_2,bCini5_2+1);
}
bCini5_Archive_Has_Been_Used = true;
return 1;
}
stock bCini5_ReadText(archive[],line[])
{
if(!bCini5_Exists(archive) || !bCini5_IsSet(archive,line) || !line[0])
{
return bCini5_Archive_Value[bCini5_Archive_Lines];
}
return bCini5_Archive_Value[bCini5_Archive_Line_ID];
}
stock bCini5_IsSet(archive[],line[])
{
if(!bCini5_Exists(archive) || !line[0])
{
return 0;
}
bCini5_OpenArchive(archive);
bCini5_Archive_Line_ID = bCini5_Archive_Lines;
for(new i; i < bCini5_Archive_Lines; ++i)
{
if(bCini5_Archive_Line_Value[i][0])
{
if(strfind(bCini5_Archive_Line_Value[i],bCini5_Separator,true) ^ -1)
{
if(strfind(bCini5_Archive_Line_Value[i],line,true) ^ -1)
{
bCini5_Archive_Line_ID = i;
return 1;
}
}
}
}
return 0;
}
stock bCini5_DeleteSet(archive[],line[])
{
if(!bCini5_Exists(archive) || !bCini5_IsSet(archive,line))
{
return 1;
}
bCini5_Archive_Line_Value[bCini5_Archive_Line_ID][0] = 0;
bCini5_Archive_Value[bCini5_Archive_Line_ID][0] = 0;
bCini5_Archive_Has_Been_Used = true;
return 1;
}
stock bCini5_Console(archive[])
{
if(!bCini5_Exists(archive))
{
printf("%s(%s)",bCini5_Console_Fail,archive);
return 1;
}
bCini5_OpenArchive(archive);
printf("%s%s:\r\n",bCini5_Console_Up,archive);
for(new i; i < bCini5_Archive_Lines; ++i)
{
if(bCini5_Archive_Line_Value[i][0])
{
print(bCini5_Archive_Line_Value[i]);
}
}
return 1;
}
stock bCini5_Copy(archive[],archive2[],bool:delete_archive)
{
if(!bCini5_Exists(archive))
{
return 1;
}
bCini5_OpenArchive(archive);
new File:bCini5_Archive_Used = bCini5_Open(archive2,io_write);
for(new i; i < bCini5_Archive_Lines; ++i)
{
if(bCini5_Archive_Line_Value[i][0])
{
bCini5_Write(bCini5_Archive_Used,bCini5_Archive_Line_Value[i]);
bCini5_Archive_Line_Value[i][0] = 0;
bCini5_Archive_Value[i][0] = 0;
}
}
bCini5_Close(bCini5_Archive_Used);
if(delete_archive)
{
bCini5_Delete(archive);
}
return 1;
}
// Open & Close
stock bCini5_OpenArchive(archive[])
{
if(!bCini5_Exists(archive) || bCini5_Archive_Name[0] && strcmp(bCini5_Archive_Name[0],archive,true) == 0)
{
return 1;
}
bCini5_CloseArchive();
new bCini5_1,i,bCini5_Archive[bCini5_Capacity],File:bCini5_Archive_Used = bCini5_Open(archive,io_read);
bCini5_1 = strlen(archive);
strmid(bCini5_Archive_Name,archive,0,bCini5_1,bCini5_1+1);
bCini5_Archive_Lines = 1;
while(bCini5_Read(bCini5_Archive_Used,bCini5_Archive))
{
if(bCini5_Archive[0])
{
i = strlen(bCini5_Archive);
strmid(bCini5_Archive_Line_Value[bCini5_Archive_Lines],bCini5_Archive,0,i,i+1);
if(bCini5_Archive[i-1] == '\r' || bCini5_Archive[i-1] == '\n')
{
bCini5_Archive[i-1] = 0;
}
if(bCini5_Archive[i-2] == '\r' || bCini5_Archive[i-2] == '\n')
{
bCini5_Archive[i-2] = 0;
}
i = strlen(bCini5_Archive);
strmid(bCini5_Archive_Value[bCini5_Archive_Lines],bCini5_Archive,strfind(bCini5_Archive,bCini5_Separator)+1,i,i+1);
++bCini5_Archive_Lines;
}
}
bCini5_Close(bCini5_Archive_Used);
return 1;
}
stock bCini5_CloseArchive()
{
if(!bCini5_Exists(bCini5_Archive_Name) || !bCini5_Archive_Has_Been_Used)
{
if(bCini5_Archive_Has_Been_Used)
{
for(new i; i < bCini5_Archive_Lines; ++i)
{
if(bCini5_Archive_Line_Value[i][0])
{
bCini5_Archive_Line_Value[i][0] = 0;
bCini5_Archive_Value[i][0] = 0;
}
}
bCini5_Archive_Has_Been_Used = false;
}
bCini5_Archive_Name[0] = 0;
bCini5_Archive_Lines = 0;
return 1;
}
if(bCini5_Archive_Has_Been_Used)
{
new File:bCini5_Archive_Used = bCini5_Open(bCini5_Archive_Name,io_write);
for(new i; i < bCini5_Archive_Lines; ++i)
{
if(bCini5_Archive_Line_Value[i][0])
{
bCini5_Write(bCini5_Archive_Used,bCini5_Archive_Line_Value[i]);
bCini5_Archive_Line_Value[i][0] = 0;
bCini5_Archive_Value[i][0] = 0;
}
}
bCini5_Close(bCini5_Archive_Used);
bCini5_Archive_Has_Been_Used = false;
}
bCini5_Archive_Name[0] = 0;
bCini5_Archive_Lines = 0;
return 1;
}
// End Of Include
CRЙDITOS:
Biel_COP - Programaзгo Geral e Idealizaзгo de todas as versхes da bCini.
Willian Luigi - Ajuda na bCini e bCini2.
Ips Bruno - Ajuda na bCini.
zSuYaNw - Ajuda na funзгo de criar arquivos.
DracoBlue - Lуgica proposta na bCini, bCini2 e bCini3.