Replace string dans un fichier
Bonjour,
voilà j'ai une fois de plus un petit soucis :mrgreen: concernant un remplacement de string dans un fichier. Je m'explique j'ai créé une partie de code qui me permet d'ouvrir un fichier en l'occurence un fichier html ou css et de remplacer le code par les données que j'ai saisie. Tout fonctionne a une exception prêt je peux le faire dans un fichier uniquement.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| var infile = urlHtml;
var outfile = urlHtml;
fs.open(infile, 'r', function (err, fd) {
changeFile(fd);
});
var out = ' ';
function changeFile(fd) {
var buf = new Buffer(1024);
buf.fill(0);
try {
fs.read(fd, buf, 0, 1024, null, function (err, bytesRead, buffer) {
if (bytesRead === 0) {
writeFile(out);
return;
}
var str = buffer.toString('utf8', 0, bytesRead);
for (var i in req.body.tpl.title) {
str = str.replace('${' + req.body.tpl.title[i].id + '}', req.body.tpl.title[i].value);
}
for (var i in req.body.tpl.content) {
str = str.replace('${' + req.body.tpl.content[i].id + '}', req.body.tpl.content[i].value);
}
for (var i in req.body.tpl.image) {
str = str.replace('${' + req.body.tpl.image[i].id + '}', '../../../' + req.body.tpl.image[i].path);
}
out += str;
changeFile(fd);
});
} catch (err) {
console.error(err);
}
}
function writeFile(str) {
fs.writeFile(outfile, str, function (err, written, buffer) {
fs.rename(outfile, infile);
});
} |
Mon fichier JSON :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| {
"title": [{
"id": "titre"
, "name": "titre"
}]
, "image": [{
"id": "url"
, "name": "image"
, "file": "css"
}],
} |
J'aimerai pouvoir analyser ce fichier et lorsqu'il tombe sur l'image il ouvre le css puis une fois sur le titre il ouvre mon html
J'ai essayé ceci mais ça n'a pas l'air de fonctionner :
Code:
1 2 3 4 5 6 7 8 9
| for( var i in req.body.tpl.length){
if(req.ody.tpl.image[i].file =='css')
{
var infile = urlCss;
var outfile = urlHtml;
}
var infile = urlHtml;
var outfile = urlHtml; |
merci pour vos réponses