Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Blue1987 - Novembre 02, 2011, 09:07:21 am

Titolo: stringa con elementi intercambiabili all'interno
Inserito da: Blue1987 - Novembre 02, 2011, 09:07:21 am
ciao a tutti... volevo chiedere se esiste un modo di fare una roba del genere


Codice: [Seleziona]
stringa_generica := 'ciao #NOME#!, come va? oggi è il #DATA#, sono le #ORA#, e ci sono #TEMPERATURA# gradi centigradi.';

e poi creare
Codice: [Seleziona]
stringa_particolare

che vada a sostituire #NOME#, #DATA#, #ORA# e #TEMPERATURA#...



grazie mille,
Paolo
Titolo: Re:stringa con elementi intercambiabili all'interno
Inserito da: Blue1987 - Novembre 02, 2011, 09:13:48 am
andrebbe a completare il tutorial per realizzare un programma multilingua!!

visto che spesso, ci sono delle frasi intere da tradurre... e uno non può mettersi a giocare - come in realtà sto già facendo - con soluzioni tipo

Codice: [Seleziona]
stringa1 = 'ciao'
stringa2 = 'come va'
stringa3 = 'oggi è il'
stringa4 = 'sono le'
stringa5 = 'e ci sono'
stringa6 = 'gradi centigradi'

stringa_particolare := stringa1 + ' ' + NOME + '! ' + stringa2 + '? ' + stringa3 + ' ' + DATA + ', ' + stringa4 + ' ' + ORA + ', ' + stringa5 + ' ' TEMPERATURA + ' '+ stringa6 + '.';
Titolo: Re:stringa con elementi intercambiabili all'interno
Inserito da: xinyiman - Novembre 02, 2011, 09:38:54 am
Certo, attraverso la StringReplace

Ecco un esempio

stringa:='ciao #Nome# sai se oggi è il #data#';

stringa:=StringReplace(Stringa,'#Nome#','Francesco', [rfReplaceAll]);

stringa:=StringReplace(Stringa,'#Data#','02/11/2011', [rfReplaceAll]);

Questo dovrebbe fare al caso vostro.
Titolo: Re:stringa con elementi intercambiabili all'interno
Inserito da: Fabio - Novembre 02, 2011, 09:44:13 am
Prova a guardare anche questo:
http://wiki.lazarus.freepascal.org/Getting_translation_strings_right

Sotto dove c'è il paragrafo The format() function

Codice: [Seleziona]
format('Tomorrow on %0:s there will be %1:s.', ['Sunday', 'sunshine']);

Ritorna:

Citazione
Tomorrow on Sunday there will be sunshine.
Titolo: Re:stringa con elementi intercambiabili all'interno
Inserito da: Blue1987 - Novembre 02, 2011, 11:41:46 am
Prova a guardare anche questo:
http://wiki.lazarus.freepascal.org/Getting_translation_strings_right

Sotto dove c'è il paragrafo The format() function

Codice: [Seleziona]
format('Tomorrow on %0:s there will be %1:s.', ['Sunday', 'sunshine']);

Ritorna:

Citazione
Tomorrow on Sunday there will be sunshine.

grazie a entrambi.. forse questa seconda è quella che fa al caso mio...