Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как убрать нулевые символы?


kull ©   (2002-10-24 16:42:00) 

Привет народ!
У меня есть строка:

S = "string"#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 ......

т.е. длина ее = 64, а реально полезных символов 6.

Как убрать нулевые символы? Я сделал так

S := PChar(S);

Может еще как можно?


kull   (2002-10-24 17:07:00) [1]

Спасибо.


Anatoly Podgoretsky   (2002-10-24 17:04:00) [2]

Не играет роли, первый встретившийся символ 0 является ограничителем строки, сколько бы она физически памяти не занимала, сами строки при присаоении автоматически управляют памятью

PChar(S) вернет все до нуля
S := а это перераспределит память под строку


Anatoly Podgoretsky   (2002-10-24 16:59:00) [3]

kull © (24.10.02 16:42)
Это лучший метод, если в конце ничего кроме нулей


kull   (2002-10-24 16:59:00) [4]


> DN © (24.10.02 16:57)

заранее количество ненулевых символов неизвестно.


kull   (2002-10-24 16:58:00) [5]

Да, может я забыл сказать, что тип строки - string.


DN   (2002-10-24 16:57:00) [6]

Если это 6 первых полезных, то можно приблизительно так:
...
S:=Delete(S,7,Length(S))
...


kull   (2002-10-24 16:56:00) [7]

Дело в том что эта строка является декриптованным паролем.
И при передаче пароля с нулевыми символами в компонент программа виснет.
А если убрать их то все нормально работает.

Просто у меня вопрос: есть ли еще способы, кроме мною приведенного, убрать нулевые символы на конце строки?


Song   (2002-10-24 16:55:00) [8]

StrLCopy+StrLen


Polevi   (2002-10-24 16:45:00) [9]

лучше никак


Наверх

Титульная страница Поиск, карта сайта Написать письмо