Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что значит #00#00?

490
18 сентября 2007 года
frid-karatel
357 / / 15.09.2007
в Delphi есть такой код:
while st2<>#00#00 do begin <...> end

как мне его запсиать на c++ Builder - что значит #00#00?
276
18 сентября 2007 года
Rebbit
1.1K / / 01.08.2005
#00 ето символ с кодом 0
490
18 сентября 2007 года
frid-karatel
357 / / 15.09.2007
Цитата: Rebbit
#00 ето символ с кодом 0



я так и думал! :) а что он означает? пробел? или перенос строки (раз два символа...)

276
18 сентября 2007 года
Rebbit
1.1K / / 01.08.2005
пробел = #32
перенос строки = #13#10
0 ето вообще конец нольтерминальной строки.
А что он здесь значит я без понятия. Ето тебе по коду виднее :)
490
18 сентября 2007 года
frid-karatel
357 / / 15.09.2007
Цитата: Rebbit
Ето тебе по коду виднее :)


Код я указал в самом начале, т.е. внизу...

490
18 сентября 2007 года
frid-karatel
357 / / 15.09.2007
т.е. #0 (DELPHI) - это char(0) (С++ BUILDER), да?
276
18 сентября 2007 года
Rebbit
1.1K / / 01.08.2005
По томму коду что между begin end.
Ето ведь у тебя условие выхода из цыкла. Значит st2 в цыкле изменяется. А вообще такое условие совсем непонятное. ИМХО Ктото кривой рукой писал.
490
18 сентября 2007 года
frid-karatel
357 / / 15.09.2007
Цитата: Rebbit
По томму коду что между begin end.
Ето ведь у тебя условие выхода из цыкла. Значит st2 в цыкле изменяется. А вообще такое условие совсем непонятное. ИМХО Ктото кривой рукой писал.


ок, завтра представлю код, где изменяется st2...

490
19 сентября 2007 года
frid-karatel
357 / / 15.09.2007
Код:
AnsiString st2, st;
byte s;
TMemoryStream *ms;

st2="";
while (st2!=[COLOR="Red"]#00#00[/COLOR])
{
  ms->Read(&s,sizeof(s));
  st2=char(s);
  ms->Read(&s,sizeof(s));
  st2=st2+char(s);
  if (st2==[COLOR="#ff0000"]#00#00[/COLOR])
  {
    Memo1->Lines->Add(st)
    st="";
  } else
    st=st+st2;
}


Я переписал код с DELPHI на C++ Builder, вот только то, что выделено жирным и красным никак понять не могу... Что же все-таки значит #00#00?
255
19 сентября 2007 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: frid-karatel
Код:
AnsiString st2, st;
byte s;
TMemoryStream *ms;

st2="";
while (st2!=[COLOR="Red"]#00#00[/COLOR])
{
  ms->Read(&s,sizeof(s));
  st2=char(s);
  ms->Read(&s,sizeof(s));
  st2=st2+char(s);
  if (st2==[COLOR="#ff0000"]#00#00[/COLOR])
  {
    Memo1->Lines->Add(st)
    st="";
  } else
    st=st+st2;
}


Я переписал код с DELPHI на C++ Builder, вот только то, что выделено жирным и красным никак понять не могу... Что же все-таки значит #00#00?


А если подумать? )
Это конец юникодовой строки.
Токо, если ты уже используешь юникод в своем проекте, то для этого в билдере лучше использовать тип WideString вместо AnsiString.

490
19 сентября 2007 года
frid-karatel
357 / / 15.09.2007
Цитата: Dart Bobr
А если подумать? )
Это конец юникодовой строки.



А почему два раза #00? Получается, два раза конец строки, ведь #00 - это уже конец строки, т.е. char(0)... Или что-то не так?

92
19 сентября 2007 года
Тень Пса
2.2K / / 19.10.2006
блин... ну escape-последовательности мог бы и посмотреть....

str2 != "\0\0" если ты этого хотел.

про Юникод тебе уже сказали, что лучше использовать WideString вместо ANSI
309
19 сентября 2007 года
el scorpio
1.1K / / 19.09.2006
 
Код:
const WideString wsZero = "\0\0";
// Константа, чтобы избежать бесконечного приведения к WideString
WideString st2, st;
byte s;
TMemoryStream *ms = Создать_TMemoryStream;
st2="";
while (st2!=wsZero)
{
//А дальше всё по прежнему
}

Приведение WideString к AnsiString (для добавления в TStrings) выполнится автоматически
255
20 сентября 2007 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: frid-karatel
А почему два раза #00? Получается, два раза конец строки, ведь #00 - это уже конец строки, т.е. char(0)... Или что-то не так?


Потому-что #00 - это ОДИН нулевой байт. А юникодовый символ занимает ДВА байта. char - это ОДНОБАЙТОВАЯ переменная. RTFM, ёпрст!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог