![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в TStream записать строку
@!!ex © (2009-07-10 21:29:00)Есть две строки. динамической длины и фиксированной:
Str1:string[4];
Str2:string;
Мне нужно эти строки записать в Stream.
Проблема в тмо, что надо передавать не указатель, а буффер... и ЧТО туда передавать?
по логике Str1[1], Str2[1], ан нет, нифига...
sniknik (2009-07-12 11:42:00) [1]> И чем тебе так не нравяться 8 битные флоаты?
не они, а твоя постановка вопроса с их участием. и упертость в понимании базовых вещей... (то что что-то там работает вопреки базе, вовсе не значит, что база неверна, это значит, что ты чего то напутал в условиях)
@!!ex (2009-07-12 11:27:00) [2]> [40] sniknik © (12.07.09 03:15)
И чем тебе так не нравяться 8 битные флоаты? В их существовании можешь убедиться попробовав написать хотя бы один шейдер с RTT.
Сергей М. (2009-07-12 10:32:00) [3]
> @!!ex
> Я полный ноль в понимании var и const и считаю их идиотским
> изобретение больных на голову упрощенцев
Тогда первые ряды "больных на голову упрощенцев" по праву принадлежат ребяткам из Майкрософт)
Sub Proc(MyString AS String)
Sub Proc(ByRef MyString AS String)
Sub Proc(ByVal MyString AS String)
sniknik (2009-07-12 03:15:00) [4]вот например, "классический" пример "косящий под С"
procedure someFunc(i: PInteger);
begin
ShowMessage(IntToStr(i));
end;
нормально? а если вызов
someFunc(nil);
???
AV да? компилятором не проверяется и не может, тут уже программисту нужно логику менять, а попробуй то же повторить с var... (не говорю что это невозможно, и с var AV не словить, но большинство опасных действий компилятор не пропустит.)
p.s. блин, опять пытаюсь объяснить, и это человеку который гордится тем что не понимает... хватит, хватило восьмибитных флоатов.
sniknik (2009-07-12 03:07:00) [5]> Какой смысл городить var/const?
ради типизации, возможности "удобнее" работать с переменными, и возможности больше синтаксиса проверять компилятором, для самоконтроля ... ну и + еще чего нибудь.
не нравится, убери все условности и пиши на asm-е (даже C подразумевает какие то ограничения, не "родственность" системе).
> На данный момент дельфи позволяет максимально быстро создавать приложения с сложным интерфейсом.
а вот это вот следствие. вторая сторона монеты. одна без другой не существуют.
> поэтому не натыкаюсь на такие косяки.
все твои "косяки" это отсутствие знаний. и не желание их приобретать.
@!!ex (2009-07-12 02:34:00) [6]> [37] Германн © (12.07.09 01:55)
На данный момент дельфи позволяет максимально быстро создавать приложения с сложным интерфейсом.
Также опыт программирования на паскале больше, поэтому разработка ведеться быстрее и качественней.
В принципе я практически не пользуюсь стандартными решениями от Борланда, поэтому не натыкаюсь на такие косяки.
Модули с которыми мне приходиться работать, к счастью оформлены по стандарту,а не по велению языка.
Германн (2009-07-12 01:55:00) [7]
> @!!ex © (12.07.09 01:46) [36]
>
> > [31] sniknik © (11.07.09 13:04)
>
> Ну так и я об этом же. Надо просто делать функции с указателями.
>
> Какой смысл городить var/const?
>
А зачем тогда ты пользуешь Дельфи?
Пользуйся продуктами от МС.
@!!ex (2009-07-12 01:46:00) [8]> [31] sniknik © (11.07.09 13:04)
Ну так и я об этом же. Надо просто делать функции с указателями.
Какой смысл городить var/const?
palva (2009-07-11 14:47:00) [9]
> А строка это не последовательность байтов?
Конечно нет. Последовательность байтов это array [0..n] of Byte, а все остальное... Ну может быть, отдельный байт или однобайтовый символ можно считать последовательностью байтов. Все остальное - нет.
oldman (2009-07-11 14:32:00) [10]
> palva © (11.07.09 14:18) [33]
> Если автор уже придумал, как он будет преобразовывать строку в последовательность байтов
А строка это не последовательность байтов?
:)
palva (2009-07-11 14:18:00) [11]По сабжу строку записать в поток невозможно. Если автор уже придумал, как он будет преобразовывать строку в последовательность байтов так, чтобы потом ее можно было восстановить, то проблемы нет.
oldman (2009-07-11 13:26:00) [12]
> palva © (10.07.09 23:57) [3]
> Поток это последовательность байтов.
То есть, передать проблем нет. Проблема принять :)))
А автор хочет именно "записать в stream строку".
Не вижу проблемы по сабжу...
sniknik (2009-07-11 13:04:00) [13]@!!ex © (11.07.09 11:49) [ 17]
> как вы передадите nil в такую функцию, расскажите неучу:
> procedure someFunc(var i:integer);
@!!ex © (11.07.09 12:03) [ 26]
> В оригинале:
> void someFunc(int* i);
но тогда, более точный перевод будет вовсе не var/const а
procedure someFunc(i: PInteger);
и тогда в ней становиться можно чудесным образом передавать nil, и следуют другие изменения по работе с переменной.
p.s. объяснять что, как и почему не буду. обжигался.
Anatoly Podgoretsky (2009-07-11 12:50:00) [14]Ну и что, что var, тогда нельзя и PInteger(nil)^) потому что var
Ты видимо не различаешь типизированые и нетипизированые указатели.
@!!ex (2009-07-11 12:22:00) [15]> [27] Игорь Шевченко © (11.07.09 12:10)
Так можно.
> [28] Anatoly Podgoretsky © (11.07.09 12:19)
Так нельзя. Там var.
> [28] Anatoly Podgoretsky © (11.07.09 12:19)
> ты же не привел проторип функции
Привел. [17]
Anatoly Podgoretsky (2009-07-11 12:19:00) [16]Видимо так -somefunc(nil^);, ты же не привел проторип функции
Игорь Шевченко (2009-07-11 12:10:00) [17]@!!ex © (11.07.09 12:03) [26]
передать можно, somefunc(PInteger(nil)^);
И зачем громко кричать здесь - кричи в Борланде, есть место для кричания, называется Quality Central
@!!ex (2009-07-11 12:03:00) [18]> [22] Anatoly Podgoretsky © (11.07.09 12:00)
В оригинале:
void someFunc(int* i);
{RASkov} (2009-07-11 12:02:00) [19]Прекрати уже истерику :)
Разработчики из Борланда много вещей сделали удобнее чем это самое на винапи делать
Anatoly Podgoretsky (2009-07-11 12:01:00) [20]
> @!!ex © (11.07.09 11:49) [17]
> > [16] Anatoly Podgoretsky © (11.07.09 11:33)
>
> да это разве громко?
>
> как вы передадите nil в такую функцию, расскажите неучу:
>
> procedure someFunc(var i:integer);
Ты смеешься, какой еще NIL если параметр integer