[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