Форум: "Потрепаться";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизЧтение байтов из текстового файла Найти похожие ветки
← →
Оля © (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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c