2011-08-16 12 views
5

Ho il seguente codice node.js:nodejs: la manipolazione delle stringhe

conn.on("data",function(x){ 
     var responseData=x; 
     //sys.puts(responseData); 
     sys.puts(responseData.length); 

     var f=50; 
     var N=responseData.length; 
     if(N>f){ 
     var p=Math.floor(N/f); 
     var p_rem=N%f; 

     var hash=""; 
     for(var i=0;i<p;i++){ 
      hash=DJBHash(responseData.substr(f*i,f)); //this line causes program to exit! 
      sys.puts(responseData.substr(f*i,f)+"***"+hash); 
     } 
     } 
     soc.write(x); 
    }); 

Ma substr non sembra funzionare!

Come posso ottenere sottostringhe di una stringa in node.js?

Molte grazie in anticipo,

+0

sua probablye 'DJBHash' che non riesce – Raynos

+0

ho commentato che la linea ... La riga successiva è fallendo ora ... – Eamorr

+0

try 'Object.prototype.toString.call (responseData)' – Raynos

risposta

13

I dati variabile è di tipo tampone, si dovrà creare una stringa con il metodo toString e poi, si sarà in grado di fare il substr. Qualcosa del genere funziona:

responseData.toString().substr(1) 

Per maggiori informazioni consultare questo link:

http://nodejs.org/docs/v0.4.10/api/buffers.html#buffer.toString

+0

Ciao, quello ha funzionato davvero bene Mi stavo chiedendo sai come passare da una stringa al tipo "responseData"? – Eamorr

+1

Secondo la documentazione: 'new Buffer (myStr)' lo farà http://nodejs.org/docs/v0.4.10/api/buffers.html#new_Buffer –

+0

E così fa! Woop woop! Grazie molto. Non ho trovato nulla su google ... – Eamorr

Problemi correlati