Как преобразовать файл HTML в слово? [закрытый]

jjnguy является правильным; рекурсия позволяет Вам динамично создать вложение переменной глубины. Однако Вы не получаете доступ к данным из внешних слоев без немного большего количества работы. "in-line-nested" случай:

for (int i = lo; i < hi; ++i) {
    for (int j = lo; j < hi; ++j) {
        for (int k = lo; k < hi; ++k) {
            // do something **using i, j, and k**
        }
    }
}

сохраняет переменные i, j, и k в объеме для самого внутреннего тела для использования.

Вот один быстрый взлом, чтобы сделать это:

public class NestedFor {

    public static interface IAction {
        public void act(int[] indices);
    }

    private final int lo;
    private final int hi;
    private final IAction action;

    public NestedFor(int lo, int hi, IAction action) {
        this.lo = lo;
        this.hi = hi;
        this.action = action;
    }

    public void nFor (int depth) {
        n_for (0, new int[0], depth);
    }

    private void n_for (int level, int[] indices, int maxLevel) {
        if (level == maxLevel) {
            action.act(indices);
        } else {
            int newLevel = level + 1;
            int[] newIndices = new int[newLevel];
            System.arraycopy(indices, 0, newIndices, 0, level);
            newIndices[level] = lo;
            while (newIndices[level] < hi) {
                n_for(newLevel, newIndices, maxLevel);
                ++newIndices[level];
            }
        }
    }
}

Эти IAction интерфейс предусматривает роль управляемого действия, которое берет массив индексов как аргумент act метод.

В этом примере, каждый экземпляр NestedFor настроен конструктором с итеративными пределами и действием, которое будет выполнено самым внутренним уровнем. Параметр nFor метод определяет, как глубоко вложить.

Вот демонстрационное использование:

public static void main(String[] args) {
    for (int i = 0; i < 4; ++i) {
        final int depth = i;
        System.out.println("Depth " + depth);
        IAction testAction = new IAction() {
            public void act(int[] indices) {
                System.out.print("Hello from level " + depth + ":");
                for (int i : indices) { System.out.print(" " + i); }
                System.out.println();
            }
        };
        NestedFor nf = new NestedFor(0, 3, testAction);
        nf.nFor(depth);
    }
}

и (частичный) вывод от его выполнения:

Depth 0
Hello from level 0:
Depth 1
Hello from level 1: 0
Hello from level 1: 1
Hello from level 1: 2
Depth 2
Hello from level 2: 0 0
Hello from level 2: 0 1
Hello from level 2: 0 2
Hello from level 2: 1 0
Hello from level 2: 1 1
Hello from level 2: 1 2
Hello from level 2: 2 0
Hello from level 2: 2 1
Hello from level 2: 2 2
Depth 3
Hello from level 3: 0 0 0
Hello from level 3: 0 0 1
Hello from level 3: 0 0 2
Hello from level 3: 0 1 0
...
Hello from level 3: 2 1 2
Hello from level 3: 2 2 0
Hello from level 3: 2 2 1
Hello from level 3: 2 2 2
35
задан trejder 2 November 2019 в 16:45
поделиться

1 ответ

Другие альтернативы от простого переименования файла в .doc .....

http://msdn.microsoft.com/en-us/library/microsoft.office.interop. word (office.11) .aspx

Вот хорошее место для начала. Вы также можете попробовать использовать этот Office Open XML.

http://www.ecma-international.org/publications/standards/Ecma-376.htm

1
ответ дан 27 November 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: