Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Svuotare il buffer.

  1. #1

    Svuotare il buffer.

    Mi va il buffer in overflow, ma io non ne ho alcun bisogno. Nel senso che devo fare diverse serie dello stesso tipo di operazione.

    Supponiamo di dover fare una serie di addizioni

    1+2= 3
    5+7=12
    4+5=9

    Non ho bisogno di tenere 3, 12 e 9 nel buffer. Io 3 lo devo scrivere in tabella e lo posso tranquillamente togliere dal buffer. Poi posso iniziare l'operazione successiva nella quale il 3 non serve.

    Come si fa a svuotarlo?

  2. #2
    Trovato.

    Response.clear()

    Però non ho risolto del tutto. Nel senso che Aruba mi pone dei limiti di tempo all'elaborazione dello script. Mi sa che devo fare un'altra sottotabella che mi abbrevi i tempi dell'elaborazione.

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    normalmente il tempo di esecuzione script è settato a 90 secondi...
    che acciderbola devi fare per superare questo tempo?

  4. #4
    Ho un db di 700 elementi di due colonne di diversa lunghezza.

    La prima operazione che faccio è trovare tutte le righe della stessa lunghezza. Per es.

    COLONNA A ---COLONNA B

    12345-------------6
    123--------------45
    1234567----------54
    67890-------------A

    e riducco ad un db che ha solo due righe

    COLONNA A ---COLONNA B

    12345-------------6
    67890-------------A

    Poi tra queste righe devo scegliere quella con gli elementi + simili a quelli richiesti dall'utente.
    Ossia se l'utente mette:

    12390-------------X----ha 3 elementi con la 1a colonna e 2 con la 2a. Esce la 1a
    67812-------------X----ha 3 elementi con la 2a colonna e 2 con la 1a. Esce la 2a.

    Quindi prendo un elemento per volta della della richiesta dell'utente e lo confronto con ognuno dei due e poi prendo quello con + elementi in comune.

    Chiedo troppo?

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Stai percorrendo contemporaneamente mille strade diverse (e aprendo mille discussioni) ...
    Originariamente inviato da br1
    ma la ricerca dev'essere posizionale?
    e perche' ridefinisci la variabile del ciclo all'interno del ciclo stesso?
    perche' aggiungi 1 e non il numero di occorrenze trovate?
    perche' parli di cifre e non di caratteri?

    in definitiva: esattamente cosa stai cercando di fare?
    Se riuscissi a spiegarci esattamente quali sono i dati di partenza e le regole da applicare ti si potrebbe perfino riuscire ad aiutare
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Originariamente inviato da br1
    Stai percorrendo contemporaneamente mille strade diverse (e aprendo mille discussioni) ...

    Se riuscissi a spiegarci esattamente quali sono i dati di partenza e le regole da applicare ti si potrebbe perfino riuscire ad aiutare
    Il mio problema è questo:

    Ho un db con 700 elementi.

    Utenti che inseriscono valori che possono non essere nel db.

    Devo trovare il valore nel db che + assomiglia a quello inserito dall'utente.

    Per esempio. Nel db ho:

    100
    200
    300
    400

    ecc.

    se l'utente inserisce 239 deve apparire 200;
    se inserisce 269 deve apparire 300.

    Non si parla di numeri però ma di simboli. Quindi non si devono manovrare numeri ma stringhe.

    Allora, prima faccio una tabella con tutte le stringhe della stessa lunghezza di quella richiesta dall'utente (fondamentale perchè la lunghezza cambia la soluzione).

    Restano una 30na di elementi del database in una nuova tabella.
    Poi confronto ogni carattere della stringa dell'utente con ogni stringa del db rimasto.

    DI OGNI CARATTERE DELLA STRINGA PROPOSTA DALL'UTENTE VA VERIFICATA LA PRESENZA O L'ASSENZA IN OGNI ELEMENTO DEL DATABASE PER VEDERE QUALE ELEMENTO HA + CARATTERI IN COMUNE.

    Faccio un esempio

    ho nel database

    akjxxx
    aq9xx
    ak75x

    L'utente inserisce Kxxxx, il db deve fornire la soluzione AKJxx perchè ha 4 elementi in comune con la stringa messa dall'utente.

    Spero di essere stato chiaro.

    Altrimenti mi scuso. La gran mole di messaggi deriva dalla mia inesperienza; spesso metto messaggi per problemi assolutamente banali come quello del buffer, e dal provare diverse strade per risolvere lo stesso problema.

    Qualcuno l'avrei anche cancellato. Ma dopo 30 secondi il messaggio è bloccato e non si può nemmeno editarlo.

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Sinceramente io non farei due cicli... semplicemente scorrerei tutta la tabella operando i controlli:

    non la stessa lunghezza? leggi un altro;
    scorro i caratteri della stringa dell'utente:
    - carattere esiste? aggiungo 1 al contatore ed elimino il carattere trovato nella stringa letta dal db
    - se il contatore > di quello memorizzato:
    - - sostituisco elemento trovato a quello memorizzato

    esempio minimale, didatticamente prolisso ove occorre, da personalizzare
    codice:
    <% 
    adoCon = apriDatabase() ' metti la tua
    
    len_trovato = 0
    elem_trovato = 0
    ' acquisisco cercato 
    cercato = lcase("Kxxxx") ' metti la tua
    lungo = Len(cercato)
    
    ' leggo il recordset -> rs
    Set rs = adoCon.execute("select campo from tabella") ' metti la tua query
    Do Until rs.eof
    	campo = Trim(LCase(rs("campo"))) ' personalizza
    
    	contatore = 0
    	If Len(campo) = lungo Then ' gli altri li scarto
    	
    		For i = 1 To lungo
    			c = Mid(cercato, i, 1)
    			l = InStr(campo, c)
    			If l > 0 Then
    				contatore = contatore + 1
    				campo = Left(campo, l - 1)&Mid(campo, l + 1)
    			End If
    		Next
    
    		If contatore > len_trovato Then
    			len_trovato = contatore
    			elem_trovato = rs("campo") ' personalizza
    		End If
    
    	End If
    	rs.movenext
    Loop
    
    chiudiCon() ' la tua...
    
    response.write len_trovato&" "&elem_trovato
    %>
    ps: meno di 2 secondi per trattare 217713 records
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Ti ringrazio tanto. Il programma funziona bene ora.

    C'è solo un piccolo inconveniente.

    Non ho capito perchè tra due elementi

    AKT9xxxx

    e

    ATxxK9xx

    che presentano quindi un pari numero di occorrenze, sceglie il secondo.

    Non è una questione di sequenza del database. Nel senso che è scelto sempre il secondo in qualunque posizione lo metta.

    Qual è la discriminante?

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.