Skip to content

Instantly share code, notes, and snippets.

@Gk0Wk
Created August 29, 2021 03:39
Show Gist options
  • Save Gk0Wk/9e6e0e02fca4e5741b4cfe8fe0aee686 to your computer and use it in GitHub Desktop.
Save Gk0Wk/9e6e0e02fca4e5741b4cfe8fe0aee686 to your computer and use it in GitHub Desktop.
(function(root, factory) {
if (typeof exports === "object" && typeof module === "object")
module.exports = factory();
else if (typeof define === "function" && define.amd)
define([], factory);
else if (typeof define === "function" && define.cmd)
define(function(require, exports, module) {
module.exports = factory();
});
else root.MyFileIO = factory();
})(this, function() {
"use strict";
function loadString(arg, onReady) {
var file = (typeof arg === 'string') ? arg : (arg.currentTarget ? arg.target : arg);
var reader;
// HTML5
if (window.FileReader) {
reader = new FileReader();
reader.onload = function() {
onReady(this.result);
};
reader.readAsText((typeof file === 'string') ? file : file.files[0]);
}
// For IE
else if (typeof window.ActiveXObject !== 'undefined') {
reader = new ActiveXObject("Scripting.FileSystemObject");
if (!reader.fileExists((typeof file === 'string') ? file : file.value))
onReady(null);
reader = reader.OpenTextFile((typeof file === 'string') ? file : file.value, 1, false, -2);
var content = file.readAll();
reader.close();
onReady(content);
}
// FireFox
else if (document.implementation && document.implementation.createDocument) {
reader = document.implementation.createDocument("", "", null);
reader.async = false;
reader.load((typeof file === 'string') ? file : file.value);
onReady(reader.xml);
} else {
alert('error');
}
}
function saveString(arg, text) {
var file = (typeof arg === 'string') ? arg : (arg.currentTarget ? arg.target : arg);
var writer;
// HTML5
if (window.FileWriter) {
writer = new FileWriter((typeof file === 'string') ? file : file.files[0]);
writer.write(text);
}
// For IE
else if (typeof window.ActiveXObject !== 'undefined') {
writer = new ActiveXObject("Scripting.FileSystemObject");
writer = writer.CreateTextFile((typeof file === 'string') ? file : file.value, true, true);
writer.Write(text);
writer.close();
}
}
function loadBinaryString(arg, onReady) {
var file = (typeof arg === 'string') ? arg : (arg.currentTarget ? arg.target : arg);
var reader;
// HTML5
if (window.FileReader) {
reader = new FileReader();
reader.onload = function() {
onReady(this.result);
};
reader.readAsBinaryString((typeof file === 'string') ? file : file.files[0]);
}
// For IE
else if (typeof window.ActiveXObject !== 'undefined') {
reader = new ActiveXObject("ADODB.Stream");
reader.Type = 1;
reader.Open();
reader.LoadFromFile((typeof file === 'string') ? file : file.value);
reader.Position = 0;
var what = reader.Read();
reader.Close();
onReady(what);
}
}
return {
loadString: loadString,
saveString: saveString,
loadBinaryString: loadBinaryString
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment