Чистка текста от "скрытых" знаков.

Тема в разделе "Вопросы новичков", создана пользователем chayaka, 28 июл 2009.

Статус темы:
Закрыта.
  1. chayaka

    chayaka

    Регистр.:
    15 фев 2008
    Сообщения:
    165
    Симпатии:
    28
    В общем, генерится текст. В начале и конце каждой строчки должны быть открывать и закрываться тэги, соответственно. В некоторых строчках они не закрываются... думаю, что за проблема.

    Уже и руками вписывал и че только не делал, но не дело же это... И строчка отображается "не до конца".

    Пользовался всегда PSPad для просмотра текста, решил попользовать NotePad++ открыл и вижу, что в тех местах, где строчка обрывается стоит знак NUL (одним символом) и дальше текст продолжается.

    НО! Ничего из-за этого работать с этим текстом не хочет, т.к. не видит закрытого тэга. Символ не копируется - пробовал скопировать пару слов, что б в середине был этот символ, а затем вставлял:
    - в аську
    - в другие текстовые редакторы
    - сюда вот пробовал
    Вставляется лишь текст ДО этого символа, как будто дальше текста нет.

    Пробовал различные онлайн чистилки, пробовал TextPipe (может я че-то там неправильно делал, хз).

    Помогите, пожалуйста, как избавиться от этой хрени, и что это вообще за символ NUL? Насколько я понял, это как-то связанно с двоичным кодом, и этим знаком обозначается группа символов.

    В общем, не знаю, но помогите, пожалуйста.

    Добавленно:

    Это ASCII код. Который при создании этого кода планировался как пустое место. Сейчас его используют в некоторых языках как конец строки (последовательности символов). Ну или что-то такое.

    Че с ним делать - по прежнему не знаю :(

    Добавленно:

    В текстовых редакторах ищется при помощи обозначения "/0", но функция "найти и заменить" с ним не работает (вот с**а :( ). Никто не знает, как обозначается "delete"? :) Попробую заменять на этот код, и оно по идее будет стирать символ впереди, т.е. этот самый клятый NUL.
     
  2. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    в Notepad++ делаете заменить, выбираете:
    Что искать:\x00
    Заменить на:
    Режим поиска:Регулярное выражение

    сейчас попробывал - работает.

    P.S.: если открывать файл просмотрщиком в Total Commander (F3), выделить все (Ctrl+A) и скопировать, то копируется без этого символа. ;)
     
    chayaka нравится это.
  3. chayaka

    chayaka

    Регистр.:
    15 фев 2008
    Сообщения:
    165
    Симпатии:
    28
    Спасибо огромное :)

    Проблема решена, но такой вопрос возник, так, чисто что б разобрать в этом на будущее :)

    \x00 - означает поиск по ASCII коду символа со значениями 00 ? Правильно я понимаю? :)

    И в добавку: чем отличается логика запроса, что при \0 оно не выделяло, а лишь ставило указатель перед знаком?

    В любом случае, огромное спасибо. Я уже думал что придется вручную искать, клацать на поле с текстом, клацать "del" и так дальше. В документе находилось по 20-30 таких знаков, в день потребность под 20-30 документов, это б руки отвяли :) Спа-си-бо! :)
     
  4. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    да, 16-тиричное значение искомого символа. В принципе можно заменять строки, записанные в таком виде, например \x2f0a6678
    с этим надо в документацию, ни разу не пробывал. Может кто-нить и подскажет ;)
     
    chayaka нравится это.
Статус темы:
Закрыта.