| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Класс TFileStream |
| Автор: Cashey 11.10.2006, 08:55 |
| не могу понять работу методов этого класса. Read и Seek. Что им надо в параметрах передовать? Что они возвращают? В Хелпе ничего понять не могу. Причем тут класс THandleStream? |
| Автор: Snowy 11.10.2006, 09:06 |
| В Read нужно передавать заранее выделенный блок памяти и количество байт, которые в него нужно прочитать. Возвращает - сколько было реально прочитано (на случай, если файл кончился раньше). Seek - первый параметр - на сколько байт передвигаться по файлу (может быть отрицательным числом). Второй - откуда двигаться - с начала файла, с конца, с текущей позиции. THandleStream - класс, от которого унаследован TFileStream. Соответсвенно данные методы появились в нём, а файлстримом унаследованы. Добавлено @ 09:07 Попробуй поиск по TFileStream - примеров работы мноооого. |
| Автор: Cashey 11.10.2006, 09:31 | ||
Snowy, пример у меня перед глазами с ним и надо разобратся. У меня есть код и задача его переложить на ФоксПро или сделать из него COM объект и все равно использовать в Фоксе. И я вот никак не могу понять как оно работает и как это переложить:
... и дальше запись Node вставляется в ListBox. Так как тип record через COM вроде не передается, да и FoxPro с таким типом не работает, то мне нужно получить считанные из файла данные во что-то более универсальное. Но вот как это сделать? |
| Автор: Snowy 11.10.2006, 09:51 | ||
| Фокса я не знаю. Точнее прочитать более-менее могу, но написать нет. Поэтому могу только прокомментировать код
|
| Автор: Cashey 11.10.2006, 10:10 |
ну и какой тип в COM объекте будет соответсвовать типу Pointer? если этот код запихнуть в DLL и уже в другом приложении работать только с результатом считывания из файла? или второй вариант, записать содержимое этой переменной buf в текстовый файл? Snowy, спасибо, я примерно так и предпологал, сейчас проблема состоит в том, чем можно заменить этот Node в качестве принимающего значения из FStrm.Read |
| Автор: Romikgy 11.10.2006, 10:15 |
не Variant? |
| Автор: Cashey 11.10.2006, 10:19 |
Incompatible types: 'OleVariant' and 'Pointer' |
| Автор: Romikgy 11.10.2006, 10:29 |
| Я вообще то имел ввиду не а имено ну могу и ошибатся Добавлено @ 10:33 ДРКБ есть ? Midas и COM. Советы и Приемы там есть пример юзания TFilesteam в COM |
| Автор: Snowy 11.10.2006, 10:33 | ||
Это всего лишь байты. Можешь даже не целиком его читать, а поотдельности. Прочитать из файла байт, потом ещё один, потом 2 байта, потом ещё 2 байта - получишь 4 соответствующих переменных. |