![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Читать и писать одновременно. [D7, XP]
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бла бла)
Зачем?
> Запускаем прогу, - ошибка! Ни возможно читать и писать
> одновременно ТЕКСТОВЫЙ файл.
Вретес, при запуске программы, она с файлом ничего не делает.
Программку в которой "бла-бла" писали закрыть бы надо :)