Newsgroup: it.comp.www.asp
Titolo: sul "response.write"

Ciao a tutti,
ho bisogno della seguente informazione:
devo far visualizzare a video solo le prime due righe di una stringa che è
più lunga.
Qualcuno sa come posso fare?
Cerco di spiegarmi meglio.
Ho fatto la connessione ad un database. Con il response.write vorrei
stampare a video solo i primi caratteri di un record e poi cliccandoci sopra
si apre la pagina descrittiva in dettaglio.....
Mi potete aiutare?
Riesco a fare tutto tranne il visualizzare solo i primi caratteri....che ne
so....la prima riga.....fino al primo punto....mbho???
Help!
Grazie!
kikka

 punto....mbho???
devi parserizzare con una funzione il campo che ti ritorna la striga...
fissando delle regole... epr esmpio i primi 100 caratteri.. oppure
intercetti il primo punto con intr... etc...
-- 
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
Se le aziende pensano che i loro mercati online siano gli stessi che
guardavano le loro pubblicità in televisione, si stanno prendendo in
giro da sole

per visualizzare un tot numero di caratteri puoi utilizzare un
STRINGA = "Ciao a tutti"
CaratteriDaVisualizzare = 2
response.write left(STRINGA,CaratteriDaVisualizzare)
e ti visualizzera' un "Ci". aumentando il numero della variabile poi saranno
stampate piu' lettere
altrimenti puoi scorrere la frase fino ad un eventuale VBcrlf (a capo),
tipo...
TotalLenght = len(STRINGA)
For Scan = 1 to TotalLenght
    CurrentLetter = mid(STRINGA,Scan,1)
    if CurrentLetter = VBcrlf then
        exit for
    else
        StringToPrint = StringToPrint & CurrentLetter
    end if
next
ciao
--------------------------
Luca Restifo
Lu...@Restifo.it
www.dvara.net
--------------------------

so....la prima riga.....fino al primo punto....mbho???
se vuoi un numero fisso di caratteri (o meglio, *non piů* di un numero
fisso di caratteri) puoi usare, come certamente avrai fatto, left().
se vuoi beccare tutto fino al primo punto puoi usare split e prendere
il primo elemento dell'array che ottieni:
dim arrS
arrS = split(rst("campo"), ".")
response.write arrS(0) & "."
il punto come vedi viene aggiunto "a mano".
per essere sicuro di metterlo solo se serve e di non metterlo dove non
c'č potresti fare una cosa del genere:
dim arrS
arrS = split(rst("campo"), ".")
response.write left(rst("campo"), len(arrS(0)) + 1))
non ho testato, ho scritto a braccio.
ci sarebbe il problema dei puntini di sospensione...  ma questo viene
lasciato al lettore come utile esercizio.

 piů lunga.


 Qualcuno sa come posso fare?
L'ho utilizzata tempo fa!
function tronca(testo, lunghezza)
  if lunghezza>len(testo) then
    tronca = testo
  else
    dim spazio
    spazio = instrrev(testo, " ", lunghezza)
    if spazio=0 then spazio = lunghezza
    tronca = left(testo, spazio-1) & "..."
  end if
end function
Saluti. Carlo.
--
Per rispondere via e-mail
togliere TOGLIQUESTO dall'indirizzo.
E-mail: 
TOGLIQUEST...@tiscalinet.it
Foglio Excel sulle tariffe telefoniche
Web I : 
http://web.tiscalinet.it/carlonike
    II: 
http://dadacasa.supereva.it/carlo_nike/
Scrivi il senso dei tuoi messaggi già nell'oggetto,
sarà più facile ottenere le risposte che cerchi.

 il primo elemento dell'array che ottieni:
 >
 > dim arrS
 >
 > arrS = split(rst("campo"), ".")
 >
 > response.write arrS(0) & "."
E perchč andare a sprecare memoria con un array quando non serve?
Ti basta cercare il primo punto con InStr e poi prendere la stringa con 
un Mid ;)
punto = InStr(rst("campo"), ".")
response.write(Mid(rst("campo"), 1, punto))
L'ho scritto su 2 righe per chiarezza ma si puň tranquillamente mettere 
tutto in una ;)
Naturalmente questo implica che nel campo esista almeno un punto. Se non 
c'č dovresti fare un controllo:
If InStr(rst("campo"), ".") > 0 Then
   response.write(Mid(rst("campo"), 1, InStr(rst("campo"), ".")))
End If
ciao
-- 
Kappa [co-mod ICWA]
kappa(at)
webngo.net
www.webngo.net
www.filmscoop.it

End If
ma in questo modo fai lavorare di piů il processore...

 ma in questo modo fai lavorare di piů il processore...
e chi lo dice, creando un array splittando una stringa il processore ha 
+ carico che utilizzare 2 funzioni :)
senza cintare poi che l'array che hai creato lo devi eliminare poi con 
Erase :P


     if CurrentLetter = VBcrlf then
Ma non è Len(vbCrLf)=2?
Casomai, vbCr, oppure Mid(STRINGA,Scan,2)=vbCrLf...
o no?

+ carico che utilizzare 2 funzioni :)
scherzi a parte, sei sicuro?

 o no?
si si giusto, non avevo mai testato questa cosina.
comunque o 2 come lenght, o un "= vbCr"
ciao
---------------------
Luca Restifo
Lu...@Restifo.it
www.dvara.net
---------------------

lbo dal portatile wrote:

diciamo che se la stringa è molto lunga forse sì, sono cmq 2 funzioni da 
eseguire. Devi tener conto che creando l'array occupi una certa quantità 
di memoria che poi devi andare a svuotare usando l'Erase, cosa che non 
fai utilizzando Mid e InStr. ;)


 ma in questo modo fai lavorare di più il processore...
non porprio... in caso di testi lunghi l'array si deve per forza riempire...
mentre nel caso di instr si ferma appena incontra il carattere marcatore e
ritorna la posizione...
quindi in senso piu' generale opterei per la soluzione "kappa" :))))


>quindi in senso piu' generale opterei per la soluzione "kappa" :))))
mmmh...  mi sa che ciavete ragione...

di memoria che poi devi andare a svuotare usando l'Erase, cosa che non 
mmmh...  premesso che è molto meglio dirgli di farlo esplicitamente,
*in teoria* non dovrebbero cancellarsi da soli all'uscita della
routine?  vabbè che dovrebbero farlo anche gli oggetti e non lo
fanno...