![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение файла помогите
root © (2006-12-18 13:50:00)почему нечитается весь файл
fi:=TFileStream.create(FileNameA, fmOpenReadWrite);
try
GetMem(p, fi.size);
fi.read(p^, fi.size);
finally
fi.free;
end;
showmessage(intToStr(Length(p)));
FreeMem(p);
читается только 8 или 6 или 15 байт??? хотя файл 250 Кб
Loginov Dmitry (2006-12-18 17:34:00) [1]Хотя ошибаюсь. Хитрой Length ворощает длину для PChar'ов. Тогда дело действительно скорее всего в #0.
Anatoly Podgoretsky (2006-12-18 17:31:00) [2]> root (18.12.2006 16:54:11) [11]
У тебя файл не текстовый
Loginov Dmitry (2006-12-18 17:29:00) [3]> дает всего 8
Что дает 8. Из всего приведенного не вижу ничего, что бы могло сказать "даю 8"
Какой текст в Мемо после frFile.Memo1.Lines.Text:=Buffer; ?
Какой текст в Файле?
StriderMan (2006-12-18 17:27:00) [4]может там где-то #0 затесалась? вот Length на нее и срабатывает.
root (2006-12-18 16:54:00) [5]выдает нормально
но
ShowMessage(IntToStr(Length(Buffer)));
frFile.Memo1.Lines.Text:=Buffer;
дает всего 8
Loginov Dmitry (2006-12-18 16:43:00) [6]> что может быть??
Ты о чем?
Reindeer Moss Eater (2006-12-18 16:39:00) [7]показывает все как нужно 250768
Остается решится на смелый и отважный поступок.
Посмотреть, а что же возвращает метод Read.
А вдруг он совершенно случайно тоже покажет все что нужно. А именно 250768.
root (2006-12-18 16:36:00) [8]кооче задача следующая нужно считать файл
считывает невесь файл а лишь кусок вот еще код тоже неработает
Stream := TFileStream.Create(FileNameA, fmOpenRead);
Size := Stream.Size;
GetMem(Buffer, Size);
Stream.Read(Buffer[0], Size);
FreeMem(Buffer);
Stream.Free;
Buffer это PChar
что может быть??
все всзято из примеров по работе с потоком TfileStream
Правильный Вася (2006-12-18 16:22:00) [9]а зачем файл тебе в памяти дважды?
root (2006-12-18 16:06:00) [10]показывает все как нужно 250768
StriderMan (2006-12-18 15:30:00) [11]fl.size в отладке что показывает?
Loginov Dmitry (2006-12-18 15:14:00) [12]> читается только 8 или 6 или 15 байт
А ты это откуда знаешь?
Reindeer Moss Eater (2006-12-18 13:55:00) [13]functionTHandleStream.Read(var Buffer; Count: Longint): Longint; override;
Джо (2006-12-18 13:54:00) [14]Что есть p?
Сергей М. (2006-12-18 13:53:00) [15]Значет p объявлена и используется неверно