Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 18:42   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Смущение Ищу нужный тип строки

Привет всем!
Мне ужасно стыдно такое спрашивать, однако я с этим никогда не сталкивался.
Нет ли такого типа строк, размер переменной которого равнялся-бы размеру строки?
Дело в том, что мне нужно записывать строки в файл (и не только строки, это что-бы в textFile мне не рекомендовали) Но испльзовать строки с жёстким размером в 256 байт как-то не удобно, лишний размер, а с обычными строками приходиться циклом записывать
Altera вне форума Ответить с цитированием
Старый 26.04.2009, 18:57   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
s:string[20];
строка в 20 символов
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 26.04.2009, 19:02   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от IT-man
строка в 20 символов
Как я понял, нужно как раз избавиться от этой фиксированности.
То есть строка "123" должна занимать 3 байта.

Вроде, Ansistring подходит.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var s : ansistring;
begin
s := '2324';
ShowMessage(IntToSTr(sizeof(s)));

end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 20:33   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Sazary, Ансистринг это простой стринг и есть.

Altera, обьясни подробнее...
просто как я понимаю тебе нужно чтобы вместе со строкой в файл записывалось и её длина?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.04.2009, 21:04   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Пепел Феникса
Ансистринг это простой стринг и есть.
Так я об этом и сказал ) В Делфи-то только 3 типа строк.
И Ансистринг (он же стринг) как раз подходит.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 21:34   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а я бы рекомендовал использовать ShortString и писать полностью, вместе с длиной строки (она находится в нулевом байте:
Код:
var s:ShortString;
     f : file of byte;
begin
   ....
   s := 'Test';
   BlockWrite(f,s[0], Length(s)+1);
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.04.2009, 23:21   #7
Xcopy
Форумчанин
 
Аватар для Xcopy
 
Регистрация: 03.02.2009
Сообщений: 126
По умолчанию

Кстати а максималь в стринге скока символов??? (в 2 строке) Вроде 255 или я ошибаюсь?
Xcopy вне форума Ответить с цитированием
Старый 26.04.2009, 23:25   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Кстати а максималь в стринге скока символов??? (в 2 строке)
Обычный стринг имеет практически неограниченный размер (естественно, зависит от свободной памяти).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 23:28   #9
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Цитата:
Кстати а максималь в стринге скока символов??? (в 2 строке) Вроде 255 или я ошибаюсь?
Вообще то 255, а в частности может содержать до 2 Гб инфы.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 27.04.2009, 07:56   #10
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Altera, обьясни подробнее...
просто как я понимаю тебе нужно чтобы вместе со строкой в файл записывалось и её длина?
Код:
s := 'altera';
sizeOf(s) = 7; //6 + байт, указывающий на длину строки

s := 'smile';
sizeOf(s) = 6; //5 + байт, указывающий на длину строки

s := 'Клуб ПРОграммистов';
sizeOf(s) = 19; //18 + байт, указывающий на длину строки
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не открывается нужный файл Ruska882009 Операционные системы общие вопросы 4 24.05.2009 21:30
Как программно выделить нужный RadioButton? bafy Компоненты Delphi 1 17.02.2009 11:38
Кликая на нужный Image, необходимо менять именно его, а не все динамически созданные. МаксMorfey Компоненты Delphi 2 04.01.2009 17:43
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13
Указать нужный тип переменной KiDoki Общие вопросы Delphi 3 06.10.2008 17:11