Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Внизчтение файла помогите Найти похожие ветки
← →
root © (2006-12-18 13:50) [0]почему нечитается весь файл
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 Кб
← →
Сергей М. © (2006-12-18 13:53) [1]Значет p объявлена и используется неверно
← →
Джо © (2006-12-18 13:54) [2]Что есть p?
← →
Reindeer Moss Eater © (2006-12-18 13:55) [3]function THandleStream.Read(var Buffer; Count: Longint): Longint; override;
← →
Loginov Dmitry © (2006-12-18 15:14) [4]> читается только 8 или 6 или 15 байт
А ты это откуда знаешь?
← →
StriderMan © (2006-12-18 15:30) [5]fl.size в отладке что показывает?
← →
root © (2006-12-18 16:06) [6]показывает все как нужно 250768
← →
Правильный Вася (2006-12-18 16:22) [7]а зачем файл тебе в памяти дважды?
← →
root © (2006-12-18 16:36) [8]кооче задача следующая нужно считать файл
считывает невесь файл а лишь кусок вот еще код тоже неработает
Stream := TFileStream.Create(FileNameA, fmOpenRead);
Size := Stream.Size;
GetMem(Buffer, Size);
Stream.Read(Buffer[0], Size);
FreeMem(Buffer);
Stream.Free;
Buffer это PChar
что может быть??
все всзято из примеров по работе с потоком TfileStream
← →
Reindeer Moss Eater © (2006-12-18 16:39) [9]показывает все как нужно 250768
Остается решится на смелый и отважный поступок.
Посмотреть, а что же возвращает метод Read.
А вдруг он совершенно случайно тоже покажет все что нужно. А именно 250768.
← →
Loginov Dmitry © (2006-12-18 16:43) [10]> что может быть??
Ты о чем?
← →
root © (2006-12-18 16:54) [11]выдает нормально
но
ShowMessage(IntToStr(Length(Buffer)));
frFile.Memo1.Lines.Text:=Buffer;
дает всего 8
← →
StriderMan © (2006-12-18 17:27) [12]может там где-то #0 затесалась? вот Length на нее и срабатывает.
← →
Loginov Dmitry © (2006-12-18 17:29) [13]> дает всего 8
Что дает 8. Из всего приведенного не вижу ничего, что бы могло сказать "даю 8"
Какой текст в Мемо после frFile.Memo1.Lines.Text:=Buffer; ?
Какой текст в Файле?
← →
Anatoly Podgoretsky © (2006-12-18 17:31) [14]> root (18.12.2006 16:54:11) [11]
У тебя файл не текстовый
← →
Loginov Dmitry © (2006-12-18 17:34) [15]Хотя ошибаюсь. Хитрой Length ворощает длину для PChar"ов. Тогда дело действительно скорее всего в #0.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c