Visualizzazione dei risultati da 1 a 7 su 7

Discussione: a

  1. #1

    a

    Nessuno sa dirmi come posso comprimere delle stringhe attraverso il codice?

  2. #2
    Complimenti per il titolo.
    PS. Comunicazione di servizio, non ho capito una ceppa neanche della domanda.

  3. #3
    Scusa ma ho sbagliato a scrivere il titolo!
    Il mio problema è questo:

    Ho una form gigantesca e devo spedire i suoi dati ad una altra pagina, fin qui tutto ok.
    Quello che voglio fare io è passare questi dati ad una funzione di compressione (non so però come farla) che li comprime e la spedisce.
    La pagina che riceve poi farà il procedimento inverso.

    Grazie

  4. #4
    Ma non ho capito che vuoi comprimere! :master:
    Se un form contiene "ciao come va oggi", non puoi che passare "ciao come va oggi"

  5. #5
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    Dovresti fare una funzione javascript lato client per comprimere le informazioni e una lato server per decomprimerle... la domanda è: ne vale la pena ? Anche perchè poi dubito che riuscirai ad utilizzare l'oggetto request.form ...
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

  6. #6
    E' assolutamente possibile comprimere dei campi di testo e in alcuni casi serve veramente tanto.
    Logicamente non potrai più gestire la request.form , ma dovrai crearti una funzione ben specifica.
    Tuttavia ti posso assicurare che creare una funzione che comprime del testo è un qualcosa di allucinante da fare, non tanto per la complessità, ma per la logica di compressione.
    Ciauu
    Matrix è ovunque, è intorno a noi, anche adesso nella stanza in cui siamo. È quello che vedi quando ti affacci alla finestra o quando accendi il televisore. L'avverti quando vai al lavoro, quando vai in chiesa, quando paghi le tasse. È il mondo che ti è stato messo dinanzi agli occhi, per nasconderti la verità.

  7. #7
    Io e il mio collega abbiamo fatto una cosa malatissima che x poco non funziona!
    Vi posto il codice, secondo me è una cosa utilissima perchè oltre a comprimere una qualsiasi stringa la cripta pure (E' UNA FIGATA)
    Vi spiego come funziona e qual'è il problema.

    Allora, il primo file è questo:

    (a.asp) Quando faccio buf=funczippa(2,stringa) chiamo la funzione per comprimere la stringa e poi la metto nel campo nascosto della form
    -------------------------------------------------------------------



    <%
    stringa = "PROVA PER VERIFICARE UNA STRINGA MOOOOLTO LUNGA E PER VEDERE QUANTI CARATTERI SERVONO PER CONTROBILANCIARE LA LUNGHEZZA DI UN FORM MULTIPART"

    buf=funczippa(2,stringa)
    %>
    <form action="b.asp" method="post" enctype="text/plain">
    <input type="hidden" name="jj" value="<%response.binarywrite buf%>">
    <input type="submit">
    </form>
    --------------------------------------------------------------------

    La funzione fa questo:
    SE LE VIENE PASSATO 1 NEL PARAMETRO OPERAZIONE DECOMPRIME LA STRINGA
    ALTRIMENTI LA COMPRIME.
    X COMPRIMERLA NON FA NIENT'ALTRO KE LEGGERE OGNI CARATTERE DELLA STRINGA ORIGINALE E SOSTITUIRLO CON LA SEQUENZA DI BIT RELATIVA NELLA MATRICE INIZIALE.
    ALLA FINE DI QUESTO CICLO HO UNA STRINGA DI 1 E 0 KE POI CONVERTO IN BYTE.
    E' QUESTA STRINGA KE VIENE SPEDITA (I CARATTERI KIARAMENTE SONO ILLEGIBILI)
    NELLA PAGINA B.ASP RICEVO LA STRINGA E RICHIAMO LA FUNZIONE FUNCZIPPA PASSANDOGLI COME OPERATORE 1 PER DECOMPRIMERE.
    QUI NON FACCIO NINET'ALTRO KE LEGGERE OGNI CARATTERE BINARIO, TRASFORMARLO IN CARATTERE X RECUPERARE LA STRINGA COMPRESSA IN FORMATO LEGGIBILE.
    PER ULTIMO LEGGO QUESTA STRINGA, LA CONVERTO IN UNA STRINGA DI 1 E 0 E CONTROLLO NELLA MATRICE X FARE LE SOSTITUZIONI CON LE LETTERE ORIGINALI.

    E' UN PO' UN MACELLO MA SPERO DI ESSERMI UN PO' SPIEGATO.
    IL PROBLEMA E' CHE FUNZIONA NON SEMPRE PERCHE' QUALCHE CARATTERE LO PERDE O LO SOSTIUTISCE IN QUALCHE MODO.

    PROVATELA, SE RIUSCIAMO A FARLA FUNZIONARE SARA' UTILISSIMA!

    CIAO A TUTTI!


    FUNZIONE FUNCZIPPA:

    E' una funzione abbastanza malata che comprime e decomprime in base al primo parametro che le viene passato.

    function funczippa(operazione,stringa)
    dim stringabinaria, stringanorm, stringabytes, byteletto, carattere
    dim codici(44,2)
    codici(1,1) = "¤": codici(1,2) = "0000"
    codici(2,1) = "|": codici(2,2) = "0010"
    codici(3,1) = "3": codici(3,2) = "0100"
    codici(4,1) = "0": codici(4,2) = "0110"
    codici(5,1) = "1": codici(5,2) = "00010"
    codici(6,1) = "7": codici(6,2) = "00011"
    codici(7,1) = "2": codici(7,2) = "00110"
    codici(8,1) = "4": codici(8,2) = "00111"
    codici(9,1) = "5": codici(9,2) = "01010"
    codici(10,1) = "6": codici(10,2) = "01011"
    codici(11,1) = "8": codici(11,2) = "01110"
    codici(12,1) = "9": codici(12,2) = "01111"
    codici(13,1) = "A": codici(13,2) = "11000"
    codici(14,1) = "E": codici(14,2) = "100000"
    codici(15,1) = "B": codici(15,2) = "100001"
    codici(16,1) = "C": codici(16,2) = "100010"
    codici(17,1) = "D": codici(17,2) = "100011"
    codici(18,1) = "T": codici(18,2) = "100100"
    codici(19,1) = "F": codici(19,2) = "100101"
    codici(20,1) = "G": codici(20,2) = "100110"
    codici(21,1) = "Q": codici(21,2) = "100111"
    codici(22,1) = "R": codici(22,2) = "101000"
    codici(23,1) = "L": codici(23,2) = "101001"
    codici(24,1) = "M": codici(24,2) = "101010"
    codici(25,1) = "N": codici(25,2) = "101011"
    codici(26,1) = "O": codici(26,2) = "101100"
    codici(27,1) = "P": codici(27,2) = "101101"
    codici(28,1) = "S": codici(28,2) = "101110"
    codici(29,1) = "U": codici(29,2) = "110010"
    codici(30,1) = "V": codici(30,2) = "110011"
    codici(31,1) = "W": codici(31,2) = "110100"
    codici(32,1) = "X": codici(32,2) = "110101"
    codici(33,1) = "Y": codici(33,2) = "110110"
    codici(34,1) = "Z": codici(34,2) = "110111"
    codici(35,1) = " ": codici(35,2) = "111000"
    codici(36,1) = ".": codici(36,2) = "111001"
    codici(37,1) = "/": codici(37,2) = "111010"
    codici(38,1) = "+": codici(38,2) = "111011"
    codici(39,1) = "*": codici(39,2) = "111100"
    codici(40,1) = "-": codici(40,2) = "111101"
    codici(41,1) = "H": codici(41,2) = "111110"
    codici(42,1) = "I": codici(42,2) = "111111"
    codici(43,1) = "K": codici(43,2) = "1011110"
    codici(44,1) = "J": codici(44,2) = "1011111"

    '----------------------- DECOMPRESSIONE -----------------------
    if operazione = 1 then

    For i = 1 To lenB(stringa)
    stringabytes = stringabytes & chr(ascB(midB,stringa,i,1)))
    Next


    for i = 1 to len(stringabytes)
    byteletto = asc(mid(stringabytes,i,1))

    '-- LEGGO IL CODICE ASCII DI OGNI CARATTERE E LO CONVERTO IN BINARIO -'-- ALLA FINE AVRO' UNA STRINGONA BINARIA -----------

    if byteletto < 128 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 128
    end if
    if byteletto < 64 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 64
    end if
    if byteletto < 32 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 32
    end if
    if byteletto < 16 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 16
    end if
    if byteletto < 8 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 8
    end if
    if byteletto < 4 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 4
    end if
    if byteletto < 2 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 2
    end if
    if byteletto < 1 then
    stringabinaria = stringabinaria &"0"
    else
    stringabinaria = stringabinaria &"1"
    byteletto = byteletto - 1
    end if

    next


    for i = 1 to len(stringabinaria)
    for ii = 44 to 1 step -1
    if mid(stringabinaria,i,len(codici(ii,2))) = codici(ii,2) then
    stringanorm = stringanorm & codici(ii,1)
    i = i + len(codici(ii,2)) - 1
    exit for
    end if
    next
    next

    else
    '---------------- QUI INVECE COMPRIMO LA STRINGA -------------------
    stringanorm = cstr(stringa)

    '- OGNI CARATTERE LO SOSTITUISCO CON LA PRIMA COLONNA DELLA MATRICE--

    for i = 1 to len(stringanorm)
    for ii = 1 to 44
    if mid(stringanorm,i,1) = codici(ii,1) then
    stringabinaria = stringabinaria & codici(ii,2)
    exit for
    end if
    next
    next

    ' -- AGGIUNGO GLI ZERI PER AVERE UNA STRINGA DI 1 E 0 MULTIPLA DI 8
    for i = 1 to 8
    if len(stringabinaria) mod 8 <> 0 then
    stringabinaria=stringabinaria &"0"
    end if
    next

    ' CONVERTO 8 BIT ALLA VOLTA E MI COSTRUISCO LA STRINGA IN VERO BINARIO
    for i = 1 to len(stringabinaria) step 8
    car=ChrB(AscB(chr(128*cint(mid(stringabinaria,i,1) )+64*cint(mid(stringabinaria,i+1,1))+32*cint(mid(s tringabinaria,i+2,1))+16*cint(mid(stringabinaria,i +3,1))+8*cint(mid(stringabinaria,i+4,1))+4*cint(mi d(stringabinaria,i+5,1))+2*cint(mid(stringabinaria ,i+6,1))+1*cint(mid(stringabinaria,i+7,1)))))

    stringabytes = stringabytes & car

    Next

    end if

    if operazione = 1 then funczippa = stringanorm else funczippa = stringabytes
    end function

    %>


    -----------------------------------------------------------------
    Questo è l'ultimo file

    (B.ASP)

    <%
    'CALCOLO QUANTI BYTE LA PAGINA HA RICEVUTO
    ByteCount = Request.TotalBytes

    'VETT_BYTE E' UN VETTORE DI BYTE KE CARICO COL METODO BINARYREAD
    dim vett_byte
    vett_byte = Request.BinaryRead(ByteCount)

    Response.Write funczippa(1,vett_byte)
    %>

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.