2010-04-07 2 views
1

En bref, je suis actuellement en utilisant le code suivant pour tirer les enregistrements de plusieurs tables dans un Sqlite Db et les insérer dans un seul combobox (SearchBar $):Concaténation un texte devant enregistrements de base de données individuels avec Tcl

set SrchVals1 [db eval {SELECT DISTINCT Stitle From Subcontract Order By Stitle ASC}] 
set SrchVals2 [db eval {... 
set SrchVals3 ... 
set SrchValsALL [concat $SrchVals1 $SrchVals2 $SrchVals3] 
$SearchBar configure -value $SrchValsAll 

Pour la variable "SrchVals1", j'essaie de trouver un moyen de concaténer le texte "Sub:" à chaque enregistrement individuel dans SrchVals1. Par exemple, si SrchVals1 montre les enregistrements suivants dans la zone de liste déroulante:

First Title 
Second Title 
Third Title 

Je voudrais concaténer pour que les enregistrements du combobox ressemblent à ceci:

Sub: First Title 
Sub: Second Title 
Sub: Third Title 

Je comprends que je pourrais avoir à utiliser une instruction foreach; Cependant, je n'ai pas de chance d'en écrire une qui ajoute "Sub:" devant chaque enregistrement, par opposition à un. Cela semble être quelque chose qui devrait être assez facile, mais je n'arrive pas à le comprendre.

Est-ce que quelqu'un sait comment je peux atteindre ces résultats?

Merci,

DFM

Répondre

2

Vous avez raison. La commande foreach est la bonne façon de le faire. Voici comment:

set SrchValsALL {} 
foreach value [concat $SrchVals1 $SrchVals2 $SrchVals3] { 
    lappend SrchValsALL "Sub: $value" 
} 
$SearchBar configure -value $SrchValsAll 
Questions connexes