Подскажите, что за символ!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Подскажите, что за символ!!!

Сообщение cashman » 02.08.2005 (Вт) 23:22

Его даже в форуме не получается напечатать.
Его можно набрать и посмотреть в NotePad (клавиши Ctrl+BackSpace)
Получается нечто вроде "вертикального прямоугольника".
Когда вставляешь текст из файла *.txt этот символ работает как Enter (т.е. перенос на следующую строку).

Подскажите можно ли его найти в импортиранном тексте с помощью команды: InStr(1, .. , ..)
или заменить на настоящий Enter.
Зарание благодарен.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.08.2005 (Вт) 23:36

Можно.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 02.08.2005 (Вт) 23:40

Но я его не могу ввести как Ctrl+Backspace в код программы, как быть???

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.08.2005 (Вт) 23:47

Код: Выделить всё
Private Sub cmdButton_Click()
    '...
    txtText.Text = ReplaceStr(txtText.Text, Chr$(127), vbCrLf, vbBinaryCompare)
    '...
End Sub
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 03.08.2005 (Ср) 23:25

Видимо это другой символ, т.к. Chr$(127) не работает
Также не получилось отловить Chr(10) - перенос строки (который кстати сохраняется в txt файл также (как вертикальный прямоугольник)).
Специально прикладываю файл, в котором этот символ стоит между слов "Привет" и "Пока".
А текст из файла загружает как:
Код: Выделить всё
Привет
Пока
Вложения
111.rar
(79 байт) Скачиваний: 40

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 04.08.2005 (Чт) 1:34

Поправь путь к файлу, если потребуется....

Код: Выделить всё
Option Explicit

Private Const GCC_FILENAME As String = "111.txt"

Private Sub cmdGetChrCode_Click()
    Static i As Long, hFile As Long
    Static strData As String, strTempChar As String
    hFile = FreeFile
    Open App.Path & Chr$(92) & GCC_FILENAME For Input Access Read As #hFile
        strData = Input(LOF(hFile), hFile)
    Close #hFile
    For i = 1 To Len(strData)
        strTempChar = Mid$(strData, i, 1)
        Debug.Print "Символ:" & Chr$(32) & strTempChar & vbTab & _
            "Код:" & Chr$(32) & Asc(strTempChar)
    Next i
End Sub
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 04.08.2005 (Чт) 13:13

Блин... Не в обиду, но иногда задевает. А в блокноте ввести один этот сивол, записать текст и открыть его в ЛЮБОМ HEX-эдиторе сложно? Тогда ты увидиш, что код его 7F, или 127, как и сказал BV. До чего Билли народ довел... А поиск и замена с любым символом работает на "ура".
То, что для одних константа, для других только переменная...

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 04.08.2005 (Чт) 14:42

Этот символ вводил не Я, а программа...
Клавишами я его повторить не мог.
to BV спасибо, твой код помог
Символ оказался Chr$(13), а не 127 (как уже настаивают некоторые).

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 04.08.2005 (Чт) 15:18

Ндя... Справка:

13 - код переноса строки
10 - код перевода каретки
127 - код символа, который генерится блокнотом при нажатии Ctrl+BackSpace

А то, что ты видишь на экране не имеет ровным счетом никакого значения. Это зависит только от того, как интерпритируются эти коды. Да, некоторые редакторы воспринимают конец строки как последовательность 13 10. Некоторым достаточно 13 или 10. Некоторые, когда встречают 13 без 10 (или наоборот) показывают его в виде специального символа. Повторюсь - если хочеш увидеть реальную картину того, что творится в файле, пользуй HEX-просмотрщики. Потому как интерпритация набора байтов зависит только от интерпритатора.
То, что для одних константа, для других только переменная...

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 06.08.2005 (Сб) 0:22

Miscellaneous Constants


The followingconstants are defined in the Visual Basic for Applicationstype library and can be used anywhere in your code in place of the actual values:

Constant Equivalent Description
vbCrLf Chr(13) + Chr(10) Carriage return–linefeed combination
vbCr Chr(13) Carriage return character
vbLf Chr(10) Linefeed character
vbNewLine Chr(13) + Chr(10) Platform-specific new line character; whichever is appropriate for current platform
vbNullChar Chr(0) Character having value 0
vbNullString String having value 0 Not the same as a zero-length string (""); used for calling external procedures
vbObjectError -2147221504 User-defined error numbers should be greater than this value. For example:
Err.Raise Number = vbObjectError + 1000
vbTab Chr(9) Tab character
vbBack Chr(8 ) Backspace character
vbFormFeed Chr(12) Not useful in Microsoft Windows
vbVerticalTab Chr(11) Not useful in Microsoft Windows


А я тут MSDN "листал" - тут всё подробно пишут. 8)

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 06.08.2005 (Сб) 1:08

Благодарю, моя проблема решена.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 06.08.2005 (Сб) 9:15

а не проще было использовать VB константу vbCrLf ?
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

cashman
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 152
Зарегистрирован: 03.06.2004 (Чт) 0:57
Откуда: Россия, г.Екатеринбург

Сообщение cashman » 07.08.2005 (Вс) 14:53

мне как раз и нужно было этот символ совпадающий по функции с vbCrLf превратить в vbCrLf, но я не знал как его задетектить. Вот.
Теперь разобрался)).


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 118

    TopList