fdeleteline not deleting the line?
#1

So, I finally figured out how to delete furniture for my furniture system, but when I use fdeleteline it doesn't delete the line when it removes the object?

fdeleteline:
Код:
fdeleteline(filename[], line[]){
	if(fexist(filename)){
		new temp[256];
		new File:fhandle = fopen(filename,io_read);
		fread(fhandle,temp,sizeof(temp),false);
		if(strfind(temp,line,true)==-1){return 0;}
		else{
			fclose(fhandle);
			fremove(filename);
			for(new i=0;i<strlen(temp);i++){
				new templine[256];
				strmid(templine,temp,i,i+strlen(line));
				if(equal(templine,line,true)){
					strdel(temp,i,i+strlen(line));
					fcreate(filename);
					fhandle = fopen(filename,io_write);
					fwrite(fhandle,temp);
					fclose(fhandle);
					return 1;
				}
			}
		}
	}
	return 0;
}
My stock to remove the line from the file:
Код:
stock RemoveObjectFromFile(DFileName[], Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT)
{
	new File:ObjectFile, Line[128];

	format(Line, sizeof(Line), "%f %f %f %f %f %f %i %i %i\r\n", OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT, oModel);
	ObjectFile = fopen(DFileName, io_append);
	fdeleteline("DObjects.txt", Line);
	fclose(ObjectFile);
	return 1;
}
Where I remove the object:
Код:
if(response == EDIT_RESPONSE_FINAL)
	{
	    new string[254];
		OVW = GetPlayerVirtualWorld(playerid);
		OINT = GetPlayerInterior(playerid);
		GetDynamicObjectPos(objectid, OX, OY, OZ);
		GetDynamicObjectRot(objectid, ORX, ORY, ORZ);
		RemoveObjectFromFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT);
		CreateDynamicObject(oModel, Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT);
		AddObjectToFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT);
		SendClientMessage(playerid, COLOR_LIGHTRED, "Object placed.");
		format(string, sizeof(string), "Object model %i spawned at %f, %f, %f, with rotation %f, %f, %f,", oModel, OX, OY, OZ, ORX, ORY, ORZ);
		SendClientMessage(playerid, 0xD8D8D8FF, string);
		format(string, sizeof(string), "Object world %i interior id %i", OVW, OINT);
		SendClientMessage(playerid, 0xD8D8D8FF, string);
		DestroyDynamicObject(Object);
		Streamer_Update(playerid, 0);
		EditingFurn[playerid] = 0;
	}
and here:
Код:
new string[254];
					OVW = GetPlayerVirtualWorld(playerid);
					OINT = GetPlayerInterior(playerid);
					GetDynamicObjectPos(objectid, OX, OY, OZ);
					GetDynamicObjectRot(objectid, ORX, ORY, ORZ);
	   		    	DestroyDynamicObject(objectid);
					DestroyObject(objectid);
    				RemoveObjectFromFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT);
					DeletingFurn[playerid] = 0;
					CancelEdit(playerid);
					Streamer_Update(playerid, 0);
Reply
#2

Use MySQL or a INI file.
Reply
#3

Quote:
Originally Posted by OneDay
Посмотреть сообщение
Use MySQL or a INI file.
So, if I changed the .txt file to a .ini file, it should work? Why does that make a difference? ((I would've been using MySQL if I knew it.))
Reply
#4

bump.
Reply
#5

bump.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)