[ruby-it] Confronto usando regexp
Stefano De nigris
stedenigris a hotmail.com
Ven 13 Mar 2009 13:45:42 CET
> 1 primariga="write (qualcuno.nome,' ',qualcuno.cognome,' ha ',qualcuno.et�);"
Fatta in questo modo è una stringa,ma io ho scritto direttamente cosi in
modo da farvi capire cosa c'è dentro a primariga.Comunque ti assicuro
che primariga è una array,perche è stato creato array per vari motivi.
> qualcuno che valore ha?
qualcuno non ha nessun valore,è semplicemente qualcuno(come ho scritto
prima:$varrecord="qualcuno" quindi una stringa).$varrecord l'ho
assegnato in una altro blocco di codice e serve anche per altri blocchi
di codice,perciò è una variabile globale.
> chi lo assegna?
L'ho assegnato cosi:
if /:#{$record};/ =~ elementi1
var=elementi1.index ":"
$varrecord=elementi1[0..var-1]
end
dove $record è una altra variabile in cui c'è memorizzata una
stringa.Elementi1 è il primo elemento di primariga(cioè:
elementi1=primariga[1]).Cosi ho creato $varrecord.
> qualunque sia il problema da risolvere, puoi sicuramente risolverlo
> senza variabili globali, con un codice pi� semplice e comprensibile.
E come potrei??
> un consiglio: non sempre � utile chiedere aiuto solo sui singoli passi
> e basta; spesso si ottengono migliori risultati spiegando il problema:
> non � detto che la soluzione a cui hai pensato sia sempre la migliore.
Beh allora ti dico il mio problema...io ho creato un programma che deve
convertire le istruzioni da delphi in ruby.Dopo aver creato quasi tutte
le istruzioni che mi fanno la conversione,mi manca solo la conversione
del record.In dephi il record viene creato cosi:
type
persona=record
età:byte;
nome:string[50];
cognome:string[50]:
professione:strin[55];
end;
il quale sono riuscito a convertire.Il problema è che quando viene letto
il valore degli elementi del record,il quale viene fatto cosi:
write (qualcuno.nome,' ',qualcuno.cognome,' ha ',qualcuno.età);
adesso questa riga deve diventare cosi in ruby:
print persona.fetch("nome"),' ',persona.fetch("cognome"),' ha
',persona.fetch("eta")
da come si vede ho pensato di convertire il record in un hash,il quale
mi sembrano abbastanza simili.A questo punto avevo pensato,per
convertire la riga in delphi, che bastava solo che sostuissi soltanto le
parti "qualcuno.nome" e le altre due.Per fare ciò ho pensato di creare
un if che andasse a cercare "qualcuno" in modo da sostituirlo con
"persona.fetch".E qui viene il mio problema...cioè creare il confronto
tra "qualcuno"(che è memorizzato in $varrecord) e primariga (che sarebbe
la mia espressione),volendo rendere "attivo" $varrecord,visto che non
sara sempre "qualcuno".Spero di essere stato chiaro.
Ciao a tutti!!!!
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list