Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись потока в файл 
:(
    Опции темы
Vladimir1988
Дата 28.1.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 2.12.2009

Репутация: нет
Всего: нет



Подскажите пожалуйста, как правильно записать поток, который состоит из массива в txt файл
Вот код:
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)

    Button4: TButton;
    procedure Button4Click(Sender: TObject);

   private
   public
    { Public declarations }
  end;

 var
  Form1: TForm1;
  i:integer;
  n: array[1..10] of smallint;
  gg: textfile;
 implementation

{$R *.dfm}


procedure TForm1.Button4Click(Sender: TObject);
 var
  p: TStream;
begin
  p := TFileStream.Create('D:\file2.txt', fmCreate);
    p.WriteBuffer(n, SizeOf(n));
     // for i:= 1 to 100 do
     //  n[i]:= (i)*(-100);
       AssignFIle(gg,'D:\тест\file1.txt');
       Rewrite(gg);
        for i := 1 to 100 do begin
         Writeln(gg, n[i]);
         n[i].SaveToStream(p);
        end;
       CloseFile(gg);
   p.Free;
end;

procedure TForm1.Button3Click(Sender: TObject);
 begin
  Application.Terminate;
 end;

end.



Заранее спасибо.
PM MAIL   Вверх
Frees
Дата 28.1.2010, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(Vladimir1988 @  28.1.2010,  18:16 Найти цитируемый пост)
как правильно записать поток, который состоит из массива в txt файл

потоку пофиг из чего он состоит записать поток в файл - SaveToFile пардо  неправ

Это сообщение отредактировал(а) Frees - 28.1.2010, 15:43


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Frees
Дата 28.1.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



ты имееш ввиду - есть массив и его надо записать в файл?

Код

 var
  p: TStream;
  i: Integer;
begin
 for i:= 1 to 10 do //заполним массив
    n[i]:= (i)*(-100);

  p := TFileStream.Create('D:\file2.txt', fmCreate);
  try
    p.WriteBuffer(n, SizeOf(n));//записсали в поток, поток уже пишет в файл. в бинарном виде
  finally
    p.Free;
  end;



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Vladimir1988
Дата 28.1.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 2.12.2009

Репутация: нет
Всего: нет



Да, именно так, только я не пойму, для этого надо поток перевести в другой формат?
А разве такая запись не подойдет (только выходит сообщение- [Error] Unit1.pas(94): Illegal type in Write/Writeln statement)

Код

procedure TForm1.Button4Click(Sender: TObject);
 var
  p: TStream;
  begin
   for i:= 1 to 10 do //заполним массив
    n[i]:= (i)*(-100);
     p := TFileStream.Create('D:\file2.txt', fmCreate);
     try
      p.WriteBuffer(n, SizeOf(n));//записсали в поток, поток уже пишет в файл. в бинарном виде
     finally
       AssignFIle(gg,'D:\тест\file1.txt');
       Rewrite(gg);
       Writeln(gg, p);
       CloseFile(gg);
    p.Free;
  end;
end;




 
PM MAIL   Вверх
Vladimir1988
Дата 28.1.2010, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 2.12.2009

Репутация: нет
Всего: нет



Да, я понял теперь, спасибо, только в файл ничего не пишется, он пуст.
PM MAIL   Вверх
Frees
Дата 28.1.2010, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(Vladimir1988 @  28.1.2010,  19:05 Найти цитируемый пост)
    
Код

   AssignFIle(gg,'D:\тест\file1.txt');       
  Rewrite(gg);      
  Writeln(gg, p);       
  CloseFile(gg);

зачем это? тебе нужен еще файл?

поток все записал в D:\file2.txt он  пуст?


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.