Nu har jeg søgt og søgt uden held så derfor tyer jeg til sidste bastion. Jeg skal bruge en algoritme jeg kan omskrive til programmeringskode til at lave spinning text: Dvs at tekst som {han|hun} kører {bil|cykel} bliver til sætningerne som han kører bil Løsningen er sikkert lige foran mig, men jeg kan simpelthent ikke se løsningen. algoritmen skal naturligvis tage højde for at ordene mellem {} kan være fra 2 ->??? samt at der kan være mange ord der skal spinne.. Jeg er ikke interesseret i et program der kan den slags, men selve proceduren for hvordan jeg skal skrive koden.
|
jeg ville gøre noget ligende;
Klip teksten ud i elementer, for hver gang du møder en macro - som følgende:
Element1 = "{han|hun} kører "
Element2 = "{bil|cykel} bliver til sætningerne som"
Element3....
Element strukturen ser således ud:
struct Element {
string[] macros; .// fx. {Han|Hun}
string Text; // fx. Køre
Element nextElement;
}
og lig elementerne i en linked liste.
Derefter kan du rekusivt kalde en metode:
string ResolveText( Element ele ) {
if( ele == null ) return "";
forearch( macroText in ele.macros ) {
return macroText + ele.Text + ResolveText(ele.nextElement);
}
}
Hvis du har rigtig meget tekst/macroer, kan man lave en trådet løsning også men den er lidt mere kompleks at beskrive...
Det var midt bud, Cheers Frank