Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Внизчтение строки из текстового файла Найти похожие ветки
← →
Dot (2006-02-01 17:30) [0]Собственно сабж. как через WinApi просто построчно прочитать текстовый файл..
записывать научился
dFile := CreateFile(Pchar("database.txt"), GENERIC_WRITE, 0, nil, CREATE_NEW, 0, 0);
WriteFile(dFile, Buff^, Size, Bytes, nil);
CloseHandle(dFile);
а считывать так и не разобрался с функцией ReadFile.
если точнее все понятно но вот путаюсь в значениях буффера и т.д.
← →
Eraser © (2006-02-01 18:26) [1]
> Dot (01.02.06 17:30)
А не проще использовать Readln, всё равно эта ф-я вызовет соответствующую API.
← →
Gero © (2006-02-01 19:11) [2]> так и не разобрался с функцией ReadFile
Что именно непонятно?
← →
Zeqfreed © (2006-02-01 21:25) [3]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.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c