J'ai créé une procédure pour écrire du contenu dans un fichier texte sur ma machine locale.
<form id="addnew">
<input type="text" class="id">
<input type="text" class="content">
<input type="submit" value="Add">
</form>
<script>
jQuery(function($) {
$('#form_addjts').submit(function(){
writeToFile({
id: $(this).find('.id').val(),
content: $(this).find('.content').val()
});
return false;
});
function writeToFile(data){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("D:\\data.txt", 8);
fh.WriteLine(data.id + ',' + data.content);
fh.Close();
}
});
</script>
Cela fonctionne bien et est capable d'ajouter mes nouvelles données au fichier.
Mais je veux mettre à jour un CONTENU de ligne particulier en fonction de l'ID que je transmets.
J'ai beaucoup cherché, mais je n'en ai pas trouvé.
Comment mettre à jour une ligne particulière du fichier en fonction de l'ID?
Remarque: - Je n'utilise aucun serveur en tant que tel. J'ai un fichier html (contient toutes les fonctionnalités) que je vais exécuter sur ma machine locale elle-même.
Notre HTML:
<div id="addnew">
<input type="text" id="id">
<input type="text" id="content">
<input type="button" value="Add" id="submit">
</div>
<div id="check">
<input type="text" id="input">
<input type="button" value="Search" id="search">
</div>
JS (écriture dans le fichier txt):
function writeToFile(d1, d2){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("data.txt", 8, false, 0);
fh.WriteLine(d1 + ',' + d2);
fh.Close();
}
var submit = document.getElementById("submit");
submit.onclick = function () {
var id = document.getElementById("id").value;
var content = document.getElementById("content").value;
writeToFile(id, content);
}
vérification d'une ligne particulière:
function readFile(){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("data.txt", 1, false, 0);
var lines = "";
while (!fh.AtEndOfStream) {
lines += fh.ReadLine() + "\r";
}
fh.Close();
return lines;
}
var search = document.getElementById("search");
search.onclick = function () {
var input = document.getElementById("input").value;
if (input != "") {
var text = readFile();
var lines = text.split("\r");
lines.pop();
var result;
for (var i = 0; i < lines.length; i++) {
if (lines[i].match(new RegExp(input))) {
result = "Found: " + lines[i].split(",")[1];
}
}
if (result) { alert(result); }
else { alert(input + " not found!"); }
}
}
Mettez-les dans un .hta
fichier et exécutez-le. Testé sur W7, IE11. Ça marche. Aussi, si vous voulez que je vous explique ce qui se passe, dites-le.