Newsgroup: it.comp.lang.javascript
Titolo: Confronto stringa

Salve a tutti
mi serve un aiuto
ho realizzato uno script che tramiate la selezione di una casella mi
inserisce i dati in una casella di testo a scorrimento presente nel frame
sopra la pagina
vorrei pero che se il dato gia è stato  immesso
non venisse scritto nuovamente nella casella a scorrimento
ogni dato occupa una riga della casella
ho provato ad inserire un carattere alla volta fino alla fine della riga in
una variabile e controllarlo con il valore che inviavo selezionando la
casella di selezione, questo per ogni riga e se risultano essere uguali il
valore che invio non viene scritto nella casella di testo a scorrimento, il
problema che non funziona o meglio funziona solo con il primo elemento e non
capisco cosa ho sbagliato, esiste un rimedio piu semplice???;
ecco quello che ho fatto:
function tras(obj)
{
var testo=unescape(obj.value);
var articolo = top.frames[0].document.formtop.testotop.value;
var n=articolo.length;
var valore=articolo.charAt(0);
var k=0;
var w="true";
var h=1;
/* conta il numero di righe presenti nella casella di testo a scorrimento e
li assegna a K */
for (var i=0; i <= n; i+=1)
 if (articolo.charAt(i)=="\n") k+=1;
/* carica 1 riga alla volta carattere per carattere nella variabile valore
   e la confronta con la variabile Testo contenente le info inviate dalla
casella di selezione */
for (var t=1; t <=k; t+=1)
{
 for (var j=h; (articolo.charAt(j)!="\r"); j+=1)
    valore+=articolo.charAt(j);
if(valore == testo) w="false";
h=j+1;
valore=articolo.charAt(h);
}
if (w=="true")
 {articolo +=testo+"\n";
top.frames[0].document.formtop.testotop.value=(articolo);
}}
AIUTO
Iron Spider

  for (var j=h; (articolo.charAt(j)!="\r"); j+=1)
 for (var j=h; (articolo.charAt(j)!="\n"); j+=1)
se aggiungi un avanzamento riga non puoi controllare un ritorno carrello
Comunque se hai una stringa conviene confrontarla direttamente con una
stringa
-------------
function tras(obj) {
 var testo=unescape(obj.value);
 var articolo = top.frames[0].document.formtop.testotop.value;
 var w=true;
 pluto=articolo.split('\n');  // crea un array contenente ogni
sottostringa divisa da '\n'
 for (z=0;z<pluto.length-1;z++)
  if (testo==pluto[z]) w=false  // confronta testo con ogni riga
dell'array
 if (w) {
  articolo +=testo+"\n"
  top.frames[0].document.formtop.testotop.value=articolo;
 }
}
--------------
Saluti, Paolo

 function tras(obj) {   ...............

 ha scritto nel messaggio
news:oUPs6.44896$6W.44...@news.infostrada.it...
[]
Per definizione: se funziona, va bene.
Saluti, Paolo

 Per definizione: se funziona, va bene.
E' appunto per questo che la maggior parte delle persone quando sviluppavano
sotto IE e facevano strafalcioni intergalattici, pensavano di aver fatto
bene. Tanto gli funzionava (se io ad IE gli scrivo in ciriliccoScript, penso
gli vada bene ugualmente. :D ).
Mi spiace ma non sono della filosofia "se funzica, va bene". Nel mondo
dell'informatica, la richiesta MINIMA per un programma e' quella di
funzionare, ovviamente. Ma non assolutamente la sola.
P.S.
Ehehe, se non ti scrivevo una mail in cui ti contraddicevo non mi pareva di
esser tornato. :P

 esser tornato. :P
Si... è proprio tornato... ed è proprio lui... riconosco lo stile... :-))
Ciao Zer0 
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
               Nessun traguardo è abbastanza lontano.
------------------------------------------------------------------------