Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизДвоичные файлы... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c