Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1166521831
Slimer
2006-12-19 12:50
2007.01.07
Печать таблицы с неопределенными столбцами


1-1163766674
Mishenka
2006-11-17 15:31
2007.01.07
Как в Word вставить картинку не поверх текста?


2-1166472073
allrussia
2006-12-18 23:01
2007.01.07
Приложение очень долго закрывается


2-1166381023
allrussia
2006-12-17 21:43
2007.01.07
Как и можно ли создать таблицу в таблице?


2-1166260131
AlexanderMS
2006-12-16 12:08
2007.01.07
Учёт разрешения принтера.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский