Код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,StrUtils;
type
TForma = class(TForm)
OButton: TButton;
ExButton: TButton;
ClButton: TButton;
ExitButton: TButton;
Counts: TLabel;
rcrds: TLabel;
Mstat: TMemo;
Done: TLabel;
OD: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure ExitButtonClick(Sender: TObject);
procedure OButtonClick(Sender: TObject);
procedure ClButtonClick(Sender: TObject);
procedure ExButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Forma: TForma;
//Ìîè ïåðåìåííûå
//ìàññèâ Èìåí ôàëîâ:
F_names:Array[1..40] of string =(элементы массива(оформлены правильно);
F_labels:Array[1..39] of string =(и тут);
postdata:array[0..35] of string;
s,str,s_t:string;
Count,rcrd:integer;
F,H:TextFile;
implementation
{$R *.dfm}
procedure TForma.FormCreate(Sender: TObject);
begin
ClButton.Enabled:=false;
ExButton.Enabled:=false;
Mstat.Text:='';
OButton.Caption:='Îòêðûòü ôàéë';
ClButton.Caption:='Çàêðûòü ôàéë';
ExitButton.Caption:='Âûéòè èç ïðîãðàììû';
eXButton.Caption:='Íà÷àòü Îáðàáîòêó';
Counts.Caption:='Îòêðîéòå ôàéë äàííûõ!';
rcrds.Caption:='Îòêðîéòå ôàéë äàííûõ!';
done.Caption:='Îòêðîéòå ôàéë äàííûõ!';
end;
procedure TForma.ExitButtonClick(Sender: TObject);
begin
Forma.Close;
end;
procedure TForma.OButtonClick(Sender: TObject);
begin
if OD.Execute
then AssignFile(F, OD.FileName)
else Exit;
Reset(F);
count:=1;
//Çàíîñèì òåêñò â ïåðåìåííóþ
while Not EOF(F) do
begin
count:=count+1 ;
Readln(F,S);
end;
rcrd:=count div 26;
Counts.Caption:='Â Ôàéëå '+ inttostr(count) +' ñòðîê' ;
rcrds.Caption:='Â Ôàéëå ïðèìåðíî '+ inttostr(rcrd) +' çàïèñåé' ;
Done.Caption:='Íàæìèòå êíîïêó Íà÷àòü Îáðàáîòêó';
ClButton.Enabled:=true;
if rcrd<>0 then ExButton.Enabled:=true;
end;
procedure TForma.ClButtonClick(Sender: TObject);
begin
CloseFile(F);
Counts.Caption:='Îòêðîéòå ôàéë äàííûõ' ;
rcrds.Caption:='Îòêðîéòå ôàéë äàííûõ' ;
Done.Caption:='Îòêðîéòå ôàéë äàííûõ' ;
ExButton.Enabled:=false;
end;
procedure TForma.ExButtonClick(Sender: TObject);
var
//íååáè÷åñêèé ñïèñîê ïåðåìåííûõ!
i,j:byte;
fname:string;
begin
Reset(f);
i:=0;
// Ãëàâíûé öèêë
While not eof(f) do begin
// Òåëî Ãëàâíîãî öèêëà
readln(f,s);
s_t:=copy(s,1,6);
postdata[i]:=s;
i:=i+1;
if (s_t='(((999') then
//BEGIN ÓÑëîâèå íóæíîé ñòðîêè
Begin
readln(f,s);
postdata[i]:=s;
i:=i+1;
readln(f,s);
postdata[i]:=s;
i:=i+1;
{ readln(f,s);
postdata[i]:=s;
i:=i+1; }
//ÖÈÊË Ïî Ìàññèâó èìåí, çàïñèñü â ôàéë
for j:=1 to 39 do
//Òåëî öèêëà
begin
if AnsiContainsStr(UTF8ToAnsi(s),UTF8toAnsi(F_labels[j])) then
begin
fname:=f_names[j]
end
else
begin
fname:=f_names[40];
end;
readln(f,s);// ВОТ здесь выдается ошибка 103.
postdata[i]:=s;
i:=i+1;
assignFile(h,fname);
{ if FileExists(fname) then
begin
//Îòêðûâàåì ñóùåñòâóþùèé ôàéë è äîïèñûâàåì âåñü áëîê
writeln(h,str);
closefile(h);
end
else
//Ïèøåì â óæå èìåþùèéñÿ
begin
reWrite(h);
writeln(h,str);
closefile(h);
// Ñîçäàåì ôàéë è çàïèñûâàåì áëîê
}
end;
end;
end;
end;
end;
end.
Выдается ошибка 103
файл открыт, доступ есть, имя правильное.
Если снова попробовать открыть - то выдается ошибка 104.
уже второй час бьюсь головой об клаву, не могу понять в чем дело. помогите разобраться