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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
6-85640
EternalWonderer
2002-07-24 16:53
2002.09.26
Поиск файла на сервере


6-85639
Leny
2002-07-24 10:38
2002.09.26
Обработка Ошибки


4-85749
denand
2002-08-09 01:08
2002.09.26
Вырубаем Винду


1-85435
Porolonchick
2002-09-14 15:29
2002.09.26
ListView


1-85429
Alv
2002-09-15 17:08
2002.09.26
ReadProcessMemory