Ciao,
data una stringa, come faccio a creare una variabile con lo stesso nome? In altre parole, come faccio a trasformare una stringa nel nome di una variabile?
grazie tante
ciao
Ciao,
data una stringa, come faccio a creare una variabile con lo stesso nome? In altre parole, come faccio a trasformare una stringa nel nome di una variabile?
grazie tante
ciao
dimenticavo... vorrei compiere anche l'operazione inversa ovvero data una variabile ottenere la stringa che rappresenta il suo nome
Non sono espertissima...però ci ho pensato.......
non puoi in qualche punto forzare il fatto che stai passando una data? dovrebbe gestirsi lui la formattazione della stringa...
eventualmente, se lavori su sql, puoi provare un trigger sulla select.
Spero che possa esserti di aiuto....mi farà èiacere sapere poi come hai risolto![]()
![]()
tu vuoi dare il nome a uno spazio di memoria a run-time? ma... temo non si possa fare sennò il compilatore come fa a tradurre in asm il codice se la variabile non ha ancora nome? forse si potrebbe fare qualcosa se ci fosse la riflessione come in java.
![]()
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)
credo tu abbia frainteso... non sto passando una data... qui "data" ha il significato di "avendo". La frase va letta come:Non sono espertissima...però ci ho pensato.......
non puoi in qualche punto forzare il fatto che stai passando una data?
"Avendo una stringa etc..
comunque grazie per la risposta
cos'è la riflessione? la si può implementare in c?tu vuoi dare il nome a uno spazio di memoria a run-time? ma... temo non si possa fare sennò il compilatore come fa a tradurre in asm il codice se la variabile non ha ancora nome? forse si potrebbe fare qualcosa se ci fosse la riflessione come in java.
Potresti farlo in questo modo:
Ti crei una struttura per ogni tipo di dato* (int, float, char ... ) con due valori: "valore" e "nome"... E devi creare una lista di questi elementi...
A questo punto, quando vuoi creare una nuova variabile allochi un nuovo elemento della lista, ed all'elemento appena creato setti un nome ed un valore...
Quando poi vuoi richiamare una variabile che abbia un dato nome ti scorri tutta la lista delle variabili confrontatndo ogni volta il suo nome con quello richiesto...
*: Puoi usare una lista per ogni tipo di dato, oppure puoi fare una lista unica, la cui variabile valore sia un puntatore a void, ma devi aggiungere anche un terzo elemento (chiamato ad esempio "tipo") per capire il tipo di dato di quella variabile![]()
Ehm... Se sei alle prime armi col C ti consiglio prima di imparare bene come gestire le liste, l'allocazione dinamica, il cast e le stringhe, perche' potrebbe non essere molto intuitivo eseguire questo procedimento
![]()
Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00
Ah dimenticavo... La lista devi usarla solo se non conosci il numero delle variabili che avrai bisogno di creare...
Se invece sai che te ne servono dino ad un dato numero puoi benissimo usare un normale array...
Le prestazioni saranno le stesse (dato che dovrai comunque scorrere tutto l'array per controllare se il nome dell'elemento corrisponde con quello ricercato), ma sara' molto piu' facile da realizzare
![]()
Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00
ti ringrazio... le liste non le ho ancora studiate. Sarà un'occasione per non rimandare
ciao
la riflessione è la capacità di un software di analizzare se stesso, tu volendo, in java si intende, puoi sapere tutte le viariabili presenti nel tuo codice e quindi tradurre il nome, il tipo, il definitore d'accesso ecc... in stringa. In C non so se esiste, credo di no(in quanto in C c'è linguaggio machina e non bytecode, quindi è dificile risalire alle funzioni, le variabili ecc.. presenti nel codice compilato).Originariamente inviato da matteolandi
cos'è la riflessione? la si può implementare in c?
Cmq a te, nella pratica, cosa serve fare? Serializzare e deserializzare dei dati? Ovvero salvare in un file nome e valore di alcune variabili, per dopo rileggere il file e ricreare le stesse variabili con lo stesso nome e valore?
![]()
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)