Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.10.2010, 13:33
Аватар для Моклев
Моклев Моклев вне форума
Новичок
 
Регистрация: 27.02.2009
Адрес: Лен. обл., г. Коммунар
Сообщения: 53
Версия Delphi: 7 и 2010
Репутация: 16
По умолчанию TFileStream

есть переменная, скажем
Код:
var s: TFileStream;
как загрузить в этот поток файл "path+filename" а потом загрузить в Memo?
Ответить с цитированием
  #2  
Старый 05.10.2010, 13:38
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Моклев
есть переменная, скажем
Код:
var s: TFileStream;
как загрузить в этот поток файл "path+filename" а потом загрузить в Memo?
Если это все что есть, то сначала прочитай этот раздел: http://www.delphisources.ru/pages/faq/file_system.html авось после прочтения повится что-то еще...
Ответить с цитированием
  #3  
Старый 05.10.2010, 15:40
Аватар для Моклев
Моклев Моклев вне форума
Новичок
 
Регистрация: 27.02.2009
Адрес: Лен. обл., г. Коммунар
Сообщения: 53
Версия Delphi: 7 и 2010
Репутация: 16
По умолчанию

хорошо, с потоками разобрался, тогда такой вопрос:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var s: TFileStream;
    f: File;
    ss,i,sz: Integer;
    a: array [0..511] of Byte;
begin
If OpenDialog1.Execute then begin
  AssignFile(f,OpenDialog1.FileName);
  Reset(f);
  sz:=FileSize(f);
  Caption:=IntToStr(sz)+' байт';
  Memo1.Text:='';
  while sz>0 do begin
    BlockRead(f,a,512,ss);
    CloseFile(f);
    If RadioButton2.Checked then for i:=0 to ss-1 do Memo1.Text:=Memo1.Text+'#'+IntToStr(a[i]);
    If RadioButton1.Checked then for i:=0 to ss-1 do  Memo1.Text:=Memo1.Text+Chr(a[i]);
    sz:=sz-ss;
  end;
end;
end;

в строке
Код:
BlockRead(f,a,512,ss);
возникает ошибка "I/O Error 998" или "I/O Error 103"

что не так? кто знает, помогите
Ответить с цитированием
  #4  
Старый 05.10.2010, 16:41
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Код:
  while sz>0 do begin
    BlockRead(f,a,512,ss);
    If RadioButton2.Checked then for i:=0 to ss-1 do Memo1.Text:=Memo1.Text+'#'+IntToStr(a[i]);
    If RadioButton1.Checked then for i:=0 to ss-1 do  Memo1.Text:=Memo1.Text+Chr(a[i]);
    sz:=sz-ss;
  end;
    CloseFile(f);
закрывать файл надо после его чтения, а не во время него
и еще:
Код:
f: File of byte;

либо

Reset(f,1);
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter