2017-02-16 59 views
1

我在節點JS新的,和我有一個問題要解決,從多個文件讀取的練習。當我執行的代碼它的Alexa返回的數據,當我嘗試轉換數據我沒有收到結果預計文件結果:十六進制轉換爲字符串

如果有人能告訴我什麼是錯我的代碼將是有益的。

var fs = require('fs'); 
    var tabfichier = ['test.txt','test2.txt']; 
    var result; 
    var donne; 
    var call =function(result,donne){ 
     console.log('result : '); 
     console.log(result); 
     console.log('donne : '); 

    //my function to convert 
     function hex_to_string(donne) 
    { 
     var hex = result.toString(); 
     var str = ''; 

     for (var n = 0; n < hex.length; n += 2) { 
      str += String.fromCharCode(parseInt(hex.substr(n, 2), 16)); 
     } 
     return str; 
    } 


     console.log(hex_to_string(donne));//i call her 
     var array = []; 
     return array [null,result] ; 
    } 


    readFiles(tabfichier, call); 

    function readFiles(files, callback) 
    { 

     console.log(files); 
     console.log(callback); 

     var filesLeft = files.length; 
     var contents = {}; 
     var error = null; 
     var filePath = ('./'); 
     var x=0; 

     var processContent = function(filePath) 
     { 

      return function(err, data){ 

       if (error !== null) 
       { 

        return; 
       } 


       if (err) 
       { 

        error = err; 
        return callback(err); 
       } 

       contents[x] = data; 
       x++; 



       if (!--filesLeft) 
       { 

        return callback('null', contents); 
       } 
      }; 

     }; 

     files.forEach(function(filePath){ 
      fs.readFile(filePath, processContent(filePath)); 

     }); 
    } 

回答

0

你僅僅指剛有像這樣fs.readFile(filename, encoding, callback)最comomon編碼是urf8ascii指定編碼。

您也可以使用此功能filedata = readFileSync(filename, encoding)

+0

我沒想到這一點的同步版本,謝謝 –

+0

歡迎您。所以你可以關閉這個問題:D –

相關問題