Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380

    ottenere solo testo limitato da parentesi

    ciao a tutti, vorrei ottenere ciò che è contenuto nelle parentesi quadre: [miocontenuto]
    Ovviamente il tutto è immerso in un testo html.
    Fino ad ora dovevo solo esaminare una occorrenza limitata da [...] e lo facevo nel seguente modo (magari pco elegante, ma funzionale):
    codice:
    txtCompleto = HTMLDecode(rs("txt")) 
      primaParte = Split(txtCompleto, "[",-1,1) 
    	    if (ubound (primaParte) > 0) then
    		miocontenuto = Split(primaParte(1), "]",-1,1) 
    		secondaParte = miocontenuto(1)
    		response.Write(primaParte(0))
    	        Response.Write(miocontenuto(0))
    	        response.Write(secondaParte)
    	    else response.Write(txtCompleto)
    	end if
    ora però vorrei esaminare più contenuti del tipo:
    [miocontenuto_uno]
    [miocontenuto_due]
    [miocontenuto_tre]

    in mdo quindi da rimpiazzarli con:
    miocontenuto_uno
    miocontenuto_due
    miocontenuto_tre

    mantenendo anche il resto del testo.

    Grazie a tutti, spero di poter trovare soluzione, allo stato attuale non mi viene in mente nulla sul come esaminare l''intero testo ed ottenere solo ciò che mi serve...
    If you think your users are idiots, only idiots will use it. DropBox

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    devi creare una matrice dove metti le stringhe parziali trovate e le posizioni inizio e lunghezza
    esempio mat(10,3) partendo da option 1
    in mat(1,1) metti la stringa trovata tra "[" e "]" la prima volta, in mat(1,2) metti la posizione del contatore del ciclo + 1 dove hai trovato la "[" e in mat(1,3) metti la lunghezza trovata facendo la differenza tra la posizione dove hai trovato la "]" e la posizione dove hai trovato la "["
    Per fare quello che vuoi fare, devi scorrere carattere per carattere il testo con un ciclo
    quando trovi la "[" devi iniziare a caricare il campo mat(X,1) .....
    quiando trovi la "]" devi incrementare l'indice X della matrice...

    quindi devi scrivere un piccolo algoritmo e poi con una Sub...routine lo usi per caricare la matrice.
    Una volta ottenuta la matrice hai le posizioni dei campi che vuoi sostituire...
    per creare naturalmente il nuovo txt completo con i nuovi valori...
    buon lavoro...
    ciao
    Vic53

  3. #3
    Ma scusa, lo stesso risultato dell'esempio che hai postato non lo ottieni semplicemente con:

    codice:
    txtCompleto = Replace(Replace(rs("txt"), "[", ""), "]", "")
    
    Response.Write (txtCompleto)
    Mi sto perdendo qualcosa?
    xxx

  4. #4
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    penso di si...da quello che ho capito io ti sei perso tutto...

    rs.txt da quello che ho capito può contenere una pagina html con dei contenuti che sono racchiusi dai caratteri delimitatori "[" e "]". I campi possono essere più di uno magari sono anche una decina e forse più e per questo bisogna dimensionare la matrice...
    poi devi sostituire nei posti giusti i valori vecchi con i nuovi...
    Questo ho capito io e tu cosa hai capito?
    Vic53

  5. #5
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    grazie ragazzi per l'interessamento, ero vicino alla soluzione e riflettendoci un pò ci sono arrivato.
    In poche parole "txtCompleto" può contenere uno, più di uno o nessun testo del tipo: [mioContenuto].
    Io voglio ottenere "txtCompleto" sostituendo "[mioContenuto]" con "mioContenuto" in modo da poterci fare qualsiasi cosa.
    Bastava un for e dei controlli in più sulla dimensione degli array...

    codice:
    txtCompleto = HTMLDecode(rs("txt")) 
    primoArray = Split(txtCompleto, "[txtCompleto",-1,1)
    if (ubound(primoArray) > 0) then
    	primaParte = Split(primoArray(0), "]",-1,1)
    	response.Write(primaParte(0))
    	for i = 1 to Ubound(primoArray)
    		mioContenuto = Split(primoArray(i), "]",-1,1)
    		if (Ubound(mioContenuto) > 0) then
    			link =mioContenuto(0)
    			txt = mioContenuto(1)
    			Response.Write(link)
    			response.Write(txt)
    		end if
    	next
    else response.Write(txtCompleto)
    end if
    Grzie
    If you think your users are idiots, only idiots will use it. DropBox

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 © 2026 vBulletin Solutions, Inc. All rights reserved.