![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение строки из текстового файла
Dot © (2006-02-01 17:30:00)Собственно сабж. как через WinApi просто построчно прочитать текстовый файл..
записывать научился
dFile := CreateFile(Pchar('database.txt'), GENERIC_WRITE, 0, nil, CREATE_NEW, 0, 0);
WriteFile(dFile, Buff^, Size, Bytes, nil);
CloseHandle(dFile);
а считывать так и не разобрался с функцией ReadFile.
если точнее все понятно но вот путаюсь в значениях буффера и т.д.
Zeqfreed (2006-02-01 21:25:00) [1]Dot (01.02.06 17:30)
//Ф-ция выводит сообщение содержащее первую строку указанного файла
function ReadFirstLine(filename : String) : Boolean;
var
dFile, p : Integer;
buff : Pointer;
read : Cardinal;
buf : array[0..1023] of Char; //Объявляем буфер, в который будем производить чтение
str : String;
begin
Result := false;
dFile := CreateFile(PChar(filename), GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
if (dFile <> INVALID_HANDLE_VALUE) then begin
Str := '';
repeat
ReadFile(dFile, Buf, SizeOf(buf), read, nil);
Str := Str + Copy(buf, 1, read);
p := Pos(#13#10, Str);
until (p > 0) or (SizeOf(buf) <> read); //Если дошли до конца файла или найден признак конца строки, выходим
ShowMessage(Format('The first line of the file "%s" is the following: '#13#10#13#10'%s', [filename, Str]));
Result := true;
end;
CloseHandle(dFile);
end;
Примерно так можно организовать чтение текстового файла, хотя, конечно, гораздо удобнее использовать для текстовых файлов AssignFile, Append/Rewrite/Reset и Write/Read, WriteLn/ReadLn.
Gero (2006-02-01 19:11:00) [2]> так и не разобрался с функцией ReadFile
Что именно непонятно?
Eraser (2006-02-01 18:26:00) [3]
> Dot (01.02.06 17:30)
А не проще использовать Readln, всё равно эта ф-я вызовет соответствующую API.