Я хочу заменить число последовательными числами, начиная с 1 и увеличивая

1581

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

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

Я пытаюсь сделать это в 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».

0

2 ответа на вопрос

1
Tikhon Jelvis

Что ж, с 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 (это Ctrl + x, а затем Shift + 9). Начнется запись нажатий клавиш, которую вы можете повторить позже.

Теперь нажмите Cs и введите «Вопросы», затем дважды нажмите Cf и C-backspace. Теперь нажмите f3. Номер должен быть заменен на 0. Если вы хотите, чтобы несколько строк имели одинаковый номер, скопируйте только что полученный номер с C-пробелом, затем 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
ta.speot.is

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

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 с использованием символов [и в ]качестве разделителей. Потом сортируй.

Проблема не в том, чтобы их отсортировать. Я переставил их по категориям, поэтому идентификаторы вопросов не в порядке. Текущий порядок правильный, я просто хочу изменить цифры. 13 лет назад 0
@ Ciremo, затем импортируйте в Excel и выполните Text-> Columns. Поместите столбец с номерами от 1 до x, обозначающий номера строк (я предполагаю, что это столбец Z). Затем напишите макрос для идентификаторов, что-то вроде = 5 * INT (Z1 / 5) для столбца идентификаторов, который вы хотите заменить. Перетащите это вниз. ta.speot.is 13 лет назад 2
Также, что может быть проще, это сделать 1, 1, 1, 1, 1, 2, 2, 2, 2, 2 вниз по списку, а затем перетащить его как диапазон. Excel должен сделать вывод, что вы хотите увеличивать 1 каждые 5 шагов. ta.speot.is 13 лет назад 0