Форум: "Начинающим";
Текущий архив: 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