30 messaggi dal 08 febbraio 2006
Ciao a tutti. Vi sottopongo il mio problema:

vorrei far in modo che, data una classifica archiviata in un file di testo, fatta di tante righe con KEY UNIVOCA, NOME COGNOME, PUNTEGGIO, l'utente inserisca la KEY, la pagina ASP scandisca il file di testo, e se trova corrispondenza mi stampa a video la riga corrispondente, quindi con nome, cognome e punteggio..
Ho iniziato così:

<%
    session("controllo_classifica") = request.form("controllo_classifica")

    'procedura di controllo se patente inserita
    'è presente nella graduatoria finale
    
    Dim FileObject 
    Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
    nomefile = "classifica.txt" 
    
    Set controllo = FileObject.OpenTextFile(Server.MapPath(nomefile),1,False,0)
    Session("counter") = 0
      Do While controllo.AtEndOfStream <> True
        Session("counter") = Session("counter") + 1
        controllo.ReadLine
        Do While controllo.Readline = Session("controllo_classifica")
        Loop
      Loop
    controllo.close
    Set controllo = nothing                
    Set FileObject = Nothing
%>


La variabile session mi servirebbe per "intercettare la posizione in classifica", se mi riesco a far capire, cioè il numero di righe passate prima di trovare il record ricercato.

Suggerimenti?
ciao
grazie
A.
91 messaggi dal 04 gennaio 2002
Una domanda.....Perchè il file di testo?

Se proprio non vuoi usare un database per i dati, almeno usa (se non ci sono specifiche differenti) un file xml..... se cerchi ci sono topic che spiegano in maniera dettagliata sia la lettura che la scruttura dei file xml.
30 messaggi dal 08 febbraio 2006
Purtoppo il file di testo è proprio una specifica a cui devo sottostare...questioni di sicurezza della macchina su cui girerà il tutto...

credo si possa aggirare il problema trocnado la stringa che controllo.ReadLine trovo ciclando....

suggerimenti?
A.
91 messaggi dal 04 gennaio 2002
Non ho capito il doppio loop ( non è un salto di pattinaggio!!!!!)   ).
Ti ricordo che ogni volta che chiami readline legge la successiva-->
Il codice è semplice.
1)Recuperi il dato per la ricerca dal form..sessione...queelo che vuoi
2)apri il file della graduatoria e lo leggi fino al carattere di EOF
3)leggi la prima riga e valorizzi una variabile di testo dalla quale estrai le prime n lettere che conpongono il tuo codice confronti con il dato per la ricerca:
4) se uguale stampi tutta la stringa

codice:
Ipotesi i campi nel file di testo sono separati da |
<%
session("controllo_classifica") = request.form("controllo_classifica")

'procedura di controllo se patente inserita
'è presente nella graduatoria finale

Dim FileObject
dim stringa,codice
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
nomefile = "classifica.txt"

Set controllo = FileObject.OpenTextFile(Server.MapPath(nomefile),1,False,0)
Session("counter") = 0
Do While controllo.AtEndOfStream <> True
  Session("counter") = Session("counter") + 1
  stringa=controllo.ReadLine
  codice=left(stringa,(instr(stringa,"|") - 1))
  if codice=session("controllo_classifica") then 
      response.write (stringa & "<br>")
  end if
  stringa=""
  codice=""
Loop
controllo.close
Set controllo = nothing
Set FileObject = Nothing
%>

Comunque l'xml va molto molto molto meglio ( puoi fare le query in linguaggio SQL  ) e in fatto di sicurezza...........non capisco la differenza con un file di testo
Modificato da guidocaser il 28 marzo 2006 12.49 -
30 messaggi dal 08 febbraio 2006
IL doppio loop era una prova, ma mi sa proprio che hai ragione tu...assomiglia troppo ad un doppio salto del pattinaggio..

cmq provo la soluzione che hai postato tu prima, poi ti saprò dire se funziona o no...

grazie cmq anticipatamente
A.
30 messaggi dal 08 febbraio 2006
Funziona alla grande...lo sto "pettinando" un pò, ma l'idea regge alla grande...

grazie davvero

A.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.