Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизДлина текста в переменной Найти похожие ветки
← →
Freezz (2006-02-01 19:23) [0]Приветсвую вас, мастера!
Вот значит написал я такой код
var
Buff: pointer;
Size: dword;
Bytes: dword;
dFile: dword;
begin
...
dFile := CreateFile(Pchar("textfile.txt"), GENERIC_READ, 0, nil, OPEN_ALWAYS, 0, 0);
ReadFile(dFile, Buff^, Size, Bytes, nil);
CloseHandle(dFile);
end;
теперь вопрос, этим способом читаю я строки из текстового файла
при выводе MessageBoxA(0,Buff,"",0);
все выводиться правильно
Как мне узнать длину строки, что я считал?
SizeOf(Buff) не работает почему то.
length(Buff) показывает несовместимость типов..
вот в этом собственно и проблема
← →
Джо © (2006-02-01 19:34) [1]1. Под Buff ты должен выделить память САМ. Еще ДО вызова ReadFile. Соответственно, размер этой области памяти ты знаешь сам.
2. Кол-во байт, действительно прочитанных, сохраняется в параметре lpNumberOfBytesRead, который у тебя вообще nil.
← →
Джо © (2006-02-01 19:35) [2]> [1] Джо © (01.02.06 19:34)
Сорри, насчет 2) проглядел. У тебя он сохраняется в Bytes.
← →
Джо © (2006-02-01 19:41) [3]Принцип таков:
Size := 1024; // Размер области памяти
GetMem (Buff,Size); // Выделяешь память под Buff
if ReadFile(dFile, Buff, Size, Bytes, nil) then
begin
//
// В этом месте в Buff будут находиться прочитанные данные
// Кол-во байт, занимаемое данными, хранится в Bytes
// Оно, разумеется <= Size
//
end;
FreeMem (Buff); // Освобождаешь выделенную ранее память
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.047 c