Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    replace per inserimento presenze

    Ho realizzato un codice che da un elenco (tabellino di una partita di calcio) di giocatori riesco ad incrementare le presenze nel caso il giocatore sia stato utilizzato per la partita.

    Il problema è che quando nell'elenco il giocatore viene sostituito invece della virgola c'è un testo compreso tra le parentesi, e sia il nuovo entrato che il giocatore sostituito non vengono considerati e quindi non gli viene assegnata la presenza

    Ecco 1 esempio di tabellino:

    Belardi, Zini, De Simone, Di Sole, Sussi; Pierotti (dal 19’st Nervo), Calzi,Miceli (dal 44’st Russo), Rizzato; Corona, Sorrentino (dal 33’ st Imbriani).

    codice:
    '---------------------------
    '	Inserimento Presenze
    '---------------------------
    Dim Presenze
    Dim SPresenze
    Dim TabellinoA
    Dim TabellinoB
    TabellinoA = StrTabellinoA
    TabellinoB = StrTabellinoB
    TabellinoA = Replace(StrTabellinoA, ".", ",")
    TabellinoB = Replace(StrTabellinoB, ".", ",")
    tabAB = TabellinoA & " " & TabellinoB
    set re = new RegExp
    re.Pattern="\(dal \d{1,2}’[ps]t ([^\)]+)\)"
    re.Global=true
    re.IgnoreCase=true
    set ris=re.Execute(tabAB)
    tabAB = re.Replace(tabAB,"")
    re.Pattern="\(dal \d{1,2}’[ps]t "
    for each rr in ris
    	nome = re.Replace(rr,"")
    	tabAB = tabAB & "," & Left(nome,Len(nome)-1)
    next
    SPresenze = SPLIT(tabAB, "
    ") 
    for each Presenze in SPresenze
      nome = trim(Presenze)
      ' Aggiungo la presenza al giocatore
      strSQL= "UPDATE tb_carriera SET str_presenze=str_presenze+1 WHERE tb_carriera.str_giocatore in ((SELECT id_giocatore FROM tb_giocatori WHERE str_anno="&StrAnnata&" AND str_cognomegioc='"&nome&"'))"
      objConn.Execute(strSQL)
    next

  2. #2
    up

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ciao waitec401,

    ma alla fine da una stringa tipo
    Belardi, Zini, De Simone, Di Sole, Sussi, Pierotti (dal 19’st Nervo), Calzi, Miceli (dal 44’st Russo), Rizzato, Corona, Sorrentino (dal 33’st Imbriani)
    vuoi ricavare tutti i nomi compresi quelli dentro le parentesi?
    così?
    codice:
    tabAB = "Belardi, Zini, De Simone, Di Sole, Sussi, Pierotti (dal 19’st Nervo), Calzi, Miceli (dal 44’st Russo), Rizzato, Corona, Sorrentino (dal 33’st Imbriani)."
    tabAB = Replace(tabAB,".",",")
    if Right(tabAB,1)="," then tabAB = Left(tabAB,Len(tabAB)-1)
    Response.Write tabAB & "<hr>"
    set re = new RegExp
    re.Pattern="\(dal \d{1,2}’[ps]t ([^\)]+)\)"
    re.Global=true
    re.IgnoreCase=true
    tabAB = re.Replace(tabAB,", $1")
    SPresenze = SPLIT(tabAB, ", ") 
    for each Presenze in SPresenze
      nome = trim(Presenze)
      ' Aggiungo la presenza al giocatore
      strSQL= "UPDATE tb_carriera SET str_presenze=str_presenze+1 WHERE tb_carriera.str_giocatore in ((SELECT id_giocatore FROM tb_giocatori WHERE str_anno="&StrAnnata&" AND str_cognomegioc='"&nome&"'))"
      objConn.Execute(strSQL)
    next

  4. #4
    così
    non funziona!!!

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    cosa non funziona? ti da errore? non fa niente?
    io ho provato questo esempio e sembra funzionare
    codice:
    tabAB = "Belardi, Zini, De Simone, Di Sole, Sussi, Pierotti (dal 19’st Nervo), Calzi, Miceli (dal 44’st Russo), Rizzato, Corona, Sorrentino (dal 33’st Imbriani)."
    tabAB = Replace(tabAB,".",",")
    if Right(tabAB,1)="," then tabAB = Left(tabAB,Len(tabAB)-1)
    Response.Write tabAB & "<hr>"
    set re = new RegExp
    re.Pattern="\(dal \d{1,2}’[ps]t ([^\)]+)\)"
    re.Global=true
    re.IgnoreCase=true
    tabAB = re.Replace(tabAB,", $1")
    SPresenze = SPLIT(tabAB, ", ") 
    for each Presenze in SPresenze
      nome = trim(Presenze)
      ' Aggiungo la presenza al giocatore
      strSQL= "UPDATE tb_carriera SET str_presenze=str_presenze+1 WHERE tb_carriera.str_giocatore in ((SELECT id_giocatore FROM tb_giocatori WHERE str_anno="&StrAnnata&" AND str_cognomegioc='"&nome&"'))"
    Response.Write strSQL & "<hr>"
      'objConn.Execute(strSQL)
    next

  6. #6
    non fa nulla,
    al posto di:

    tabAB = "Belardi, Zini, De Simone, Di Sole, Sussi, Pierotti (dal 19’st Nervo), Calzi, Miceli (dal 44’st Russo), Rizzato, Corona, Sorrentino (dal 33’st Imbriani)."


    o messo
    tabAB= (StrTabellinoA & " " & StrTabellinoB)

    che e popolata cosi'
    StrTabellinoA = TRIM(Replace(Replace(Replace(Request.Form("tabelli no_B"), "'", "''"),",","
    "),";","
    "))

    StrTabellinoB = TRIM(Replace(Replace(Replace(Request.Form("tabelli no_B"), "'", "''"),",","
    "),";","
    "))


  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    fai il replace degli apici con doppi apici, della virgola con
    e anche del punto e virgola con

    se elimini le virgole non splitta più...
    ti sei stampato a video cosa contengono quelle variabili? Hai qualcosa online da vedere?

  8. #8
    Se faccio con il tuo codice ottengo:

    - la variabile tabAB contiene la formazione:
    Mondini,Manucci, Donadoni, Iorio, Terni (dal 37'st Job), Coti, Smanio, Carotti (dal 26'st Marchesetti), Garzon, Carparelli, Prisciandaro,

    - errore:

    UPDATE tb_carriera SET str_presenze=str_presenze+1 WHERE tb_carriera.str_giocatore in ((SELECT id_giocatore FROM tb_giocatori WHERE str_anno=64 AND str_cognomegioc='Terni (dal 37'st Job)'))
    --------------------------------------------------------------------------------

    Microsoft JET Database Engine error '80040e14'

    Syntax error. in query expression 'tb_carriera.str_giocatore in ((SELECT id_giocatore FROM tb_giocatori WHERE str_anno=64 AND str_cognomegioc='Terni (dal 37'st Job)'))'.

    /gestione/aggiungi_tabellino.asp, line 105

    forse x' manca la virgola prima della parentesi?

  9. #9
    up up

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    posta il tuo codice waitec401, l'esempio che ho fatto io mi funziona

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.