Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_mysql>
- #if defined _dini_included
- #endinput
- #endif
- #define _dini_included
- #define FAIL -1
- #define MAX_STRING 128
- #pragma library dutils
- #include <dutils>
- #include <a_samp>
- new
- Escape[2][128],
- Storage[128],
- myQuery[128],
- Table[128],
- ID[128]
- ;
- stock GetPrimaryKey(table[]){
- new chave[24];
- if(strcmp(table,"contas_rpg",false)==0) format(chave,24,"NICK");
- else if(strcmp(table,"contas_mgs",false)==0) format(chave,24,"NOME");
- else if(strcmp(table,"postais",false)==0) format(chave,24,"NICK");
- else if(strcmp(table,"casas",false)==0) format(chave,24,"NUMERO");
- else if(strcmp(table,"veiculos",false)==0) format(chave,24,"PLACA");
- else if(strcmp(table,"propriedades",false)==0) format(chave,24,"NUMERO");
- //else if(strcmp(table,"propriedades",false)==0) format(chave,24,"MOCHILAS");
- else format(chave,24,"ID");
- return chave;
- }
- stock dini_Exists(filename[]) {
- //print("dini_Exists");
- if(explode(Escape, filename, "/")==FAIL){
- explode(Escape, filename, ".");
- Table = Escape[0];
- format(myQuery, sizeof(myQuery),"SELECT * FROM %s",Table);
- }
- else {
- Table = Escape[0];
- explode(Escape, Escape[1], ".");
- ID = Escape[0];
- format(myQuery, sizeof(myQuery),"SELECT * FROM %s WHERE %s='%s'",Table,GetPrimaryKey(Table),ID);
- }
- //printf("[DEBUG] %s",myQuery);
- //SendClientMessageToAll(0xFF000000, myQuery);
- mysql_query(myQuery);
- mysql_store_result();
- if(mysql_num_rows() > 0) {
- mysql_free_result();
- return true;
- }
- mysql_free_result();
- return false;
- }
- stock dini_Remove(filename[]) {
- //print("dini_Remove");
- if(explode(Escape, filename, "/")==FAIL){
- explode(Escape, filename, ".");
- Table = Escape[0];
- format(myQuery, sizeof(myQuery),"DELETE * FROM %s",Table);
- }
- else {
- Table = Escape[0];
- explode(Escape, Escape[1], ".");
- ID = Escape[0];
- format(myQuery, sizeof(myQuery),"DELETE * FROM %s WHERE %s = '%s'", Table,GetPrimaryKey(Table),ID);
- }
- //printf("[DEBUG] %s",myQuery);
- //SendClientMessageToAll(0xFF000000, myQuery);
- mysql_query(myQuery);
- mysql_store_result();
- if(mysql_num_rows() > 0) {
- mysql_free_result();
- return true;
- }
- mysql_free_result();
- return false;
- }
- stock dini_Create(filename[]) {
- //print("dini_Create");
- if(explode(Escape, filename, "/")==FAIL){
- explode(Escape, filename, ".");
- Table = Escape[0];
- format(myQuery,sizeof(myQuery),"CREATE TABLE %s (ID INT(3))", Table);
- }
- else {
- Table = Escape[0];
- format(myQuery,sizeof(myQuery),"SELECT * FROM %s", Table);
- mysql_query(myQuery);
- mysql_store_result();
- if(!mysql_num_rows()){
- format(myQuery,sizeof(myQuery),"CREATE TABLE %s (ID INT(3))", Table);
- mysql_query(myQuery);
- }
- mysql_free_result();
- set(filename,Escape[1]);
- explode(Escape, filename, ".");
- ID = Escape[0];
- format(myQuery, sizeof(myQuery),"INSERT INTO '%s' ('%s') VALUES('%s')", Table,GetPrimaryKey(Table),ID); //INSERT INTO veiculos (Placa) VALUES 20
- }
- //printf("[DEBUG] %s",myQuery);
- //SendClientMessageToAll(0xFF000000, myQuery);
- mysql_query(myQuery);
- return true;
- }
- stock dini_PRIVATE_ExtractKey(line[]) {
- //print("dini_PRIVATE_ExtractKey");
- new tmp[MAX_STRING];
- tmp[0]=0;
- if (strfind(line,"=",true)==-1) return tmp;
- set(tmp,strlower(ret_memcpy(line,0,strfind(line,"=",true))));
- return tmp;
- }
- stock dini_PRIVATE_ExtractValue(line[]) {
- //print("dini_PRIVATE_ExtractValue");
- new tmp[MAX_STRING];
- tmp[0]=0;
- if (strfind(line,"=",true)==-1) {
- return tmp;
- }
- set(tmp,ret_memcpy(line,strfind(line,"=",true)+1,strlen(line)));
- return tmp;
- }
- stock dini_Set(filename[],key[],value[]) {
- //print("dini_Set");
- if(explode(Escape, filename, "/")==FAIL){
- explode(Escape, filename, ".");
- Table = Escape[0];
- format(myQuery,sizeof(myQuery),"SELECT %s FROM %s", key, Table);
- mysql_query(myQuery);
- mysql_store_result();
- if(!mysql_num_rows()){
- format(myQuery, sizeof(myQuery), "ALTER TABLE %s ADD COLUMN '%s' VARCHAR(50)",Table,key);
- mysql_query(myQuery);
- }
- format(myQuery, sizeof(myQuery),"UPDATE %s SET %s = '%s'",Table,key,value); //UPDATE brazucas SET Automacao 1
- }
- else {
- Table = Escape[0];
- format(myQuery,sizeof(myQuery),"SELECT %s FROM %s", key, Table);
- mysql_query(myQuery);
- mysql_store_result();
- if(!mysql_num_rows()){
- format(myQuery, sizeof(myQuery), "ALTER TABLE %s ADD COLUMN '%s' VARCHAR(50)",Table,key);
- mysql_query(myQuery);
- }
- explode(Escape, Escape[1], ".");
- ID = Escape[0];
- format(myQuery, sizeof(myQuery),"UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table,key,value,GetPrimaryKey(Table),ID);
- }
- //printf("[DEBUG] %s",myQuery);
- //SendClientMessageToAll(0xFF000000, myQuery);
- mysql_query(myQuery);
- return false;
- }
- stock dini_IntSet(filename[],key[],value) {
- //print("dini_IntSet");
- new valuestring[MAX_STRING];
- format(valuestring,sizeof(valuestring),"%d",value);
- return dini_Set(filename,key,valuestring);
- }
- stock dini_Int(filename[],key[]) {
- print("dini_Int");
- return strval(dini_Get(filename,key));
- }
- stock dini_FloatSet(filename[],key[],Float:value) {
- //print("dini_FloatSet");
- new valuestring[MAX_STRING];
- format(valuestring,sizeof(valuestring),"%f",value);
- return dini_Set(filename,key,valuestring);
- }
- stock Float:dini_Float(filename[],key[]) {
- //print("dini_Float");
- return floatstr(dini_Get(filename,key));
- }
- stock dini_Bool(filename[],key[]) {
- //print("dini_Bool");
- return strval(dini_Get(filename,key));
- }
- stock dini_BoolSet(filename[],key[],value) {
- //print("dini_BoolSet");
- new valuestring[MAX_STRING];
- format(valuestring,sizeof(valuestring),"%d",value);
- return dini_Set(filename,key,valuestring);
- }
- stock dini_Unset(filename[],key[]) {
- //print("dini_Unset");
- dini_Set(filename,key,"");
- return false;
- }
- stock dini_Get(filename[],key[]) {
- //print("dini_Get");
- if(explode(Escape, filename, "/")==FAIL){
- explode(Escape, filename, ".");
- Table = Escape[0];
- format(myQuery, sizeof(myQuery),"SELECT %s FROM %s",key,Table);
- }
- else {
- Table = Escape[0];
- explode(Escape, Escape[1], ".");
- ID = Escape[0];
- format(myQuery, sizeof(myQuery),"SELECT %s FROM %s WHERE %s = '%s'", key,Table,GetPrimaryKey(Table),ID);
- }
- //printf("[DEBUG] %s",myQuery);
- //SendClientMessageToAll(0xFF000000, myQuery);
- mysql_query(myQuery);
- mysql_store_result();
- Storage = "\0";
- if(mysql_num_rows() > 0) {
- while(mysql_fetch_row(myQuery)) {
- mysql_fetch_field_row(Storage, key);
- }
- }
- mysql_free_result();
- return Storage;
- }
- stock dini_Isset(filename[],key[]) {
- //print("dini_Isset");
- if(explode(Escape, filename, "/")==FAIL){
- explode(Escape, filename, ".");
- Table = Escape[0];
- format(myQuery, sizeof(myQuery),"SELECT %s FROM %s",key,Table);
- }
- else {
- Table = Escape[0];
- explode(Escape, Escape[1], ".");
- ID = Escape[0];
- format(myQuery, sizeof(myQuery),"SELECT %s FROM %s WHERE %s = '%s'", key,Table,GetPrimaryKey(Table),ID);
- }
- //printf("[DEBUG] %s",myQuery);
- //SendClientMessageToAll(0xFF000000, myQuery);
- mysql_query(myQuery);
- mysql_store_result();
- Storage = "\0";
- if(mysql_num_rows() > 0) {
- while(mysql_fetch_row(myQuery)) {
- mysql_fetch_field_row(Storage, key);
- }
- }
- mysql_free_result();
- if(strlen(Storage)) return true;
- return false;
- }
- ret_memcpy(source[],index=0,numbytes) {
- new tmp[MAX_STRING];
- new i=0;
- tmp[0]=0;
- if (index>=strlen(source)) return tmp;
- if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
- if (numbytes<=0) return tmp;
- for (i=index;i<numbytes+index;i++) {
- tmp[i-index]=source[i];
- if (source[i]==0) return tmp;
- }
- tmp[numbytes]=0;
- return tmp;
- }
- stock RemoveLineFromFile(line[],filename[]){
- //print("RemoveLineFromFile");
- new aLineFromTheFile[MAX_STRING];
- new aLineToRemove[MAX_STRING];
- format(aLineToRemove,MAX_STRING,"%s\r\n",line);
- new File:f = fopen(filename, io_read);
- new File:temp = fopen("temp.txt", io_write);
- while (fread(f, aLineFromTheFile)){
- if(strcmp(aLineFromTheFile,aLineToRemove,true)==0){
- continue;
- }
- fwrite(temp, aLineFromTheFile);
- }
- fclose(f);
- fclose(temp);
- f = fopen(filename, io_write);
- temp = fopen("temp.txt", io_read);
- while (fread(temp, aLineFromTheFile))
- {
- fwrite(f, aLineFromTheFile);
- }
- fclose(f);
- fclose(temp);
- fremove("temp.txt");
- }
- /*
- stock isNumeric(const string[]) {
- new length=strlen(string);
- if (length==0) return false;
- for (new i = 0; i < length; i++) {
- if (
- (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
- || (string[i]=='-' && i!=0) // A '-' but not at first.
- || (string[i]=='+' && i!=0) // A '+' but not at first.
- ) return false;
- }
- if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
- return true;
- }
- stock set(dest[],source[]) {
- new count = strlen(source);
- new i=0;
- for (i=0;i<count;i++) {
- dest[i]=source[i];
- }
- dest[count]=0;
- }
- stock strtok(const string[], &index,seperator=' ')
- {
- new length = strlen(string);
- new offset = index;
- new result[MAX_STRING];
- while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- if ((index < length) && (string[index] == seperator))
- {
- index++;
- }
- return result;
- }
- stock explode(aExplode[][], const sSource[], const sDelimiter[] = " ", iVertices = sizeof aExplode, iLength = sizeof aExplode[]){
- new
- iNode,
- iPointer,
- iPrevious = -1,
- iDelimiter = strlen(sDelimiter);
- while(iNode < iVertices){
- iPointer = strfind(sSource, sDelimiter, false, iPointer);
- if(iPointer == -1){
- strmid(aExplode[iNode], sSource, iPrevious, strlen(sSource), iLength);
- break;
- }
- else {
- strmid(aExplode[iNode], sSource, iPrevious, iPointer, iLength);
- }
- iPrevious = (iPointer += iDelimiter);
- ++iNode;
- }
- return iPrevious;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment