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

Вниз

Конвертация String[4] в Integer   Найти похожие ветки 

 
BorH   (2004-09-30 13:03) [0]

Здравствуйте.
Подскажите, как конвентировать один тип в другой. Заметьте, не перевести число 12451 в "12451", а вот так:
12451
в 16-ричной системе: 000030A3 - integer из 4 байт
Str = $00+$00+$30+$A3
Должна получиться четырёхбайтная строка, но в одно действие.
Т. е. просто блоку данных присваваем другой тип.

Помнится, раньше я делал так:

var
 Int: integer;
 Str: string;
begin
 Int:= 12451;
 Str:= String(Int);
end;

Сейчас же появляется сообщение об ошибке.

Сорри за неточную формулировку :)
Заранее благодарю.


 
DiamondShark ©   (2004-09-30 13:10) [1]

var
 S: string[4];
 R: packed record
   L: byte;
   I: integer;
 end absolute S;
begin
 R.L := 4;
 R.I := 12345;
end;


 
pasha_golub ©   (2004-09-30 13:31) [2]

DiamondShark ©   (30.09.04 13:10) [1]
Элегантно, блин...


 
Суслик ©   (2004-09-30 14:13) [3]


>  [1] DiamondShark ©   (30.09.04 13:10)

А порядок байт?
Автору обратный нужен.
Имхо.


 
pasha_golub ©   (2004-09-30 15:20) [4]

Суслик ©   (30.09.04 14:13) [3]
Я думаю, автору можно что-нибудь и самому сделать. :)


 
Суслик ©   (2004-09-30 15:22) [5]


>  [4] pasha_golub ©   (30.09.04 15:20)

я не помню, что в паскале значило string(i), где i - integer.
Но есть ощущение, что у автора противоречие в примере.

Если я прав, то решение не элегантное, а просто не верное.


 
GuAV ©   (2004-09-30 17:01) [6]

string в паскале (shortstring)

+-------+-----------+-----------+-   -+---------------+-----+----------------+
| длина | символ[1] | символ[2] | ... | символ[длина] | ... | символ[размер] |
+-------+-----------+-----------+-   -+---------------+-----+----------------+
|  0    |     1     |     2     | ...
+-------+-----------+-----------+-

string в дельфи (ansistring) -

+---------------+
|   указатель   |
+---+---+---+---+
| 0 | 1 | 2 | 3 |
+---+---+---+---+


указывает на:

+---------------+---------------+-----------+-----------+---------------+----+
| счет ссылок   |  длина        | символ[1] | символ[2] | символ[длина] | #0 |
+---+---+---+---+---+---+---+---+-----------+-----------+---------------+----+
|-8 |-7 |-6 |-5 |-4 |-3 |-2 |-1 |     0     |     1     | ...  
+---+---+---+---+---+---+---+---+-----------+-----------+-

string(integer) - для pascalевской не имеет смысла, для дельфовской - даже опасно.

используйте массив символов



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

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

Наверх




Память: 0.45 MB
Время: 0.05 c
3-1095423240
pashaz
2004-09-17 16:14
2004.10.17
DBWARE Для ZEOS


1-1096716248
roma
2004-10-02 15:24
2004.10.17
Install component


4-1095438982
veteran
2004-09-17 20:36
2004.10.17
Плохое качество картинки с TV-тюнера


3-1095849620
Snip
2004-09-22 14:40
2004.10.17
Опять Interbase


1-1096485185
sdw_syscoder
2004-09-29 23:13
2004.10.17
Структура каталогов и файлов на диске





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский