Actuellement, je cet extrait de code:Comment lier au contexte foreach?
Blocks: ["F4369RO771" "282273" "5" "146" "126" "6-Nov-2009" "8-Jan-2010" "7-Jun-2010" "8"
"M9881KI923" "399727" "2" "359" "443" "5-Aug-2010" "23-Feb-2010" "6-Nov-2009" "4"
]
save-blocks: func[file /local f out][
foreach [field1 field2 field3 field4 field5 field6 field7 field8 field9] blocks [
out: copy ""
repeat n 9 [
part: get bind to-word rejoin ["field" n] 'field1
out: rejoin [out part ";"]
]
remove back tail out
write/lines/append f out
]
Il ne suffit pas générique, je voudrais passer cette place
block: [field1 field2 field3 field4 field5 field6 field7 field8 field9]
en tant que paramètre et écrire quelque chose comme ceci:
save-blocks: func[block file /local f out][
foreach block blocks [
out: copy ""
repeat n length? block [
part: get bind to-word rejoin ["field" n] 'field1
out: rejoin [out part ";"]
]
remove back tail out
write/lines/append f out
]
Mais je ne sais pas comment lier dans ce cas trop dur pour moi :(
Un grand merci, vous êtes vraiment Génie d'un cerveau pauvre essayant simplement de faire avancer les choses :) Si vous ne voulez pas ignorer ce que je suis en train de faire, c'est juste lié à http://stackoverflow.com/ questions/2768563/i-besoin-de-générer-50-millions-lignes-csv-fichier-avec-random-data-comment-optimiser-th Je veux permettre aux utilisateurs de spécifier n'importe quel nombre de champs pour leur spécifications afin qu'ils n'aient pas à modifier la fonction de sauvegarde à chaque fois. S'il y a un moyen plus élégant, je serais ravi de l'apprendre bien sûr: D –
Dans l'autre question, vous m'avez demandé de ne pas comprendre la valeur que vous obtenez en faisant passer un bloc à foreach in ce style idiomatique. Il suffit de passer un mot ordinaire - il attribuera la valeur de l'enregistrement avec autant de champs ... alors avoir une boucle interne pour passer par là. – HostileFork
Voir ceci http://stackoverflow.com/questions/3326484/extending-build-markup-with-repeat-refinement –