Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Estrarre stringa

  1. #1
    Utente di HTML.it L'avatar di Utente
    Registrato dal
    Dec 2005
    Messaggi
    197

    Estrarre stringa

    Ragazzi devo estrarre da un file per ogni riga il valore category_id

    La struttura di ogni riga è la seguente:

    codice:
    http://www.sito.eu/list.asp?pages=details&page=shop&category_id=6810&option=zoom&item=55
    ho utilizzato le funzioni su stringhe Len, Left, Mid, Right, ma dato che la lunghezza dei vari valori dei parametri riportati nei link cambia, non ho ottenuto il risultato voluto come posso fare?

    Grazie

  2. #2
    codice:
    <%
    
    stringa="http://www.sito.eu/list.asp?pages=details&page=shop&category_id=6810&option=zoom&item=55"
    
    pos_catid=instr(stringa,"category_id=")+12
    pos_end=instr(pos_catid,stringa,"&")
    
    id=mid(stringa, pos_catid, pos_end-pos_catid)
    
    response.write id
    
    %>
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    codice:
    Dim xStart, xStop, xLen, str, id
    str = "http://www.sito.eu/list.asp?pages=details&page=shop&category_id=6810&option=zoom&item=55"
    xStart = InStr(1, str, "category_id=")
    xStop  = InStr(xStart, str, "&")
    
    xLen = Len(str)
    If xStop < 0 Then xStop = xLen
    
    id = Mid(str, xStart, xStop-xStart)
    
    Response.Write (id)
    prova questo, non l'ho testato ma al limite non è difficile adattarlo se contiene qualche errore di conteggio

    xxx

  4. #4
    codice:
    function estraiValore(riga, variabile)
    if inStr(riga,"?") > 0 then
      riga = split(riga,"?")
      qString =riga(1)
      if inStr(qString,"&") > 0 then
        coppie = split(qString,"&")
        for i = 0 to uBound(coppie)
          tempCoppia = split(coppie(i),"=")
            if tempCoppia(0) = variabile then
              estraiValore = tempCoppia(1)
              exit for
            end if
        next
      elseIf inStr(qString,"=") > 0 then
        tempCoppia = split(qString,"=")
         if tempCoppia(0) = variabile then
            estraiValore = tempCoppia(1)      
          end if
      end if
    end if
    end function
    
    a = "http://www.sito.eu/list.asp?pages=details&page=shop&category_id=6810&option=zoom&item=55"
    b = "category_id"
    response.write estraiValore(a, b)

  5. #5
    Utente di HTML.it L'avatar di Utente
    Registrato dal
    Dec 2005
    Messaggi
    197
    Grazie ragazzi siete stati gentilissimi, nel frattempo avevo risolto così:

    codice:
    <%
    Function estraiNumero(strIn)
      dim strOut, strTemp
      strOut = ""
      strTemp = ""
      For i = 1 To Len(strIn)
        strTemp = Mid(strIn, i, 1)
        If isNumeric(strTemp) Then
          strOut = strOut & strTemp
        End If
      Next
      estraiNumero = strOut
    End Function
    %>
    
    <%
    elTempLine(9) = estraiNumero(Left(elTempLine(5),115))
    %>
    Adesso do comunque un'occhiata ai vostri preziosi consigli.

    Grazie

  6. #6
    Originariamente inviato da Utente
    Grazie ragazzi siete stati gentilissimi, nel frattempo avevo risolto così:

    codice:
    <%
    Function estraiNumero(strIn)
      dim strOut, strTemp
      strOut = ""
      strTemp = ""
      For i = 1 To Len(strIn)
        strTemp = Mid(strIn, i, 1)
        If isNumeric(strTemp) Then
          strOut = strOut & strTemp
        End If
      Next
      estraiNumero = strOut
    End Function
    %>
    
    <%
    elTempLine(9) = estraiNumero(Left(elTempLine(5),115))
    %>
    Adesso do comunque un'occhiata ai vostri preziosi consigli.

    Grazie
    un tantinello fragile e troppo elaborato come metodo per fare ciò che ti serve
    xxx

  7. #7
    Originariamente inviato da Alethesnake
    un tantinello fragile e troppo elaborato come metodo per fare ciò che ti serve
    Già fatto.

  8. #8
    Originariamente inviato da Alethesnake
    un tantinello fragile e troppo elaborato come metodo per fare ciò che ti serve


    vabbeh se è per questo siamo tutti dei pesci lessi e dovevamo usare le regexp se volevamo robustezza
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Originariamente inviato da Mems
    Già fatto.
    ehm.. non ho capito

    Originariamente inviato da Santino83_02
    vabbeh se è per questo siamo tutti dei pesci lessi e dovevamo usare le regexp se volevamo robustezza
    no, le regexp non c'entrano, si poteva fare in tanti modi, ma la mia "critica" era rivolta ad altro. da quel che si vede (manca comunque la parte di definizione/valorizzazione degli array utilizzati) lui scorre tutta la stringa carattere per carattere e tutte le volte che trova un numero lo concatena in una nuova stringa.. poi per evitare che che venga concatenato anche il secondo valore numerico contenuto nella querystring passa arbitrariamente (almeno a quanto si vede) una stringa mozzata con left. questo secondo me è un tantinello troppo elaborato per lo scopo che si deve raggiungere, senza parlare della fragilità che mi pare evidente se ho ben interpretato il procedimento.
    xxx

  10. #10
    ma la mia funzione non vi piace?

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.