Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Нулевые символы в array of char;


Автор: Shurup 29.1.2009, 20:32
Господа, нуждась в вашей помощи:

есть некий файл (что-то типа архива) в котором хранятся вот такие записи:
Код

FATRecord: record
  fName: array[1..12]of char     //Имя файла
  Junk: array[1..28]of char     //резервный хлам (мне не играет роли)
  Offset: LongInt;              //Смещение до файла
  Size: LongInt;                //Размер файла
End;                               
 
формат файла придумывал не я, но нужно в нем разобраться

создаю файлстрим - открываю этот файл и читаю, такими блоками... Все читается хорошо, но есть одно но.
fName в 99% занимает 12 символов (8-имя, 3-расширение) и тогда все хорошо, но иногда проскакивает файл с более коротким именем и тогда недостающие символы массива добиваются нулями (вмысле #0).

теперь вопрос: каким образом можно максимально легко и красиво конвертнуть такие строчки в обычную string? должно же быть что-то типа trim?

Автор: Alexeis 29.1.2009, 20:50
вместо array[1..12]of char  написать array[0..11]of char и тогда будет работать прямое присваивание.

Автор: Shurup 29.1.2009, 21:26
просто гениально smile работает как часы... 

вот только можно попросить бросить в меня ссылкой на инфу по такому присваиванию. Или в двух словах объяснить принцип.  

Автор: Alexeis 29.1.2009, 21:51
Цитата(Shurup @  29.1.2009,  20:26 Найти цитируемый пост)
вот только можно попросить бросить в меня ссылкой на инфу по такому присваиванию. Или в двух словах объяснить принцип.  

  На счет ссылки не знаю, про это в хелпе написано. Фактически выделиться память под новую анси строку и символы скопируются в нее из старой строки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)