44 lines
		
	
	
		
			961 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			961 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "ground_lib.h"
 | |
| 
 | |
| #include <fstream>
 | |
| #include <filesystem>
 | |
| 
 | |
| GroundValue readFile(GroundValue* args, int arg_count) {
 | |
|     VALIDATE_ARGS_1(GROUND_STRING);
 | |
| 
 | |
|     std::ifstream ffile(GET_STRING(args[0]));
 | |
| 
 | |
|     std::string tmp;
 | |
|     std::string out;
 | |
| 
 | |
|     while (std::getline(ffile, tmp)) {
 | |
|         out += tmp + "\n";
 | |
|     }
 | |
|     
 | |
|     return ground_string_val(out);
 | |
| }
 | |
| 
 | |
| GroundValue writeFile(GroundValue* args, int arg_count) {
 | |
|     VALIDATE_ARGS_2(GROUND_STRING, GROUND_STRING);
 | |
| 
 | |
|     std::ofstream file(GET_STRING(args[0]));
 | |
|     if (file.good()) {
 | |
|         file << GET_STRING(args[1]);
 | |
|     } else {
 | |
|         std::cout << "File isn't good for writing in" << std::endl;
 | |
|         return GROUND_BOOL_VAL(false);
 | |
|     }
 | |
|     
 | |
|     return GROUND_BOOL_VAL(true);
 | |
| }
 | |
| 
 | |
| GROUND_LIBRARY_INTERFACE()
 | |
| 
 | |
| GROUND_LIBRARY_INIT()
 | |
|     REGISTER_GROUND_FUNCTION(readFile);
 | |
|     REGISTER_GROUND_FUNCTION(writeFile);
 | |
| GROUND_LIBRARY_INIT_END()
 | |
| 
 | |
| GROUND_LIBRARY_CLEANUP()
 | |
| GROUND_LIBRARY_CLEANUP_END()
 |