[Plugin] FileFunctions v0.1b
#1

FileFunctions v0.1b

This plugin allows you to manage files. There are some interresting features:
  • Lots of functions
  • More filemodes available
  • Slightly faster than SA-MP I/O
  • Allows you to manage files not only limited in 'scriptfiles' but over your whole server directory (starting from the root)
  • Usage is very similar and working is exact the same like SA:MP I/O
  • Using a 'File' tag for file index.
  • ...
Natives
  • File: fileOpen(const fileName[], io_FileMode: fileMode);
    • Opens a file.
    • If the file has been succesfully opened the function will return a pointer to a file object that is used to identify the handle on all further operations involving it. Otherwise, a null pointer is returned.
  • File: fileReOpen(File: handle, const fileName[], io_FileMode: fileMode);
    • Reopens a file.
    • If the file was succesfully reopened, the function returns a pointer to an object identifying the handle. Otherwise, a null pointer is returned.
  • fileClose(File: handle);
    • Closes a file.
    • If the handle is successfully closed, a zero value is returned. On failure, EOF (-1) is returned.
  • fileRemove(const fileName[]);
    • Removes a file.
    • If the file is successfully removed, a true value is returned. On failure, a null pointer is returned.
  • fileExists(const fileName[]);
    • Checks if a files exists.
    • If the file exists, a true value is returned. On failure, a null pointer is returned.
  • fileMove(const currentFilePath[], const newFilePath[]);
    • Moves a file. It can be used to rename a file too.
    • If the file is succesfully moved, a true value is returned. On failure, a null pointer is returned.
  • fileRewind(File: handle);
    • Sets the position indicator associated with handle to the beginning of the file.
    • If the file that has to be rewind exists, a true value is returned. On failure, a null pointer is returned.
  • fileWrite(File: handle, const string[]);
    • Writes the string to the current position of the handle.
    • The total number of elements successfully written is returned.
  • fileRead(File: handle, buffer[], const size = sizeof(buffer));
    • Reads the file starting from the current position of the handle and stores the data in the buffer. Reads line by line.
    • If reading is succesful, a true value will be returned. On failure, a null pointer is returned.
  • filePutChar(File: handle, value);
    • Writes a character to the handle and advances the position indicator.
    • If there are no errors, the same character that has been written is returned. On failure, EOF (-1) is returned.
  • fileGetChar(File: handle);
    • Returns the character currently pointed by the internal file position indicator of the specified handle.
    • If there are no errors, the character read is returned as an integer value. On failure, EOF (-1) is returned.
  • fileSeek(File: handle, position, seek_Origin: origin);
    • Sets the position indicator associated with the stream to a new position defined by adding offset to a reference position specified by origin.
    • If there are no errors, a true value is returned. Otherwise, a null pointer is returned.
  • fileLength(File: handle);
    • On success, the current value of the position indicator is returned.
    • If there are no errors, the size of the file will return in bytes. On failure, EOF (-1) is returned.
Changelog

0.1b:
- Initial release.

Download

Download (Source + Include + .dll) (Windows)
Download (Source + .so) (Linux)

Note(s)

- You must have Microsoft .NET Framework 4 installed to run this.
- This is a beta version and may contain bugs. Please report if you find one.
- Credits go to this site where I got many useful information from.
Reply
#2

Cool, but would be nice to be able to remove specific lines from files too.

Update:
You would be the sexiest person in SA-MP if you integrated a INI system into this too.
Reply
#3

Nice job RyDeR.

How about some functions to check folders, for example?
Reply
#4

Nice
Reply
#5

Suggestion:
FileRename(const currentName[], const newName[]);

Would be useful for /setname
Reply
#6

@cj101:
Great idea, I'll add that ASAP!

@Zh3r0:
Thanks Zh3r0! Oh, a function like "directoryExists" or something?

@fissekarl:
Sure, you will be able to do that when I add the proposal from cj101. Check the topic for updates.

@1337connor:
"fileMove(const currentFilePath[], const newFilePath[]);" does the thing that you want
Reply
#7

Thank you! You made my minute x]
Reply
#8

I love that
Reply
#9

Good work
Reply
#10

You should create a function for fileRename() for people who won't be able to understand how fileMove() works.
Reply
#11

fileMove("/Players/name.ini","/Players/newname.ini");
If I'm correct.
Reply
#12

Quote:
Originally Posted by 1337connor
View Post
fileMove("/Players/name.ini","/Players/newname.ini");
If I'm correct.
Yes, you have to keep the path and just change the filename.
Reply
#13

Yes, I realize how it's done, I use 'mv' on Linux a lot of the time, but newbie scripters are going to use this and this is just going to lead to a million questions in this thread.
Reply
#14

Good Work
Reply
#15

Ryder can you make a example ?
Reply
#16

Nice , Maybe i'll use this one day if needed :P
Reply
#17

Quote:
Originally Posted by __[ShaDoW]__
View Post
Ryder can you make a example ?
I'm completely rewriting the system. I will add examples for in the next update, stay tuned.
Reply
#18

Very nice and useful release!
Reply
#19

https://sampforum.blast.hk/showthread.php?tid=92246

isnt it the same thing?
Reply
#20

Can I ask what's the difference? Because it's not limited to scriptfiles either?
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)