Ситуация следующая:
Решил немного для себя подправить перевод одного мода для игры civilization4. Весь текст в игре находится в xml файлах (по сути текстовые файлы). Взял старый перевод для его адаптации к последней версии мода, для этого сравнивал файлы по содержимому и редактировал необходимые строки. Наткнулся на такую проблему - попадаются файлы у которых, при сравнении по содержимому, не активна кнопка "редактирование" (на F6 тоже никакой реакции). При этом файлы таки сравниваются.
Дал бы скриншот, чтоб не быть голословным, но новичкам ссылки запрещено постить На словах это выглядит так: окошко сравнения файлов по содержимому выглядит как и должно, в правом и левом окне содержимое соответствующих файлов с выделенными изменениями, а кнопка "редактирование" такая же неактивно "серая" как кнопки копирования и отката.
Flasher писал(а):Файлы больше 2 Мб. Читаем справку.
Размер сравниваемых файлов - 1 179 648 байт и 995 328 байт.
Причем среди редактируемых файлов есть и один файл размером 2,5 Мб и он нормально редактируется во время сравнения.
Еще идеи есть?
P.S.
Пробовал на двух разных компах с разными версиями total commandera - результат один. Вероятно дело именно в файле. Но что с ним с этим файлом может такого быть? Это ведь текст. И как это исправить?
Галку "Двоичный" тотал при сравнении не ставит? Если ставит, снять и пересравнить.
Кодировка ISO-8859-1, но она такая у всех файлов, а не редактируется только один.
Двоичный вид не включал, мне ведь текст редактировать.
Ещё редактирование может оказаться запрещено, если в файле есть очень длинные строки.
Вот, кажется оно, спасибо! Удалил часть текста в котором встречаются длинные строки и редактирование включилось. Теперь только разбираться вручную аккуратно надо будет искать и вырезать эти строки перед сравнением, а потом назад вставлять. А какая максимальная длинна строки в символах допустима?
silione, необязательно вырезать их. Можно просто добавить разрывов строки между любыми тегами или атрибутами, XML не чувствителен к наличию разрывов строк вне данных. Рекомендую разбивать так, чтобы было удобно сравнивать.
Иногда я, видя жуткие XML или HTML с длиннющими строками, регулярным выражением в текстовом редакторе добавляю разрыв строки, скажем, перед каждым открывающим тегом, так проще сравнивать файлы. Например, заменить <[^\/>]*> на \n\0, или ^(.{100,})(<[^\/>]*>) на \1\n\2 - так можно даже задать минимальное число символов строки, после которого тег будет переноситься на новую строку. При этом внутри тегов разрывы добавляться не будут.
Предлагаю предложить Гислеру показывать сообщение о причине невозможности редактирования (объём файла N Мб больше разрашённых 2 Мб/есть строка X длиннее N символов), чем тихо блокировать клавишу.
Моторокер
Предложить можно, но сейчас он этого делать практически наверняка не будет хотя бы потому, что подобные сообщения потребуют дополнительной локализации, на которую согласия Гислер не даст.
Даже самая богатая фантазия
Не представит себе наши безобразия.