salve vorrei fare una cosa ma non so se è possibile con asp,ho delle ricette scritte ognuna su un txt diverso, vorrei fare una pagina dove vi sono le ricette dello stesso tipo come tutte quelle fatte con l'uva, e legge le ricette su un txt o nella cartella dove sono messe tutte le ricette dando dei link, cliccando sul link si apre la pagina ke si carica in automatico il txt richiesto nel link, e sotto i collegamenti sempre con le ricette collegati ma che non sono stati aperti nella stessa pagina, questo si può fare?o si deve usare un db?preferirei la prima possibilità in quanto di più facile utilizzo da parte del cliente in quanto scrive soltanto un semplice txt, vorrei avere informazioni, grazie in anticipo
3.122 messaggi dal 16 maggio 2002
Se proprio vuoi mantenere dei file di testo, l'unica soluzione penso sia aprire sequenzialmente tutti i files di ricette e cercare all'interno il pattern di ricerca. Ma le prestazioni così se ne vanno in vacanza (per non dire di peggio  ).
Se poi non vuoi proprio organizzarle in un database potresti provare a usare xml.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
61 messaggi dal 23 giugno 2004
secondo me dovresti fare corrispondere al nome di ciascun file il tipo di ricetta contenuta, creando così una sorta di codice che puoi utilizzare in fase di ricerca.
Ad esempio, prevedendo non più di 1000 ricette con l'uva, potresti numerare i file così:
UVA000.TXT
UVA001.TXT
UVA002.TXT
e così via
In tal modo, per prendere tutte le ricette con l'uva basta aprire con un ciclo tutti i file che contengono UVA nel nome. Così dovresti fare un ciclo da 0 a 999, ma potresti migliorare l'algoritmo utilizzando un ulteriore file, ad esempio

UVA_N.TXT che contiene il numero di ricette

In tal modo, prendendo per prima cosa tale numero, il ciclo si limiterebbe al numero di file effettivamente presenti, con un notevole risparmio.
L'algoritmo non è difficile da implementare, ma mi sembra eccessivamente rigido.

Secondo me la cosa migliore è creare un database con almeno due tabelle: una per le ricette e una per i possibili tipi di ricette; questo approccio oltre a migliorare le prestazioni può offrire svariate possibilità, ad esempio un motore di ricerca che trovi tutte le ricette che contengono una qualunque parola chiave, conteggi automatici ecc

Sinceramente non capisco perché l'uso di file di testo dovrebbe essere più facile per il cliente, a mio avviso è esattamente il contrario, dal momento che per l'inserimento nel DB la cosa può essere gestita da te tramite una pagina asp, che può offrire un ambiente più confortevole, e il testo può essere convertito in html con attributi tipo grassetto, corsivo, ecc, elementi di formattazione tipo br o pargrafi, mentre nel primo caso il cliente è limitato dalla struttura nuda e rigida del puro testo (e tieni conto che devi sempre gestire la possibilità che il tuo cliente inserisca caratteri critici tipo apici singoli e doppi che potrebbero creare problemi quando vai a mettere il testo in una stringa). Qual è il vantaggio per il cliente?
ciao potresti spiegarmi il fatto dei pattern per le ricerche? beh xml non l'ho conosco, non saprei da dove cominciare, cmq grazie della risposta
3.122 messaggi dal 16 maggio 2002
Ad esempio se il tuo pattern di ricerca è "panna" dovresti aprire tutti i files di testo e verificare che all'interno vi sia la stringa "panna". Ma così è terribilmente dispendioso in termini di prestazioni.
Fidati, crea un tuo database di ricette, dopotutto non è mica complicato. Bastano due tabelle: una per le ricette, l'altra per le associazioni ricette-ingredienti (quella su cui verrà eseguita la ricerca).

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
11.886 messaggi dal 09 febbraio 2002
Contributi

UVA000.TXT
UVA001.TXT
UVA002.TXT

il problema è che una ricetta non può contenere solo uva, dovresti creare tanti duplicati dello stesso file di testo rinominandolo tante volte quante sono gli ingredienti.

Usa un database, sarà senz'altro tutto più ordinato e veloce.

Enjoy learning and just keep making
mi potete aiutare ad impostare il db? dovrei fare tante tabelle quanto i tipi d ricetta, antipasti, bevande, contorni, salse primi secondi dolce ecc ecc e da una parte un'altra tabella con gli ingredienti? oppure creare 3 tabelle, una ricette dove vi è la ricetta, una ingredienti dove ci sono gli ingredienti e un'altra genere dove vi è messo primo secondo ecc ecc? come dovrei fare per mettere gli ingredienti per una ricetta? quanti campi dovrei usare?nel secondo modo sia + facile per le ricerche? spero di essermi spiegato in quello che ho chiesto ciao
61 messaggi dal 23 giugno 2004
E' senz'altro vero quello che dice BrightSoul, il metodo che avevo proposto non si presta ad una ricerca per qualsiasi ingrediente, tutt'al più potrebbe descrivere una classificazione sommaria per genere, tipo primi, tortesalate, secondi, piattiunici, ecc.

Provo ad abbozzare un DB capace di consentire agevolmente ricerche incrociate per genere, ingredienti e testo contenuto nella ricetta

Una tabella
tricette contenente:
- IDRicetta (contatore numerico autoincrementante)
- IDRicettaClass (numerico, serve per il colegamento alla tabella tricetteclass che contiene i generi)
- Testo (campo di testo che contiene il contenuto della ricetta)

Una tabella
tricetteclass contenente:
- IDRicettaClass (contatore numerico autoincrementante)
- RicettaClass (testo, descrive il tipo di ricetta)

Poi servirebbe una tabella per tutti i possibili ingredienti ed una tabella di collegamento che associa l'ingrediente ad una ricetta particolare. Si potrebbe aggiungere una ulteriore tabella per le unità di misura, in modo che ad ogni ingrediente si possa associare la sua unità di misura, ad esempio

uova - N. 3
farina - grammi 100
acqua - litri 1

Per questa struttura occorre

Una tabella
tingredienti contenente:
- IDIngrediente (contatore numerico autoincrementante)
- IDMisura (numerico, serve per il colegamento alla tabella tmisure)
- Ingrediente (testo, descrive l'ingrediente)

Una tabella
tmisure contenente
- IDMisura (contatore numerico autoincrementante)
- Misura (testo, descrive la misura)

Una tabella di collegamento
tingredientiricetta contentente
- IDRicetta
- IDIngrediente
- Quantità

Per popolare il DB occorre in primo luogo creare l'elenco delle unità di misura, che come si è detto possono essere litri, grammi, N (cioè numero), ecc.
Poi creare l'elenco dei possibili ingredienti, con associate le unità di misura.

A questo punto, aggiungere un ingrediente ad una ricetta significa creare un record nella tabella tingredientiricetta con l'id della ricetta, l'id dell'ingrediente e la quantità prevista. Ad ogni ricetta sarà associata la lista dei record di tingredientiricette che contengono l'id della ricetta stessa, ovvero la lista degli ingredienti.

Per quanto riguarda le ricerche:
Cercare le ricerche che contengono un ingrediente il cui id sia contenuto nella variabile Chiave

"SELECT DISTINCTROW IDRicetta FROM tingredientiricetta WHERE IDIngrediente ="+Chiave

Cercare tutte le ricette di un certo genere il cui id sia contenuto nella variabile Chiave

"SELECT * FROM tricette WHERE IDRicettaClass ="+Chiave

Cercare le ricette che contengono una determinata parola, contenuta nella variabile Chiave

"SELECT * FROM tricette WHERE Testo LIKE '%"+Chiave+"%'"
In quest'ultimo caso Chiave sarà una stringa.

Penso che questa struttura sia sufficientemente efficiente

In alternativa, una soluzione non altrettanto efficiente, ma più semplice, potrebbe essere quella di non creare un database di ingredienti e scrivere direttamente gli ingredienti nel testo della ricetta. La ricerca per ingrediente può essere effettuata con un LIKE come per qualsiasi altra stringa di testo. In questo caso però chi inserisce le ricette potrebbe scrivere gli ingredienti in modo diverso (ad esempio, potrebbe scrivere 1 uovo o 3 uova) o sbagliare a scrivere, per cui alcune ricette potrebbero essere indebitamente escluse dalla ricerca. Creando la lista degli ingredienti invece si è costretti a scegliere gli ingredienti dalla lista senza possibilità di errore.

PS
Ho scritto le stringhe di interrogazione supponendo di usare JScript come linguaggio, in VBScript se non erro i + dovrebbero diventare &

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.