Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860

    problema di taglio di una stringa [Urgente]

    salve a tutti,

    i=0
    flag=0
    if (lungOggetto <> 0) or (lungMessaggio <> 0) then
    do while (i <= LungOggetto)
    i=i+1
    OggettoParziale = OggettoParziale & mid(Oggetto,i,1)
    NuovoOggetto = NuovoOggetto & "." & OggettoParziale
    loop
    else
    flag=1
    end if

    il problema è che se la stringa fosse "ciao"

    a me uscirebbe un output del tipo:

    .c.ci.cia.ciao.ciao

    ora io avrei bisogno che l'uotput invece fosse: c.i.a.o
    In breve una lettera dopo ogni punto e soprattutto l'ultimo blocco non ripetuto perchè non capisco come mai ciao e ripetuto due volte come risolvo anche il problema del .c ossia che nella condizione do while mi contempla anche lo 0.

    grazie mille!
    Linux Inside

  2. #2
    Non so se ho capito bene il problema ma prova questo

    codice:
    NuovoOggetto=""
    
    for i=1 to len(Oggetto)
      NuovoOggetto = NuovoOggetto & "." & mid(Oggetto,i,1) 
    next
    Response.Write NuovoOggetto & "
    "
    in output restituisce .c.i.a.o


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    codice:
     
    NuovoOggetto=left(Oggetto,1)
    i=1
    do while (i <= LungOggetto)
        i=i+1
        NuovoOggetto = NuovoOggetto & "." & mid(Oggetto,i,1)
    loop

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    x elfa con il tuo codice ottengo

    c.i.a.o.

    x occhiocrepato invece col tuo ciclo for ottengo comunque .c.i.a.o

    in breve c'è un . di troppo in un caso all'inizio e nell'altro alla fine
    Linux Inside

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    NuovoOggetto=left(Oggetto,1)
    i=1
    do while (i < LungOggetto)
    i=i+1
    NuovoOggetto = NuovoOggetto & "." & mid(Oggetto,i,1)
    loop

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Con la right in un caso e con la left nell'altro puoi togliere il punto in eccesso.

    Roby

  7. #7
    codice:
    nstr=""
    str="ciao"
    
    for i=1 to len(str)
    
    nstr=nstr & mid(str,i,1)
    if i<len(str) then nstr=nstr & "."
    
    next
    
    response.Write(nstr)

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    ok ho quasi risolto... anche se non del tutto perchè questo codice che è quello di prima aggiornato e completato nelle sue parti mancanti..

    codice:
    flag=0
    if (lungOggetto <> 0) or (lungMessaggio <> 0) then
      NuovoOggetto=left(Oggetto,1)
      i=1
      do while (i < LungOggetto)
    	Carattere=""
    	Carattere = mid(Oggetto,i,1)
    	Numero = Asc(Carattere)
    	NuovoNumero = Numero+Chiave
    	NuovoCarattere= Chr(NuovoNumero)
        NuovoOggetto = NuovoOggetto & "." & NuovoCarattere
        i=i+1	
      loop
    else
      flag=1
    end if
    mi rilascia comunque un errore..
    infatti ipotizzando sempre che io lavori sulla parola ciao io ottengo la parola ciao intervallata da . e convertita secondo il criterio della variabile "chiave" tuttavia il problema mi rimane nella prima lettara, la C di ciao che non viene convertita ma viene sempre e comunque lasciata come C... Perchè?

    per capirci l'output di ciao è: c.Ê.Ð.È

    dove appunto la prima lettere non viene alterata

    grazie
    Linux Inside

  9. #9
    ecco ora va:
    codice:
    flag=0
    
    oggetto="ciao"
    
    NuovoOggetto=Oggetto
    str=""
    
    if len(nuovoOggetto)>0 then
    
    
      for i=1 to len(NuovoOggetto)
    	Carattere=""
    	Carattere = mid(Oggetto,i,1)
    	Numero = Asc(Carattere)
    	NuovoNumero = Numero+Chiave
    	NuovoCarattere= Chr(NuovoNumero)
    	str=str & NuovoCarattere
        if i<len(nuovoOggetto) then str = str & "." 
    
      next
    else
      flag=1
    end if  
    
    response.write str

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    perfetto...

    ora dato che io devo prevedere anche la possibilità di tornare allo stato originale delle cose faccio al di fuori del ciclo for e quindi subito dopo il next...

    OggettoFinale = str & "." & CodiceChiave

    ora questo cosa mi significa mi significa che la stringa nel suo ultimo carattere avrà un simbolo che andandolo a decodificare mi darà un valore numerico che è quello da me utilizzato x codificare infatti

    codicechiave è nato così: CodiceChiave=Chr(Chiave)

    ora per favore seguitemi nel ragionamento... io prendo la stringa "OggettoFinale" e per tornare al principio eseguo tecnicamente il rpocesso inverso se non altro però che prima da quella stringa io estraggo l'ultimo carattere e quindi:

    nella procedura di decodifica avremo:

    CodiceChiave right(OggettoFinale,1,1)

    prelevo il carattere estremo a destra ossia l'ultimo della stinga, quello che contiene il carattere di codifica.
    chiave = Asc(codicechiave)

    in questo modo riporto chiave al suo valore numerico originale e poi non mi resta che fare quello che ho fatto per la codifica ma sottraendo invece che sommando.

    sono in linea con la logica del funzionamento giusto?

    Linux Inside

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.