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() |