Форум: "Основная";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];
ВнизAssignFile? Найти похожие ветки
← →
Fog (2002-09-15 12:52) [0]Извините за ламерскую прозьбу, но не могли бы вы привести мне пример чтения определенной информации из фаила (строки или определенного знака). Я знаю что это делается с
AssignFile
, но у меня ничего не получается :(
← →
Doctor Snap (2002-09-15 13:14) [1]Если двоичный файл-
var
f:file;
bufer:array [0..255] of byte;
z,k:integer;
begin
assignfile(f,"твой файл");
reset(f,1)(для существующего) или rewrite(f,1);(для несуществующего или если хочешь переписать существующий)
k:=filesize(F);- размер файла
seek(f,0); установка позиции в файле.
blockread(f,bufer,255,z);
blockwrite(f,bufer,255,z);
-это запизывает в файл из буфера 255 байт. z- количество реально обработанных блоков (работает как возврат из функции)
closefile(f);
end;
второй параметр в reset rewrite- размер одного блока в файле. Лучше ставить 1.
← →
greenrul (2002-09-15 13:58) [2]
var
f:file;
s:string;
begin
assignfile(f,"твой файл");
reset(f); {чтение}
{если хочешь писать в файл, делай rewrite(f)}
ReadLn(f,s); {читает 1ую строку в переменную s, после чего переходит на новую, просто Read не переносит на новую
}
ReadLn(f,s){читает 2ую строку в переменную s}
.... n раз
ReadLn(f,s){читает n-ую строку в переменную s}
{записывать в файл соответсвенно WriteLn(f,s);}
closefile(f);
end;
← →
Алексей Ким (2002-09-15 14:21) [3]помоему гораздо легче делать ето с TFileStream
там не надо ресет/реврайт просто
var f: TFileStream;
a: Char;
f := TFileStream.Create(filename, $0002);
f.Position := 0;
while f.Position < f.Size do
begin
f.Read(a,1);
f.Write(a,1);
Result := Result + a;
end;
f.Free;
в результе получаешь файл не важно бинарный или нет
← →
Fog (2002-09-15 14:43) [4]
> greenrul
[Error] Unit1.pas(35): Incompatible types: "procedure, untyped pointer or untyped parameter" and "String"
← →
Fog (2002-09-15 15:16) [5]
> Алексей Ким
Но мне нужно читать String или integer, а получается - ‹Ж^[Г
...
← →
777 (2002-09-15 15:21) [6]a:integer;
f := TFileStream.Create(filename, $0002);
f.Position := 0;
while f.Position < f.Size do
begin
f.Read(a,1);
f.Write(a,1);
Result :=Result+ Chr(a);
end;
f.Free;
← →
Алексей Ким (2002-09-15 15:27) [7]хм... не понял...
вот так все работает
--
program myprog;
{$APPTYPE CONSOLE}
uses Classes, Windows, SysUtils;
var i: TFileStream;
a: Char;
begin
i := TFileStream.Create("1.txt",$0000);
i.Position := 0;
while i.Position<i.Size do
begin
i.Read(a,1);
Write(a);
end;
i.Free;
end.
← →
Алексей Ким (2002-09-15 15:28) [8]забыл... uses Windows,SysUtils; не нада
← →
777 (2002-09-15 15:38) [9]
function ReadFile(FileName:String):String;
var f:TFileStream;
a:integer;
begin
f:=TfileStream.Create(FileName,fmOpenRead);
f.Position := 0;
while f.Position < f.Size do
begin
a:=0;
f.Read(a,1);
Result:=Result+Chr(a);
end;
f.Free;
end;
так тоже работает.
может пригодится:)))
← →
Алексей Ким (2002-09-15 15:47) [10]а разве Chr(a) надо? оно и так чар
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c