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

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

Непростой вопрос по string [D5, D6, D7, Win2k, WinXP]


Страницы:   1 2

ps2006 ©   (2006-07-24 13:06:00) 

Всем привет, многоуважаемый ALL !

Есть вопросик по стрингу: есть поток, с него нужно прочитать n (ну например 7) байт в переменную типа string.
Я делаю так:


var
 s: string;
 FResponse: TMemoryStream;

begin
 ...  другой код  ...

 SetLength(s, 7);
 FResponse.Read(s[1], 7);


Неужели нет более красивого решения ?
Меня не совсем устраивает обращение к переменной так: s[1]

Спасибо.


Loginov Dmitry   (2006-07-24 16:31:00) [21]

> SetString(s,PChar(FResponse.Memory),7);


Потоки для чего чего сделаны? Чтобы можно было последовательно считать данные в разные переменные. А здесь получается, что только первые 7 байт потока скопируются в проку. В этом плане [0] все-же проще и универсальнее.


Loginov Dmitry   (2006-07-24 16:26:00) [22]

> только нужно сделать немного по другому:
>
> SetLength(s, 7);
> FResponse.Read(Pointer(s)^, 7);


И что это будет? Бред!


Reindeer Moss Eater   (2006-07-24 16:25:00) [23]

Более красивого решения нет. Имхо

SetString(s,PChar(FResponse.Memory),7);


Loginov Dmitry   (2006-07-24 16:21:00) [24]

> не знаю, чем мне не нравится такое обращение к переменной,
> у меня "чутье" на плохой стиль написания кода.


Чутье вас подводит. Такой стиль - ОТЛИЧНЫЙ! Более красивого решения нет. Имхо.


Stakan   (2006-07-24 13:30:00) [25]

ps2006 ©   (24.07.06 13:21) [4]

>только нужно сделать немного по другому:
>
> SetLength(s, 7);
> FResponse.Read(Pointer(s)^, 7);

Ну это подразумевалось :) Была приведёна строчка кода которую можно изменить.


Семеныч   (2006-07-24 13:30:00) [26]


> Непростой вопрос

Да?


ps2006   (2006-07-24 13:30:00) [27]

Спасибо всем за ваши ответы !


ps2006   (2006-07-24 13:29:00) [28]

>> Меня не совсем устраивает обращение к переменной так: s[1]
>Чем?

не знаю, чем мне не нравится такое обращение к переменной, у меня "чутье" на плохой стиль написания кода.


ps2006   (2006-07-24 13:21:00) [29]

>FResponse.Read(Pointer(s)^, 7);
>Так красивее?

Да, так однозначно красивее, спасибо :-)

только нужно сделать немного по другому:

SetLength(s, 7);
FResponse.Read(Pointer(s)^, 7);

Спасибо


Reindeer Moss Eater   (2006-07-24 13:17:00) [30]

SetString(s,PChar(FResponse.Memory),7);


Stakan   (2006-07-24 13:10:00) [31]

ps2006 ©   (24.07.06 13:06)
FResponse.Read(Pointer(s)^, 7);
Так красивее?


tesseract   (2006-07-24 13:08:00) [32]


> Меня не совсем устраивает обращение к переменной так: s[1]


Чем?


Страницы:   1 2

Наверх

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