LINUX.ORG.RU

История изменений

Исправление AZJIO, (текущая версия) :

Если примеры, то мне на Java будет понятнее всего.

А нужен именно код? Просто я уже написал, одна работает через Wine, вторая нативная в Linux, но и без моих поделок в линукс можной найти такой софт (GUI и консольная sed).

В некоторых языках есть явная функция замены текста в переменной, но если низкоуровневый язык, то берётся указатель на загруженные данные и по двухбайтовым в цикле ищем совпадение, если нашли, то указатель в строке искомого сдвигаем на 2 байта, чтобы проверить совпадение следующего байта так до конца строки для поиска. Если совпадение найдено, то выделяем буфер для вставки первой части искомой строки, потом вставляем кусок замены, и запоминаем указатель в искомой строке, чтобы от неё потом брать следующий кусок. Ну и так в цикле. К сожалению Java не знаю.

Погуглил, в Java есть replace, replaceAll с поддержкой regexp. Чтение из файла тоже готовые функции File, FileReader/FileWriter, BufferedReader.

Исходная версия AZJIO, :

Если примеры, то мне на Java будет понятнее всего.

А нужен именно код? Просто я уже написал, одна работает через Wine, вторая нативная в Linux, но и без моих поделок в линукс можной найти такой софт (GUI и консольная sed).

В некоторых языках есть явная функция замены текста в переменной, но если низкоуровневый язык, то берётся указатель на загруженные данные и по двухбайтовым в цикле ищем совпадение, если нашли, то указатель в строке искомого сдвигаем на 2 байта, чтобы проверить совпадение следующего байта так до конца строки для поиска. Если совпадение найдено, то выделяем буфер для вставки первой части искомой строки, потом вставляем кусок замены, и запоминаем указатель в искомой строке, чтобы от неё потом брать следующий кусок. Ну и так в цикле. К сожалению Java не знаю.