Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Читать и писать одновременно. [D7, XP]


Страницы:   1 2

mr1Andersen ©   (2008-01-17 13:22:00) 

Вот программный код:

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button2Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 Hour,Min,Sec,MSec,Year,Month,Day:Word;
 xHour,xMin,xSec,xYear,xMonth,xDay,xc:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a,r: String;
i,k1:integer;
f1: TextFile;
t : boolean;
begin
if FileExists('1.txt')=True then
begin
 AssignFile(f1,'1.txt');
 reset(f1);
 While Not EOF(f1) do
 If Not EOLN(f1) then
 BEGIN
   Readln(f1,a);
   k1:=length(a);
   i := 1;
  Begin
  repeat
  if (a[i]='b') and (a[i+1]='m') and (a[i+2]='w') then
   begin
     ShowMessage('Найдено товар');
     Button2.OnClick(Button2);
   end;
  Inc(i);
  until (i >= k1);
  end;
 END;
CloseFile(f1);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
f:TextFile;
begin
AssignFile(f,'1.txt');  
Reset(f);
Append(f);
  writeln(f,'Новая запись');
CloseFile(f);
end;
end.

В папке в которую сохранена прожка нужно создать (1.txt) в который записываем следующий текст (блаблаблаbmwбла бла).
Запускаем прогу, - ошибка!  Ни возможно читать и писать одновременно ТЕКСТОВЫЙ файл.
Подскажите можно как то обойти это?


Malik   (2008-01-17 13:59:00) [21]


> Ни возможно читать и писать одновременно ТЕКСТОВЫЙ файл

По коректнее надо выражаться, т.к. паралельность (или по вашему "одновременность") можно только организовать при многопоточной архитектуре программы.


mr1Andersen   (2008-01-17 13:57:00) [22]

Если я стираю reset или Append та же ошибка


Смирнов   (2008-01-17 13:49:00) [23]


> А как иначе?

Reset - открытие файла для чтения
Append - открытие существующего файла для записи (добавления)
Rewrite - создание нового файла для записи (если уже есть - перезапишется).
А вот reset и Append одновременно - непонятно однако зачем...


{RASkov}   (2008-01-17 13:46:00) [24]

> [9] mr1Andersen   (17.01.08 13:44)

F1 почитать? Тама таких примеров - вагон и маленькая тележка)


mr1Andersen   (2008-01-17 13:44:00) [25]

А как иначе?


Dennis I. Komarov   (2008-01-17 13:42:00) [26]


> [7] mr1Andersen   (17.01.08 13:41)

Зачем Reset?


mr1Andersen   (2008-01-17 13:41:00) [27]

AssignFile(f,'2.txt');


Dennis I. Komarov   (2008-01-17 13:40:00) [28]

> [4] mr1Andersen   (17.01.08 13:37)

И чем он изменился?


mr1Andersen   (2008-01-17 13:38:00) [29]

Извините, вот так:

procedure TForm1.Button2Click(Sender: TObject);
var
f:TextFile;
begin
AssignFile(f,'2.txt');  
Reset(f);
Append(f);
 writeln(f,'Новая запись');
CloseFile(f);
end;
end.


mr1Andersen   (2008-01-17 13:37:00) [30]

Если создать (2.txt) и поставить 2-рой кнопке код:

procedure TForm1.Button2Click(Sender: TObject);
var
f:TextFile;
begin
AssignFile(f,'1.txt');  
Reset(f);
Append(f);
 writeln(f,'Новая запись');
CloseFile(f);
end;
end.

Тогда все работает


Dennis I. Komarov   (2008-01-17 13:37:00) [31]

> procedure TForm1.Button2Click(Sender: TObject);
> var
> f:TextFile;
> begin
> AssignFile(f,'1.txt');  
> Reset(f);
> Append(f);

>  writeln(f,'Новая запись');
> CloseFile(f);
> end;

Просмотрел :(


mr1Andersen   (2008-01-17 13:34:00) [32]


> Программку в которой "бла-бла" писали закрыть бы надо :)


Что Вы имеете ввиду?


Dennis I. Komarov   (2008-01-17 13:28:00) [33]

> В папке в которую сохранена прожка нужно создать (1.txt)

Почему бы программе самой не создавать его, если его нет?

> в который записываем следующий текст (блаблаблаbmwбла бла)

Зачем?
> Запускаем прогу, - ошибка!  Ни возможно читать и писать
> одновременно ТЕКСТОВЫЙ файл.

Вретес, при запуске программы, она с файлом ничего не делает.
Программку в которой "бла-бла" писали закрыть бы надо :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо