Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];

Вниз

разделить char на 2 байта   Найти похожие ветки 

 
Gu   (2011-12-06 17:27) [0]

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 в двухбайтовое представление и обратно)?


 
депутатъ   (2011-12-06 17:29) [1]

x1 := Ord(c) mod 256; x2 := Ord(c) div 256;

c := Chr(x1 + 256 * x2);


 
Ega23 ©   (2011-12-06 17:32) [2]

А зачем?
Есть Char, есть AnsiChar. Неужели недостаточно???


 
Gu   (2011-12-06 17:34) [3]


> депутатъ   (06.12.11 17:29) [1]

спасибо. встроеного (готовых процедур) я так понимаю ничего нет?


 
Anatoly Podgoretsky ©   (2011-12-06 17:36) [4]

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

WordRec


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


> А зачем?

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

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


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


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

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


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


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

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


 
Dimka Maslov ©   (2011-12-06 17:45) [8]


> встроеного


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

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

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

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

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

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


 
Dimka Maslov ©   (2011-12-06 17:49) [9]


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


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


 
Anatoly Podgoretsky ©   (2011-12-06 17:55) [10]

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

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


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


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

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

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

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


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


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


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


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


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

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


 
Anatoly Podgoretsky ©   (2011-12-06 20:19) [14]

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

Наверно.


 
Ega23 ©   (2011-12-06 21:50) [15]


> зачем: надо записать строку юникода (+ и отдельные символы)
> побайтово в стреам, а потом прочитать их. что то изменится
> если вы это узнали или повлияло бы на ответ [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


 
DVM ©   (2011-12-06 22:17) [16]


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

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


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

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


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

скрины
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:52) [19]

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


 
Ega23 ©   (2011-12-06 23:01) [20]


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


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


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


>  - это прон?

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


 
Ega23 ©   (2011-12-06 23:08) [22]


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


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


 
Anatoly Podgoretsky ©   (2011-12-07 10:36) [23]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.003 c
2-1323102981
Prok186
2011-12-05 20:36
2012.03.18
Компонент TMediaPlayer: как при открытии AVI ...


2-1323105888
LDV
2011-12-05 21:24
2012.03.18
подход к разработке функционала для работы с бд


2-1323137562
norecoi1
2011-12-06 06:12
2012.03.18
Как добратся до переменноый в другом класе?


8-1219590082
Agent[007]
2008-08-24 19:01
2012.03.18
Direct3D


15-1322034106
vuk
2011-11-23 11:41
2012.03.18
Проверяем цветовое восприятие





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский