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

Вниз

Двоичные файлы...   Найти похожие ветки 

 
Agent[007] ©   (2003-11-14 06:44) [0]

Как записать переменную в файл в двоичном виде?


 
Maxud ©   (2003-11-14 06:50) [1]


var i: integer;
S: TStream;
begin
i := 100;
S := TFileStream.Create("C:\test.bin", fmCreate);
S.WriteBuffer(i, SizeOf(Integer));
S.Free


 
Юрий Зотов ©   (2003-11-14 07:11) [2]

> Agent[007] © (14.11.03 06:44)

Не могли бы Вы ответить на противоположный вопрос - а как можно записать переменную в файл НЕ в двоичном виде?

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


 
Agent[007] ©   (2003-11-14 08:25) [3]

> Юрий Зотов

var
f: TextFile;

begin
SomeVariable := "Hello, Text!";
AssignFile(f, "Text.txt");
Rewrite(f); // Для Записи, а для чтения Reset(f);
Write(f, SomeVariable);
CloseFile(f);
end;


 
Думкин ©   (2003-11-14 08:39) [4]


> [3] Agent[007] © (14.11.03 08:25)

По твоему, - это троичный файл?


 
Юрий Зотов ©   (2003-11-14 09:02) [5]

> Agent[007] © (14.11.03 08:25) [3]

Возможно, Вы не поверите, но Вы привели пример записи переменной именно в двоичном виде. Потому что в современных компьютерах НИКАКОГО другого вида хранения ЛЮБОЙ информации просто не существует.

А то, что программы-просмотрщики (или редакторы) умеют показывать так называемые "текстовые" (на самом деле - двоичные) файлы в символьном виде - так это заслуга уже самих этих программ.


 
FoxBox   (2003-11-14 09:31) [6]

var
f: File of BYTE;
SomeVariable: BYTE;
begin
SomeVariable := 123;
AssignFile(f, "ByteFile.txt");
Rewrite(f); // Для Записи, а для чтения Reset(f);
Write(f, SomeVariable);
CloseFile(f);
end;

вот запись числовых значений.
Можешь объявить f как file of YourRecord (только тип "объект" не используй)


 
alex_***   (2003-11-14 09:39) [7]

Да не прикалывайтесь вы над человеком... Все на первых парах что-то путали.


 
Thick   (2003-11-14 15:48) [8]

Если те делать нечево то переведи инфу в двоичный вид и записуй как текст.
Открываеш и видиш 01110000101010111
Только смысла в этом никакого не вижу


 
Agent[007] ©   (2003-11-14 20:30) [9]

Не... Мне интересно, как работать c File?

var f: file;
i: integer;
s: string;
begin
AssignFile(f, "c:\test.txt");
Reset(f);
BlockRead(f, i, SizeOf(integer));
BlockRead(f, s, SizeOf(integer));
ColseFile(f);
end;

Пишет: OutOfMemory... ПОЧЕМУ?


 
Германн ©   (2003-11-14 20:57) [10]

Ты бы еще написал SizeOf(Int64) :)))
Третьим параметром идет количество байт!


 
Германн ©   (2003-11-14 21:03) [11]

Пардон ступил. Предыдущий ответ не читать.
SetLength(s,SizeOf(Integer));
BlockRead(f,S[1],SizeOf(Integer));
Хотя для чего это всё - не понял.


 
WithOut Any ... ©   (2003-11-14 21:25) [12]

>Agent[007] © (14.11.03 20:30) [9]
если var f: file;
то необходимо
Reset(f, 1);
естественно, если не знаешь структуру


 
Agent[007] ©   (2003-11-15 14:09) [13]

Ой... Ошибся...

var f: file;
i: integer;
s: string;
begin
AssignFile(f, "c:\test.txt");
Reset(f);
BlockRead(f, i, SizeOf(integer));
BlockRead(f, s, SizeOf(string));
ColseFile(f);
end;


 
MBo ©   (2003-11-15 14:13) [14]

подозреваю, что в i - длина строки. тогда
SetLength(s,i);
BlockRead(f, s[1], i);


 
Anatoly Podgoretsky ©   (2003-11-15 15:25) [15]

MBo © (15.11.03 14:13) [14]
Которая кстати может быть нулевой


 
Agent[007] ©   (2003-11-15 21:41) [16]

нет... i не длина строки... Просто как читать инфу из нетипизированных файлов (разнотипную)?..


 
Юрий Зотов ©   (2003-11-17 02:02) [17]

Точно так же, как и из типизированных - теми же самыми Read или BlockRead. Но надо знать структуру файла - что в нем за чем следует и какую имеет длину. Если длина данного участка может быть переменной, ее часто пишут перед самим этим участком.



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

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

Наверх




Память: 0.5 MB
Время: 0.016 c
3-89696
чайник
2003-11-06 10:22
2003.11.27
ошибка при активации TQuery


6-90030
Yrasikombo
2003-09-29 14:56
2003.11.27
Как определить все IP адреса включенных компов в локальной сети.


14-90089
flip
2003-11-04 18:43
2003.11.27
Srochno


3-89734
jonni
2003-11-09 04:11
2003.11.27
получить зуначения


4-90181
stainer
2003-10-05 14:45
2003.11.27
иконка 16 на 16