Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.006 c
1-85521
DN
2002-09-17 12:48
2002.09.26
Работа с файлами


3-85346
Lina
2002-09-04 13:41
2002.09.26
Вычисляемые поля ...


3-85404
Извращенец2
2002-09-05 06:38
2002.09.26
prTxtReport на лазерном принтере


3-85388
Alex Y
2002-09-04 10:02
2002.09.26
Помогите с запросом


14-85645
AL2002
2002-08-30 12:34
2002.09.26
Нужна козырная свинья-копилка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский