Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Чтение байтов из текстового файла   Найти похожие ветки 

 
Оля ©   (2004-03-05 12:59) [0]

Допустим есть текстовой файл, но мы его объявляем как file of  byte. И читаем из него переменную b типа byte. Мне не понятно как символ превращается в число? Далее c этим числом мы делаем операцию b:=random(256) xor b и опять записываем в файл. И опять вместо числа в файле символ. И последнее. Могу ли я перед тем как записать символ в файл, просмотреть его в TMemo?


 
Ega23 ©   (2004-03-05 13:00) [1]

Зачем тебе File of byte, если TStream существует?


 
jack128 ©   (2004-03-05 13:06) [2]


> Мне не понятно как символ превращается в число?


> мы делаем операцию b:=random(256) xor b и опять записываем
> в файл. И опять вместо числа в файле символ.

мдя.. Вообще то вся информация - это числа. А то что данное число ты интерпритируешь как букву, или как цвет или как что угодно - так это твои проблемы ;-)


 
Alx2 ©   (2004-03-05 13:07) [3]

Memo.lines.ADD(char(b));


 
Fredericco ©   (2004-03-05 13:10) [4]

Очень просто. Вся информация в компьютере хранится в виде байтов (а еще точнее битов).
А отображаются эти байты по-разному.
Пример: у нас в файле хранится байт 65.
Если мы откроем файл в хексовом редакторе то увидим - 41.
Если в блокноте, то - А.
В зависимости, какой смысл мы вложили в этот байт при сохранении его в файл (грубо говоря, какое дали расширение файлу), то получим соответствующее представление.

ЗЫ. Random(255)


 
McSimm ©   (2004-03-05 13:10) [5]


> Оля ©   (05.03.04 12:59)  


Упрощенно говоря, компьютер оперирует с числами. Если вы говорите "символ", это означает символьное представление некоего числа. Или иначе - каждый символ имеет свое числовое представление.

Символы (основная таблица, речь про unicode не идет) представлены кодами, которые имеют размер 1 байт. Поэтому можно говорить (опять же немного упростив) что каждому байту соответсвует символ и наоборот.

Поэтому вы можете работать и с символом и с его кодом в виде байта числа.
А также вы можете работать непосредственно с file of char - сути это не изменит.

Преобразование осуществляется, например так
MyChar := Chr(MyByte);
MyByte := Ord(MyChar);


 
Sha ©   (2004-03-05 13:14) [6]

> Fredericco ©   (05.03.04 13:10) [4]
> ЗЫ. Random(256)


 
Nous Mellon ©   (2004-03-05 13:17) [7]

Оля, 8 марта же скоро! Какие байты, какие файлы... Срочно отмечать! :))))


 
Dimka Maslov ©   (2004-03-05 13:34) [8]

Для компа по барабану симвло и или не символ. Он работает ТОЛЬКО с числами, исключительно с числами в двоичном представлении. "Символы" для него не существуют. Всё дело - в способе отображения. Отличие между char и byte только в том, как они будут отображены на экране. А разделение этих типов на несовместимые - лишь условность в паскале. Например в сях char и есть byte.


 
Fredericco ©   (2004-03-05 13:36) [9]

2 Sha ©   (05.03.04 13:14) [6]
Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range

Я был не прав.


 
Passlight ©   (2004-03-05 17:46) [10]

Ой, какие все добрые... Девушке все аккуратненько разжевали и объяснили... А был бы парень - забросали бы уже гнилыми помидорами и тухлыми яйцами :))) Долой дискриминацию по половому признаку!!! :)))


 
passlight ©   (2004-03-05 17:47) [11]

Что, разве я не прав? ;)))


 
Юрий Зотов ©   (2004-03-05 18:00) [12]

> passlight

А че, разве плохо?


 
Passlight ©   (2004-03-05 18:02) [13]

>Юрий Зотов ©   (05.03.04 18:00) [12]
А че, разве хорошо?


 
Алхимик ©   (2004-03-05 18:52) [14]


>  [13] Passlight ©   (05.03.04 18:02)

Ну дык [7]



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

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
1-1079195332
Sm
2004-03-13 19:28
2004.04.04
TImage and GIF


1-1079588019
Лысый
2004-03-18 08:33
2004.04.04
QuickReport


14-1078752373
он
2004-03-08 16:26
2004.04.04
выборы


3-1078153268
pashaz
2004-03-01 18:01
2004.04.04
DBEHGrid


1-1079385275
Маришка
2004-03-16 00:14
2004.04.04
IE Toolbar