![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как убрать нулевые символы?
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]лучше никак