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

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

разделить char на 2 байта


Страницы:   1 2

Gu ©   (2011-12-06 17:27:00) 

delphi xe.
type c:char, где ord(c)=0..65535;

нет ли каких процедур, которые бы делали это

procedure Char2Bytes(c:char;var x,x1:byte);
и обратная
procedure Bytes2Char(x,x1:byte;var c:char);

и если нет, то как это лучше сделать (перевести char в двухбайтовое представление и обратно)?


Anatoly Podgoretsky   (2011-12-07 10:36:00) [1]

Поменять местами байты, что ли?


Ega23   (2011-12-06 23:08:00) [2]


> это класика, такие фильмы надо знать :)


ЦП, походу. Сами садитесь...


Gu   (2011-12-06 23:07:00) [3]


>  - это прон?

это класика, такие фильмы надо знать :)
http://rutracker.org/forum/viewtopic.php?t=1192498


Ega23   (2011-12-06 23:01:00) [4]


> кто хочет может потестить.


Вот эта... Маленькая мятежница.avi  - это прон? Если прон, то я бы потестил...


Gu   (2011-12-06 22:52:00) [5]

большой кусок текста форум "скушал" при отправке, по новой набирать не хочу. кто хочет может потестить.


Gu   (2011-12-06 22:50:00) [6]

скрины
http://i28.fastpic.ru/big/2011/1206/06/a38c824f716186a5179376a0cbb92606.png
http://i31.fastpic.ru/big/2011/1206/03/f8df0373fffd605d3a655e27ba9d0403.png


Gu   (2011-12-06 22:50:00) [7]

прога
http://www.multiupload.com/C3V3FPBZTN


DVM   (2011-12-06 22:17:00) [8]


> надо записать строку юникода (+ и отдельные символы)
> > побайтово в стреам, а потом прочитать их.

Ну связываться с отдельными байтами при записи текста в поток я вижу смысл только если структура файла явно подразумевает BigEndian или LittleEndian порядок байт. Да и то, на этот случай есть TEncoding.Unicode.BigEndianUnicode


Ega23   (2011-12-06 21:50:00) [9]


> зачем: надо записать строку юникода (+ и отдельные символы)
> побайтово в стреам, а потом прочитать их. что то изменится
> если вы это узнали или повлияло бы на ответ [1]?


Естественно.


procedure TForm12.Button2Click(Sender: TObject);
var
 s: string;
 ms: TMemoryStream;
 i: Integer;
begin
 ms := TMemoryStream.Create;
 try
   s := Edit1.Text;
   i := Length(s);
   ms.WriteBuffer(i, SizeOf(Integer));
   ms.WriteBuffer(PChar(s)^, i *SizeOf(Char));

   s := '';
   ms.Position := 0;
   i := 0;

   ms.ReadBuffer(i, SizeOf(Integer));
   SetLength(s, i);
   ms.ReadBuffer(PChar(s)^, i *SizeOf(Char));

   Label1.Caption := s;

 finally
   ms.Free;
 end;
end;


Ну а сагу об x, y, z - заучить наизусть.
http://www.gunsmoker.ru/2008/10/x-y-z.html


Anatoly Podgoretsky   (2011-12-06 20:19:00) [10]

> Плохиш  (06.12.2011 19:10:13)  [13]

Наверно.


Плохиш   (2011-12-06 19:10:00) [11]


> Anatoly Podgoretsky ©   (06.12.11 17:55) [10]

Судя по его ответу он тебя не понял :-)


Dimka Maslov   (2011-12-06 18:03:00) [12]


> мешает структура файла


Структуре файла всё равно. Если это нормальная структура.


Gu   (2011-12-06 18:00:00) [13]


> А что мешает записать строку юникода целиком в стреам

мешает структура файла

> Как это нет, ты что не программист?

:) скорее любитель, так, типа хобби. както хочется юзать стандартные готовые вещи а не изобретать велосипед, хотябы в общих чертах об оптимизации думать.
я попозже покажу прогу, где это применяется


Anatoly Podgoretsky   (2011-12-06 17:55:00) [14]

> Gu  (06.12.2011 17:44:06)  [6]

Как это нет, ты что не программист?


Dimka Maslov   (2011-12-06 17:49:00) [15]


> надо записать строку юникода (+ и отдельные символы) побайтово
> в стреам


А что мешает записать строку юникода целиком в стреам а потом прочитать? Или что мешает сделать это посимвольно?


Dimka Maslov   (2011-12-06 17:45:00) [16]


> встроеного


побитные операции AND, OR, XOR и операции сдвига SHR и SHL и есть встроенные функции для подобных вещей. Их никто не запрещал.

расположение переменной по абсолютному адресу

указатели на массивы и записи

вариантные записи

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

И вообще нормальные языки программирования задают лишь базовый функционал, всё остальное - а совести программиста. Делать "стандартную встроенную" функцию на всё и вся никто не будет.


Dennis I. Komarov   (2011-12-06 17:45:00) [17]


> почему тут многие хотят это знать, а не просто ответить
> на вопрос? только на этом форуме такие вопросы задают, сколько
> уже пишу = задал вопрос - получил ответ и только тут сначала
> спрашивают "зачем" :)
>

Про X,Y,Z читал?


Gu   (2011-12-06 17:44:00) [18]


> Anatoly Podgoretsky ©   (06.12.11 17:36) [4]

во! спасибо, жаль обратной нет


Gu   (2011-12-06 17:43:00) [19]


> А зачем?

почему тут многие хотят это знать, а не просто ответить на вопрос? только на этом форуме такие вопросы задают, сколько уже пишу = задал вопрос - получил ответ и только тут сначала спрашивают "зачем" :)

зачем: надо записать строку юникода (+ и отдельные символы) побайтово в стреам, а потом прочитать их. что то изменится если вы это узнали или повлияло бы на ответ [1]?


Anatoly Podgoretsky   (2011-12-06 17:36:00) [20]

> Gu  (06.12.2011 17:27:00)  [0]

WordRec


Страницы:   1 2

Наверх

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