Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение данных в бинарный файл [D7, Win2k, WinXP]


maximka ©   (2004-10-22 20:36:00) 

Здравствуйте уважаемые,
У нас по информатике грозит школьная олимпиада, я пока еще только начал учить дельфи, но вот столкнулся с такой задачкой примерной, которая может быть в заданиях на олимпиаду. Для вас она наверно будет очень проста, но для меня она пока вообще непостижима.

Примерный текст задачи:
дана стринговая переменная вида str := 'ffd8ffe000104a4649460001', в которой содержатся данные в шестнадцатиричном виде. И эти данные необходимо записать в бинарный файл так чтобы каждый записанный байт соответствовал своему шестнадцатиричному значению в представленной стринговой переменной.

Вот такую вот задачку мне дали порешать. Помогите пожалуйста. Буду очень благодарен если представите исходник с пояснениями, чтоб я понял как это делается. Огромное вам спасибо.


Юрий Зотов   (2004-10-22 22:15:00) [1]

wnew © (22.10.04 20:57 ) [3]
maximka (22.10.04 21:00 ) [5]

LOL.


maximka   (2004-10-22 21:01:00) [2]

воооо, спасибочки большое begin...end


maximka   (2004-10-22 21:00:00) [3]

У меня дельфи7, и там вроде нет примера, у меня с английским немного грустно, поэтому я хотел с пояснениями на русском понять это. извините конечно что глупые вопросы задаю, но я ученик всеголишь.


begin...end   (2004-10-22 20:59:00) [4]


> [2] maximka   (22.10.04 20:52)

var
 F: file of Byte;
 Value: Byte;

begin
 AssignFile(F, 'c:\MyFile.bin');
 Reset(F);
 // В Value записываем нужное число
 Write(F, Value);
 CloseFile(F)
end.


wnew   (2004-10-22 20:57:00) [5]

maximka   (22.10.04 20:52) [2]
Нажимаешь F1, в индексе печатаешь write, получаешь помощь с примером по procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] );


maximka   (2004-10-22 20:52:00) [6]

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


Юрий Зотов   (2004-10-22 20:46:00) [7]

1. Если длина строки - нечетная, добавляем к ней слева символ '0'
2. Проходим строку в цикле while по парам символов. Каждая пара берется, как подстрока, дополняется слева символом '$', преобразуется в число вызовом StrToInt и затем это число записывается в file of byte.

Вот и все. А код - это уж сами, а то неинтересно будет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо