AngelScript
|
Path: /sdk/add_on/scriptfile/
This object provides support for reading and writing files.
Register with RegisterScriptFile(asIScriptEngine*)
.
If you do not want to provide write access for scripts then you can compile the add on with the define AS_WRITE_OPS 0, which will disable support for writing. This define can be made in the project settings or directly in the header.
class CScriptFile { public: // Constructor CScriptFile(); // Memory management void AddRef() const; void Release() const; // Opening and closing file handles // mode = "r" -> open the file for reading // mode = "w" -> open the file for writing (overwrites existing files) // mode = "a" -> open the file for appending int Open(const std::string &filename, const std::string &mode); int Close(); // Returns the size of the file int GetSize() const; // Returns true if the end of the file has been reached bool IsEOF() const; // Reads a specified number of bytes into the string int ReadString(unsigned int length, std::string &str); // Reads to the next new-line character int ReadLine(std::string &str); // Reads a signed integer asINT64 ReadInt(asUINT bytes); // Reads an unsigned integer asQWORD ReadUInt(asUINT bytes); // Reads a float float ReadFloat(); // Reads a double double ReadDouble(); // Writes a string to the file int WriteString(const std::string &str); int WriteInt(asINT64 v, asUINT bytes); int WriteUInt(asQWORD v, asUINT bytes); int WriteFloat(float v); int WriteDouble(double v); // File cursor manipulation int GetPos() const; int SetPos(int pos); int MovePos(int delta); // Determines the byte order of the binary values (default: false) // Big-endian = most significant byte first bool mostSignificantByteFirst; };
class file { int open(const string &in filename, const string &in mode); int close(); int getSize() const; bool isEndOfFile() const; int readString(uint length, string &out str); int readLine(string &out str); int64 readInt(uint bytes); uint64 readUInt(uint bytes); float readFloat(); double readDouble(); int writeString(const string &in string); int writeInt(int64 value, uint bytes); int writeUInt(uint64 value, uint bytes); int writeFloat(float value); int writeDouble(double value); int getPos() const; int setPos(int pos); int movePos(int delta); bool mostSignificantByteFirst; }
file f; // Open the file in 'read' mode if( f.open("file.txt", "r") >= 0 ) { // Read the whole file into the string buffer string str; f.readString(f.getSize(), str); f.close(); }