![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить содержимое файла как символы
InOf © (2005-07-22 10:22:00)Как получить содержимое не текстового файла как массив типа char?
InOf (2005-07-22 11:53:00) [1]:-) еще раз спасибо.
Джо (2005-07-22 11:37:00) [2]Или так
type
TChars = array of Char;
function GetFileChars (const AFileName: string): TChars;
var
FS: TFileStream;
Len: Cardinal;
begin
FS := TFileStream.Create(AFileName,fmOpenRead);
try
Len := FS.Size;
SetLength (Result,Len);
FS.Read(Result[0],Len)
finally
FS.Free;
end;
end;
Джо (2005-07-22 11:35:00) [3]function GetFileString (const AFileName: string): string;
var
FS: TFileStream;
Len: Cardinal;
begin
FS := TFileStream.Create(AFileName,fmOpenRead);
try
Len := FS.Size;
SetLength (Result,Len);
FS.Read(Result[1],Len)
finally
FS.Free;
end;
end;
InOf (2005-07-22 11:31:00) [4]маленький файл
evvcom (2005-07-22 11:28:00) [5]
> SetLength(s, FileSize(f));
А если файл гигов на 100?
Anatoly Podgoretsky (2005-07-22 11:25:00) [6]Ты бы определился, или файлы Паскаля, или хендловые функции, зачем такой винегред?
InOf (2005-07-22 11:11:00) [7]тут с FileSize проблема: он не работает если файл предварительно не открыт. А так работать не хочет (external exception)
procedure DoImage(filename: string);
var
i: integer;
f: file of Byte;
s,st: String;
hFile: Integer;
idFile : integer;
begin
assign(f,filename);
reset(f);
SetLength(s, FileSize(f));
closefile(f);
idFile := FileOpen(filename,fmOpenRead);
try
FileRead(hFile, PChar(s)^, Length(s));
finally
FileClose(hFile);
end;
end;
InOf (2005-07-22 10:35:00) [8]Спасибо
Digitman (2005-07-22 10:34:00) [9]например, так :
var
s: String;
hFile: Integer;
..
SetLength(s, FileSize(..));
idFile := FileOpen(..);
try
FileRead(hFile, PChar(s)^, Length(s));
finally
FileClose(hFile);
end;
Alx2 (2005-07-22 10:30:00) [10]Загрузить в массив с типом элементов char