All pastes #1682086 Raw Edit

K

public cpp v1 · immutable
#1682086 ·published 2009-11-22 09:40 UTC
rendered paste body
/*##################################     K's Technology - File     ##           Ver. 0.1b           ##      Created by K_POLAND      ##                               ##     Copyright © K_POLAND      ##################################*/#include a_samp#define SYMBOL '='#define K'sEXTENSION ".KTech"stock GetStrFromFile(fname[], str[]){	new File:f = fopen(fname, io_read),		result[128];	if(!fexist(fname)) return result;	while(fread(f, result, sizeof(result)))	{	    if(!strcmp(str, result, true, strlen(str)))	    {			if(result[strlen(str)] == SYMBOL)			{			    if(result[strlen(result)-1] == '\n' || result[strlen(result)-1] == '\r')			    {			    	result[strlen(result)-1] = EOS;			    	if(result[strlen(result)-1] == '\n' || result[strlen(result)-1] == '\n')					{				    	result[strlen(result)-1] = EOS;					}			    }				strdel(result, 0, strlen(str)+1);				fclose(f);				return result;			}	    }		result[0] = EOS;	}	fclose(f);	return result;}stock GetIntFromFile(fname[], str[])	return strval(GetStrFromFile(fname, str));stock Float:GetFloatFromFile(fname[], str[])	return floatstr(GetStrFromFile(fname, str));stock GetBoolFromFile(fname[], str[]){    if(!strval(GetStrFromFile(fname, str))) return false;	return true;}stock CreateFile(fname[]){	if(fexist(fname))		return 0;	new File:f = fopen(fname);	fclose(f);	return 1;}stock RemoveFile(fname[]){	if(!fexist(fname))		return 0;	fremove(fname);	return 1;}stock RenameFile(fname[], newname[]){	if(!fexist(fname) || fexist(newname))		return 0;	if(!strcmp(fname, newname, false))		return 0;	new File:f = fopen(fname, io_read),		File:nf = fopen(newname, io_append),	    buffer,		flen = flength(f);	while(flen != 0)	{		fputchar(nf, fgetchar(f, buffer,false), false);		flen--;	}	fclose(nf);	fclose(f);	fremove(fname);	return 1;}stock CopyFile(fname[], newname[]){	if(!fexist(fname) || fexist(newname))		return 0;	if(!strcmp(fname, newname, false))		return 0;	new File:f = fopen(fname, io_read),		File:nf = fopen(newname, io_append),	    buffer,		flen = flength(f);	while(flen != 0)	{		fputchar(nf, fgetchar(f, buffer,false), false);		flen--;	}	fclose(nf);	fclose(f);	return 1;}stock FileExists(fname[]){	if(!fexist(fname))		return 0;	return 1;}stock SetStrOption(fname[], opt[], str[]){	if(!fexist(fname))		return 0;	new File:f,	    File:Kf,		buffer[256],		KfName[128],		option[128],		bool:x = false;	format(option, sizeof(option), "%s%c", opt, SYMBOL);	strcat(KfName, fname, sizeof(KfName));	strcat(KfName, K'sEXTENSION, sizeof(KfName));	if(fexist(KfName))		return 0;	f = fopen(fname, io_readwrite);	Kf = fopen(KfName, io_readwrite);	while(fread(f, buffer, sizeof(buffer)))	{ 		if(!strcmp(option, buffer, true, strlen(option)))	    {			format(buffer, sizeof(buffer), "%s%s\r\n", option, str);			x = true;		}		fwrite(Kf, buffer);	}	fclose(f);	fclose(Kf);	fremove(fname);	RenameFile(KfName, fname);	if(x == false)	{		f = fopen(fname, io_append);    	format(buffer, sizeof(buffer), "%s%s\r\n", option, str);    	fwrite(f, buffer);    	fclose(f);	}	return 0;}stock SetIntOption(fname[], opt[], integer){	new s[128];	format(s, sizeof(s), "%d", integer);	return SetStrOption(fname, opt, s);}stock SetFloatOption(fname[], opt[], Float:fl){	new s[128];	format(s, sizeof(s), "%f", fl);	return SetStrOption(fname, opt, s);}stock SetBoolOption(fname[], opt[], bool:b){	new s[128];	format(s, sizeof(s), "%d", b);	return SetStrOption(fname, opt, s);}stock UnsetOption(fname[], opt[]){	if(!fexist(fname))		return 0;	new File:f,	    File:Kf,		buffer[256],		KfName[128];	strcat(KfName, fname, sizeof(KfName));	strcat(KfName, K'sEXTENSION, sizeof(KfName));	if(fexist(KfName))		return 0;	f = fopen(fname, io_readwrite);	Kf = fopen(KfName, io_readwrite);	while(fread(f, buffer, sizeof(buffer)))	{ 		if(!strcmp(opt, buffer, true, strlen(opt)))	    {			buffer[0] = EOS;		}		fwrite(Kf, buffer);	}	fclose(f);	fclose(Kf);	fremove(fname);	RenameFile(KfName, fname);	return 0;}stock Write(fname[], const str[]){	if(!fexist(fname))		return 0;	new File:f = fopen(fname, io_append);	fwrite(f, str);	fclose(f);	return 0;}stock Read(fname[], line){	new File:f = fopen(fname, io_read),		buffer[256];	if(!fexist(fname))		return buffer;	for(new a = 0; a < line; a++)	{	    fread(f, buffer, sizeof(buffer));	    if(buffer[strlen(buffer)-1] == '\n' || buffer[strlen(buffer)-1] == '\r')		{			buffer[strlen(buffer)-1] = EOS;			if(buffer[strlen(buffer)-1] == '\n' || buffer[strlen(buffer)-1] == '\n')			{				buffer[strlen(buffer)-1] = EOS;			}		}	}	fclose(f);	return buffer;}stock SaveToArray(fname[], line, array[], maxlength)	return strcat(array, Read(fname, line), maxlength);stock ROT13(text[]){	new a,		r[256];	while(text[a] != 0)	{		switch(text[a])		{			case 65..77: r[a]=text[a]+13;			case 97..109: r[a]=text[a]+13;			case 78..90: r[a]=text[a]-13;			case 110..122: r[a]=text[a]-13;			default: r[a] = text[a];		}		a++;	}	return r;}stock KEncrypt(text[]){	new a,		r[2][256];	while(text[a] != 0)	{		format(r[0], 256, "%dK", text[a]*3);		strcat(r[1], r[0], 256);		a++;	}	return r[1];}stock KDecrypt(text[]){	new r[256],	    o,		a,		k;	while(text[a] != 0)	{	    if(text[a] == 'K')	    {	    	r[o] = k/3;		    o++;		    k = 0;		    strdel(text, 0, a);		    a = 0;		}		else		{			k = k * 10 + text[a] - 48;		}		a++;	}	return r;}stock KSEM(text[]) // K's Super Encrypt Method{	new a,		r[512],		omfg[512];	while(text[a] != 0)	{		format(omfg, 512, "%d", text[a]*13);		strcat(r, omfg, 512);		a++;	}	return r;}stock SetPassword(fname[], opt[], pass[], method[]){	if(!strcmp(method, "ROT13", true))		return SetStrOption(fname, opt, ROT13(pass));	else if(!strcmp(method, "K", true))        return SetStrOption(fname, opt, KEncrypt(pass));	else if(!strcmp(method, "KSEM", true))        return SetStrOption(fname, opt, KSEM(pass));	return 0;}stock GetPassword(fname[], opt[], method[], array[], maxlength){	array[0] = EOS; // I'm sorry :P	if(!strcmp(method, "ROT13", true))		return strcat(array, ROT13(GetStrFromFile(fname, opt)), maxlength);	else if(!strcmp(method, "K", true))		return strcat(array, KDecrypt(GetStrFromFile(fname, opt)), maxlength);	return 0;}stock CompareKSEMPasswords(fname[], opt[], password[]){	if(strcmp_ex(GetStrFromFile(fname, opt), KSEM(password))==0)		return 0;	return 1;}stock strcmp_ex(const f[], const pass[]){	new strlenf = strlen(f)-1;	if(strlenf != strlen(pass))	    return 0;	for(new a = 0; a < strlenf; a++)	{		if(f[a] != pass[a])	    	return 0;	}	return 1;}/*native FileExists(fname[]);native CreateFile(fname[]);native RemoveFile(fname[]);native CopyFile(fname[], newname[]);native RenameFile(fname[], newname[]);native native GetStrFromFile(fname[], option[]);native GetIntFromFile(fname[], option[]);native GetFloatFromFile(fname[], option[]);native GetBoolFromFile(fname[], option[]);native GetPassword(fname[], option[], method[], array[], maxlength);native CompareKSEMPasswords(fname[], option[], password[]);native native SetStrOption(fname[], option[], str[]);native SetIntOption(fname[], option[], integer);native SetFloatOption(fname[], option[], Float);native SetBoolOption(fname[], option[], bool);native SetPassword(fname[], option[], password[], method[]);native UnsetOption(fname[], option[]);native native Write(fname[], str[]);native Read(fname[], line);native SaveToArray(fname[], line, array[], maxlength);native native ROT13(text[]);native KEncrypt(text[]);native KDecrypt(text[]);native KSEM(text[]);*/