Я знаю, что это то, что люди могут легко запрограммировать, но я не знаком с этими вещами, поэтому я надеялся, что было более простое решение.

Я отредактировал большую базу данных вопросов, включая сортировку, и в итоге перепутал все идентификаторы вопросов.

Я пытаюсь сделать это в Notepad++, но любые другие предложения приветствуются. Мне интересно, есть ли способ найти строку (например, «Вопрос [любое число]») и заменить числа сначала 1, затем 2 и т.д.

Для пояснения вот как выглядит один вопрос:

TriviaBot_Questions[3]['Question'][63] = "Acronyms: What does WTT stand for?";  
TriviaBot_Questions[3]['Answers'][63] = {"Want To Trade"};  
TriviaBot_Questions[3]['Category'][63] = 7;  
TriviaBot_Questions[3]['Points'][63] = 1;
TriviaBot_Questions[3]['Hints'][63] = {};  

и следующий вопрос, как и сейчас, не сопровождается 64. Это может быть 245 или 1029, и независимо от того, какое это число, я хочу заменить его на «предыдущее число + 1».

2 ответа2

1

Что ж, с Emacs это достаточно просто, но Emacs может быть несколько сложным для изучения.

Вы можете получить его здесь: http://www.gnu.org/software/emacs/. Это совершенно бесплатно.

Сделайте резервную копию файла перед продолжением, на всякий случай, потому что это может раздражать, чтобы отменить все, и это никогда не повредит иметь резервную копию.

Вот как сделать то, что вы хотите, нажатие клавиши на клавиатуре. Для справки, C означает контроль, а тире означает, что его нужно нажимать одновременно (например, control+x), а пробел означает, что вы отпустили то, что у вас было раньше. Таким образом, Cx Cf означает, что вы нажимаете control+x, а затем control+f.

Откройте Emacs и откройте файл, который у вас есть. Если панель file/edit ... и т.д. Отсутствует, вы можете открыть файл с помощью Cx Cf (control+x, а затем control+f) и ввести путь к файлу.

Затем нажмите Cx (это control+x и Shift +9. Начнется запись ваших нажатий клавиш, которую вы можете повторить позже.

Теперь нажмите Cs и введите "Вопросы", затем дважды нажмите Cf и C-backspace. Теперь нажмите f3. Номер должен быть заменен на 0. Если вы хотите, чтобы несколько строк имели один и тот же номер, скопируйте только что полученный номер с помощью C-space, затем Cb и Mw (alt+w).

После того, как число скопировано, вы можете снова использовать Cs, дважды нажав на него, чтобы перейти к следующему экземпляру "Вопросы". Здесь дважды нажмите Cf, а затем C-backspace, но теперь введите Cy, чтобы вставить скопированное число. Повторите это по мере необходимости, чтобы пройти все цифры в одном вопросе. Каждый раз, когда вы повторяете это действие в этом отдельном вопросе, набирайте My после него.

Как только вы закончите с первым вопросом, и все числа заменены на 0, вы можете просто закончить запись макроса. Введите Cx) (control-x, а затем shift-0, как и раньше).

Если в какой-то момент вы допустили ошибку и что отменить и перезапустить, Cg отменяет и C-_ (control + shift + -) отменяет.

Теперь введите Cu 0 Cx e.

Если это работает, вы можете сохранить изменения, набрав Cx Cs.

Для этого нужно создать макрос клавиатуры для замены числа, выполнить его многократно со счетчиком (созданным с помощью f3), увеличивающимся каждый раз.

Если вам удастся выполнить эту работу (я это сделал на вашем примере), подумайте над изучением того, как использовать Emacs - есть очень хороший учебник, к которому можно получить доступ при открытии Emacs. Требуется немного усилий, чтобы учиться, но оно того стоит.

0

Я не знаю инструмента, который может сделать это, но вам может быть лучше написать свой код, как

x = 0;
Questions[3][++x] = 'New Question';
Questions[3][  x] = '------------';
Questions[3][  x] = 'A: Answer, B: Answer, C: Answer';
Questions[3][++x] = 'New Question';
Questions[3][  x] = '------------';
Questions[3][  x] = 'A: Answer, B: Answer, C: Answer';

Или лучшим решением будет чтение из текстового файла или базы данных, чтобы вопросы не были привязаны к скомпилированному приложению.

Хотя, если вы хотите решить непосредственную проблему, я бы поместил этот файл вопросов в Excel и сделал бы Text-> Columns, используя символы [ и ] качестве разделителей. Потом сортируй.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .