1201 lines
36 KiB
Plaintext
Executable File
1201 lines
36 KiB
Plaintext
Executable File
{ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ ³
|
||
³ X - P a c k e t ³
|
||
³ ³
|
||
³ ³
|
||
³ X P D I R . P A S ³
|
||
³ ³
|
||
³ Directory-Anzeige ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ}
|
||
|
||
|
||
Function GetBsFNr (Zeile : Str80) : Str20;
|
||
Var f : File;
|
||
Hstr : Array [0..3] of Byte;
|
||
Magic,
|
||
Result : Word;
|
||
Begin
|
||
FillChar(Hstr,SizeOf(Hstr),0);
|
||
Assign(f,Zeile);
|
||
if ResetBin(f,1) = 0 then
|
||
begin
|
||
BlockRead(f,Hstr,SizeOf(Hstr),Result);
|
||
FiResult := CloseBin(f);
|
||
move(Hstr[0],Magic,SizeOf(Magic));
|
||
if Magic = $6569 then
|
||
begin
|
||
Zeile := SFillStr(3,'0',int_str(Hstr[3])) + '/' +
|
||
SFillStr(3,'0',int_str(Hstr[2]));
|
||
end else Zeile := '';
|
||
end else Zeile := '';
|
||
GetBsFNr := Zeile;
|
||
End;
|
||
|
||
|
||
Function FAttr (Attr : Byte) : Str4;
|
||
Var Astr : String[4];
|
||
Begin
|
||
Astr := ConstStr(Pkt,4);
|
||
if Attr and ReadOnly = ReadOnly then Astr[1] := 'r';
|
||
if Attr and Archive = Archive then Astr[2] := 'a';
|
||
if Attr and SysFile = SysFile then Astr[3] := 's';
|
||
if Attr and Hidden = Hidden then Astr[4] := 'h';
|
||
FAttr := Astr;
|
||
End;
|
||
|
||
|
||
Function FDate (FT : LongInt) : Str8;
|
||
Var DT : DateTime;
|
||
Begin
|
||
UnpackTime(FT,DT);
|
||
FDate := SFillStr(2,'0',int_str(DT.Day)) + Pkt +
|
||
SFillStr(2,'0',int_str(DT.Month)) + Pkt +
|
||
SFillStr(2,'0',copy(int_str(DT.Year),3,2));
|
||
End;
|
||
|
||
|
||
Function FTime (FT : LongInt) : Str5;
|
||
Var DT : DateTime;
|
||
Begin
|
||
UnpackTime(FT,DT);
|
||
FTime := SFillStr(2,'0',int_str(DT.Hour)) + DP +
|
||
SFillStr(2,'0',int_str(DT.Min));
|
||
End;
|
||
|
||
|
||
Procedure SortDir;
|
||
Var x,i,j : Integer;
|
||
N : Word;
|
||
Change : Boolean;
|
||
Hilf : Dir_Typ;
|
||
Begin
|
||
N := DirFiles;
|
||
if N > 1 then
|
||
begin
|
||
x := 1;
|
||
While x <= N do x := x * 3 + 1;
|
||
x := x div 3;
|
||
While x > 0 do
|
||
begin
|
||
i := x;
|
||
While i <= N do
|
||
begin
|
||
j := i - x;
|
||
Change := true;
|
||
While (j > 0) and Change do
|
||
begin
|
||
if Dir^[j].Name > Dir^[j+x].Name then
|
||
begin
|
||
Hilf := Dir^[j+x];
|
||
Dir^[j+x] := Dir^[j];
|
||
Dir^[j] := Hilf;
|
||
j := j - x;
|
||
end else Change := false;
|
||
end;
|
||
i := i + 1;
|
||
end;
|
||
x := x div 3;
|
||
end;
|
||
end;
|
||
|
||
for i := 1 to DirFiles do if Dir^[i].Name[1] = ^A then
|
||
begin
|
||
delete(Dir^[i].Name,1,1);
|
||
if Dir^[i].Name[1] = B1 then Dir^[i].Name[1] := Pkt;
|
||
end;
|
||
End;
|
||
|
||
|
||
Procedure GetDirFiles (* Zeile : Str80; ax, Art : Byte *);
|
||
Var srec : SearchRec;
|
||
Begin
|
||
FillChar(Dir^,SizeOf(Dir^),0);
|
||
|
||
DirFiles := 0;
|
||
DirSize := 0;
|
||
|
||
FindFirst(Zeile,AnyFile,srec);
|
||
While DosError = 0 do with srec do
|
||
begin
|
||
if Attr and Directory = Directory then
|
||
begin
|
||
if (Name <> Pkt) and (ax and Directory = Directory) then
|
||
begin
|
||
if Name = '..' then Name := ' .';
|
||
inc(DirFiles);
|
||
Dir^[DirFiles].Name := EFillStr(13,B1,^A + Name);
|
||
|
||
if Name = ' .' then Dir^[DirFiles].Size := UpDir
|
||
else Dir^[DirFiles].Size := SubDir;
|
||
|
||
Dir^[DirFiles].Attr := FAttr(Attr);
|
||
Dir^[DirFiles].Date := FDate(Time);
|
||
Dir^[DirFiles].Time := FTime(Time);
|
||
end;
|
||
end else
|
||
if (ax > Directory) or (Attr and ax = ax) then
|
||
begin
|
||
inc(DirFiles);
|
||
Dir^[DirFiles].Name := EFillStr(9,Pkt,ParmStr(1,Pkt,Name)) +
|
||
EFillStr(3,B1,ParmStr(2,Pkt,Name));
|
||
Dir^[DirFiles].Size := SFillStr(8,B1,int_str(Size));
|
||
DirSize := DirSize + Size;
|
||
|
||
Dir^[DirFiles].Attr := FAttr(Attr);
|
||
Dir^[DirFiles].Date := FDate(Time);
|
||
Dir^[DirFiles].Time := FTime(Time);
|
||
end;
|
||
|
||
Findnext(srec);
|
||
end; (* While do *)
|
||
|
||
if Art = 1 then SortDir;
|
||
End;
|
||
|
||
|
||
Procedure GetDirec (Zeile : Str80);
|
||
Var srec : SearchRec;
|
||
Begin
|
||
FindFirst(Zeile,Directory,srec);
|
||
While DosError = 0 do with srec do
|
||
begin
|
||
if (Name <> Pkt) and (Attr and Directory = Directory) then
|
||
begin
|
||
if Name = '..' then Name := ' .';
|
||
|
||
inc(DirFiles);
|
||
Dir^[DirFiles].Name := EFillStr(13,B1,^A + Name);
|
||
|
||
if Name = ' .' then Dir^[DirFiles].Size := UpDir
|
||
else Dir^[DirFiles].Size := SubDir;
|
||
|
||
Dir^[DirFiles].Attr := FAttr(Attr);
|
||
Dir^[DirFiles].Date := FDate(Time);
|
||
Dir^[DirFiles].Time := FTime(Time);
|
||
end;
|
||
Findnext(srec);
|
||
end; (* While do *)
|
||
SortDir;
|
||
End;
|
||
|
||
|
||
Function GetDirStr(Nr : Word; Sp : Byte) : Str80;
|
||
Var Hstr : String[80];
|
||
Lstr : String[2];
|
||
Begin
|
||
if Sp = 1 then Lstr := B2
|
||
else Lstr := B1;
|
||
Hstr := Dir^[Nr].Name + B1 + Dir^[Nr].Size;
|
||
if Sp = 1 then Hstr := Hstr + B2 + Dir^[Nr].Attr;
|
||
if Sp < 3 then Hstr := Hstr + B2 + Dir^[Nr].Date + Lstr + Dir^[Nr].Time;
|
||
GetDirStr := Hstr;
|
||
End;
|
||
|
||
|
||
Function MarkDirStr(Nr : Word; Sp : Byte) : Str80;
|
||
Var ch : Char;
|
||
Begin
|
||
if Dir^[Nr].Mark then ch := ''
|
||
else ch := B1;
|
||
MarkDirStr := B1 + ch + GetDirStr(Nr,Sp);
|
||
End;
|
||
|
||
|
||
Procedure DirZeig (* Var Zeile : Str80; var Ch : char; QRet : Boolean *);
|
||
Const Bofs = 1;
|
||
Var X,yM,
|
||
Bpos,
|
||
Zmax : Byte;
|
||
Dpos : Integer;
|
||
w,w1,
|
||
AnzM,
|
||
Result : Word;
|
||
Flag,
|
||
Fertig : Boolean;
|
||
KC : Sondertaste;
|
||
VC,
|
||
VA : Char;
|
||
f : Text;
|
||
Mstr,
|
||
Such,
|
||
Mask,
|
||
DrvFree,
|
||
MName : String[12];
|
||
Hstr,
|
||
Sstr,
|
||
Pfad,
|
||
XPfad : String[80];
|
||
|
||
|
||
Procedure CheckPfad;
|
||
Begin
|
||
Pfad := Zeile;
|
||
if Pfad[length(Pfad)] = DP then Pfad := Pfad + BS;
|
||
if Pfad[length(Pfad)] = BS then Pfad := Pfad + Joker;
|
||
|
||
if length(pfad)>0 then
|
||
begin
|
||
While Pfad[length(Pfad)] <> BS do
|
||
begin
|
||
Mask := Pfad[length(Pfad)] + Mask;
|
||
delete(Pfad,length(Pfad),1);
|
||
end;
|
||
end else Pfad:=Sys1Pfad;
|
||
if mask='' then mask:='*.*';
|
||
End;
|
||
|
||
Procedure DirPage(beg : Word);
|
||
Var i : Byte;
|
||
Begin
|
||
for i := 1 to Zmax do WriteRam(1,i+Bofs,Attrib[2],1,EFillStr(80,B1,MarkDirStr(beg-1+i,1)));
|
||
WriteRam(1,maxZ-1,Attrib[5],1,EFillStr(80,B1,B1 +
|
||
int_str(DirFiles) + B1 + InfoZeile(141) + B1 +
|
||
FormByte(int_str(DirSize)) + B1 + Bytes + B1 + B2 +
|
||
InfoZeile(324) + B1 + DrvFree + B1 + Bytes));
|
||
WriteRam(1,maxZ,Attrib[5],1,EFillStr(80,B1,B1+InfoZeile(1)));
|
||
End;
|
||
|
||
Procedure GetCursorLine;
|
||
Begin
|
||
WriteRam(1,Bpos+Bofs,Attrib[4],1,EFillStr(80,B1,MarkDirStr(Dpos,1)));
|
||
End;
|
||
|
||
Function GetFName (Nstr : Str12) : Str12;
|
||
Var Hstr : String[12];
|
||
Begin
|
||
if Nstr[1] <> Pkt then
|
||
begin
|
||
Hstr := copy(Nstr,1,8);
|
||
While pos(Pkt,Hstr) > 0 do delete(Hstr,pos(Pkt,Hstr),1);
|
||
Hstr := Hstr + copy(Nstr,9,4);
|
||
end else Hstr := Nstr;
|
||
KillEndBlanks(Hstr);
|
||
GetFName := Hstr;
|
||
End;
|
||
|
||
Procedure InitStart(Art : Byte; Bstr : Str12);
|
||
Var w : Word;
|
||
Flag : Boolean;
|
||
Vpos : Byte;
|
||
Begin
|
||
Vpos := Bpos;
|
||
yM := 1;
|
||
Bpos := 1;
|
||
Dpos := 1;
|
||
AnzM := 0;
|
||
GetDirFiles(Pfad + Mask,AnyFile - Directory,0);
|
||
GetDirec(Pfad + Joker);
|
||
DrvFree := FreeStr(Pfad[1]);
|
||
if Art = 1 then DirPage(Dpos);
|
||
|
||
if Art = 2 then
|
||
begin
|
||
w := 0;
|
||
Flag := false;
|
||
While (w < DirFiles) and not Flag do
|
||
begin
|
||
inc(w);
|
||
if Bstr = GetFName(Dir^[w].Name) then
|
||
begin
|
||
Flag := true;
|
||
Dpos := w;
|
||
Bpos := Vpos;
|
||
if (Dpos < Bpos) or (DirFiles <= Zmax) then Bpos := Dpos;
|
||
if ((DirFiles - Dpos + Bpos) < Zmax) and
|
||
(DirFiles > Zmax) and
|
||
(Dpos > Bpos) then Bpos := Zmax - (DirFiles - Dpos);
|
||
end;
|
||
end;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end;
|
||
End;
|
||
|
||
Procedure CursorDn;
|
||
Begin
|
||
if Dpos < DirFiles then
|
||
begin
|
||
inc(Dpos);
|
||
if Bpos < Zmax then inc(Bpos) else
|
||
begin
|
||
WriteAttr(1,yM+Bofs,80,Attrib[2],1);
|
||
Scroll(Up,1,1+Bofs,Zmax+Bofs);
|
||
WriteRam(1,Bpos+Bofs,Attrib[4],1,MarkDirStr(Dpos,1));
|
||
end;
|
||
end else Alarm;
|
||
End;
|
||
|
||
|
||
Begin
|
||
Moni_Off(0);
|
||
DirScroll := true;
|
||
NowFenster := false;
|
||
Close_SaveFiles;
|
||
GetMem(Dir,SizeOf(Dir^));
|
||
|
||
Such := '';
|
||
Mask := '';
|
||
CheckPfad;
|
||
|
||
Zmax := maxZ - 3;
|
||
Fertig := false;
|
||
X := 1;
|
||
|
||
InitStart(1,'');
|
||
|
||
WriteAttr(1,Bpos+Bofs,80,Attrib[4],1);
|
||
|
||
Repeat
|
||
InitCursor(X,Bpos+Bofs);
|
||
|
||
WriteRam(1,1,Attrib[5],1,
|
||
EFillStr(67,B1,B1+ '[' + Mask + ']' + B1 + Pfad) + EFillStr(13,B1,Such));
|
||
|
||
WriteRam(61,maxZ-1,Attrib[5],1,EFillStr(20,B1,InfoZeile(155) + B1 + int_str(AnzM)));
|
||
|
||
_ReadKey(KC,VC);
|
||
|
||
if KC <> _Andere then Such := '';
|
||
|
||
case KC of
|
||
_Esc
|
||
: begin
|
||
Fertig := true;
|
||
ch := #27;
|
||
end;
|
||
|
||
_Dn
|
||
: CursorDn;
|
||
|
||
_Up
|
||
: if Dpos > 1 then
|
||
begin
|
||
dec(Dpos);
|
||
if Bpos > 1 then dec(Bpos) else
|
||
begin
|
||
WriteAttr(1,yM+Bofs,80,Attrib[2],1);
|
||
Scroll(Dn,1,1+Bofs,Zmax+Bofs);
|
||
WriteRam(1,Bpos+Bofs,Attrib[4],1,MarkDirStr(Dpos,1));
|
||
end;
|
||
end else Alarm;
|
||
|
||
_PgDn
|
||
: if Dpos < DirFiles then
|
||
begin
|
||
if Dpos + Zmax - Bpos >= DirFiles then
|
||
begin
|
||
Dpos := DirFiles;
|
||
Bpos := Zmax;
|
||
if Bpos > DirFiles then Bpos := DirFiles;
|
||
end else
|
||
begin
|
||
Dpos := Dpos + Zmax - 1;
|
||
if Dpos + Zmax - 1 > DirFiles then Dpos := DirFiles - Zmax + Bpos;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end;
|
||
end else Alarm;
|
||
|
||
_PgUp
|
||
: if Dpos > 1 then
|
||
begin
|
||
if Dpos <= Bpos then
|
||
begin
|
||
Dpos := 1;
|
||
Bpos := 1;
|
||
end else
|
||
begin
|
||
Dpos := Dpos - Zmax + 1;
|
||
if Dpos - Zmax + 1 < 1 then Dpos := Bpos;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end;
|
||
end else Alarm;
|
||
|
||
_Home
|
||
: if Dpos > 1 then
|
||
begin
|
||
Dpos := 1;
|
||
Bpos := 1;
|
||
DirPage(1);
|
||
end else Alarm;
|
||
|
||
_End
|
||
: if Dpos < DirFiles then
|
||
begin
|
||
Dpos := DirFiles;
|
||
Bpos := Zmax;
|
||
if Bpos > DirFiles then Bpos := DirFiles;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else Alarm;
|
||
|
||
_CtrlHome
|
||
: begin
|
||
Pfad := copy(Pfad,1,3);
|
||
InitStart(1,'');
|
||
end;
|
||
|
||
_Right
|
||
: if HardCur then
|
||
begin
|
||
if X < 80 then inc(X) else Alarm;
|
||
end else Alarm;
|
||
|
||
_Left
|
||
: if HardCur then
|
||
begin
|
||
if X > 1 then dec(X) else Alarm;
|
||
end else Alarm;
|
||
|
||
_CtrlPgUp,
|
||
_Ret
|
||
: begin
|
||
if KC = _CtrlPgUp then
|
||
begin
|
||
Bpos := 1;
|
||
Dpos := 1;
|
||
end;
|
||
|
||
if (Dir^[Dpos].Size = SubDir) and (KC = _Ret) then
|
||
begin
|
||
Pfad := Pfad + Dir^[Dpos].Name;
|
||
KillEndBlanks(Pfad);
|
||
Pfad := Pfad + BS;
|
||
InitStart(1,'');
|
||
end else
|
||
if Dir^[Dpos].Size = UpDir then
|
||
begin
|
||
delete(Pfad,length(Pfad),1);
|
||
MName := '';
|
||
if length(pfad)>0 then
|
||
While Pfad[length(Pfad)] <> BS do
|
||
begin
|
||
MName := Pfad[length(Pfad)] + MName;
|
||
delete(Pfad,length(Pfad),1);
|
||
end;
|
||
Bpos := Zmax;
|
||
InitStart(2,MName);
|
||
end else if (KC = _Ret) and QRet then
|
||
begin
|
||
Zeile := Pfad + GetFName(Dir^[Dpos].Name);
|
||
Fertig := true;
|
||
end else Alarm;
|
||
end;
|
||
|
||
_AltA
|
||
: begin
|
||
if AnzM > 0 then
|
||
begin
|
||
for w := 1 to DirFiles do
|
||
if Dir^[w].Mark then Dir^[w].Mark := false;
|
||
AnzM := 0;
|
||
end else
|
||
begin
|
||
for w := 1 to DirFiles do
|
||
begin
|
||
if (pos(SubDir,Dir^[w].Size) = 0) and
|
||
(pos(UpDir,Dir^[w].Size) = 0) then
|
||
begin
|
||
Dir^[w].Mark := true;
|
||
inc(AnzM);
|
||
end;
|
||
end;
|
||
end;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end;
|
||
|
||
_AltB
|
||
: if show > 0 then
|
||
begin
|
||
Open_SaveFiles;
|
||
Alarm;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(159)));
|
||
_ReadKey(KC,VC);
|
||
if (KC = _Ret) or (UpCase(VC) in YesMenge) then
|
||
begin
|
||
if K[show]^.FileSend then FertigSenden(show);
|
||
if (AnzM > 0) then
|
||
begin
|
||
for w := 1 to DirFiles do if Dir^[w].Mark then
|
||
begin
|
||
Hstr := Pfad + GetFName(Dir^[w].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2 + Hstr));
|
||
BIN_TX_File_Sofort(show,Hstr);
|
||
Dir^[w].Mark := false;
|
||
end;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,
|
||
EFillStr(80,B1,B2+int_str(AnzM)+B1+InfoZeile(122)));
|
||
Verzoegern(EINT);
|
||
AnzM := 0;
|
||
end else if (pos(SubDir,Dir^[Dpos].Size) = 0) and
|
||
(pos(UpDir,Dir^[Dpos].Size) = 0) then
|
||
begin
|
||
Hstr := Pfad + GetFName(Dir^[Dpos].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+Hstr));
|
||
BIN_TX_File_Sofort(show,Hstr);
|
||
Verzoegern(EINT);
|
||
end else Alarm;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else GetCursorLine;
|
||
Close_SaveFiles;
|
||
end else Alarm;
|
||
|
||
_AltC
|
||
: if (pos(UpDir,Dir^[Dpos].Size) = 0) or (AnzM > 0) then
|
||
begin
|
||
Mstr := GetFName(Dir^[Dpos].Name);
|
||
Hstr := '';
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(231)));
|
||
GetString(Hstr,Attrib[5],60,length(InfoZeile(231))+4,Bpos+Bofs,KC,1,Ins);
|
||
if KC <> _Esc then
|
||
begin
|
||
if AnzM > 0 then
|
||
begin
|
||
XPfad := Hstr;
|
||
Result := 0;
|
||
for w := 1 to DirFiles do if Dir^[w].Mark then
|
||
begin
|
||
Hstr := GetFName(Dir^[w].Name) + B1 + XPfad + B1 + Pfad;
|
||
FileKopieren(Hstr);
|
||
if str_int(CutStr(Hstr)) = 1 then
|
||
begin
|
||
Dir^[w].Mark := false;
|
||
dec(AnzM);
|
||
inc(Result);
|
||
end;
|
||
end;
|
||
if AnzM > 0 then Alarm;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,
|
||
EFillStr(80,B1,B2+int_str(Result) + B1 + InfoZeile(315)));
|
||
Verzoegern(T500);
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else
|
||
begin
|
||
if pos(SubDir,Dir^[Dpos].Size) > 0
|
||
then Hstr := Joker + B1 + Hstr + B1 + Pfad + GetFName(Dir^[Dpos].Name) + BS
|
||
else Hstr := GetFName(Dir^[Dpos].Name) + B1 + Hstr + B1 + Pfad;
|
||
FileKopieren(Hstr);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+Hstr));
|
||
Verzoegern(EINT);
|
||
end;
|
||
InitStart(2,Mstr);
|
||
end else GetCursorLine;
|
||
end else Alarm;
|
||
|
||
_AltD, _del
|
||
: if AnzM > 0 then
|
||
begin
|
||
Alarm;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(319)));
|
||
_ReadKey(KC,VC);
|
||
if (KC = _Ret) or (UpCase(VC) in YesMenge) then
|
||
begin
|
||
for w := 1 to DirFiles do if Dir^[w].Mark then
|
||
begin
|
||
Assign(f,Pfad + GetFName(Dir^[w].Name));
|
||
SetFAttr(f,$20);
|
||
Result := EraseTxt(f);
|
||
end;
|
||
InitStart(1,'');
|
||
end else GetCursorLine;
|
||
end else
|
||
begin
|
||
Result := 255;
|
||
if pos(SubDir,Dir^[Dpos].Size) > 0 then
|
||
begin
|
||
Alarm;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(327)));
|
||
_ReadKey(KC,VC);
|
||
if (KC = _Ret) or (UpCase(VC) in YesMenge) then
|
||
begin
|
||
Hstr := Pfad + GetFName(Dir^[Dpos].Name);
|
||
DelAll(Hstr,Bpos+Bofs);
|
||
if not PfadOk(0,Hstr) then Result := 0;
|
||
end else
|
||
begin
|
||
Result := 1;
|
||
GetCursorLine;
|
||
end;
|
||
end else
|
||
|
||
if pos(UpDir,Dir^[Dpos].Size) = 0 then
|
||
begin
|
||
Assign(f,Pfad + GetFName(Dir^[Dpos].Name));
|
||
GetFAttr(f,w);
|
||
w := w and $07;
|
||
if (w > 0) or SiAltK then
|
||
begin
|
||
Alarm;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(235)));
|
||
_ReadKey(KC,VC);
|
||
if (KC = _Ret) or (UpCase(VC) in YesMenge) then w := 0 else
|
||
begin
|
||
w := 1;
|
||
Result := 1;
|
||
GetCursorLine;
|
||
end;
|
||
end;
|
||
|
||
if w = 0 then
|
||
begin
|
||
SetFAttr(f,$20);
|
||
if EraseTxt(f) = 0 then
|
||
begin
|
||
Result := 0;
|
||
DirSize := DirSize - str_int(Dir^[Dpos].Size);
|
||
DrvFree := FreeStr(Pfad[1]);
|
||
end;
|
||
end;
|
||
end else Alarm;
|
||
|
||
if Result = 0 then
|
||
begin
|
||
for w := Dpos to DirFiles-1 do Dir^[w] := Dir^[w+1];
|
||
FillChar(Dir^[DirFiles],SizeOf(Dir^[DirFiles]),0);
|
||
dec(DirFiles);
|
||
|
||
if Dpos > DirFiles then
|
||
begin
|
||
if Dpos > 1 then dec(Dpos);
|
||
if Bpos > 1 then dec(Bpos);
|
||
end;
|
||
if ((DirFiles - Dpos + Bpos) < Zmax) and (Dpos > Bpos) then inc(Bpos);
|
||
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else if Result = 255 then Alarm;
|
||
end;
|
||
|
||
_AltE
|
||
: if Dir^[Dpos].Size[1] <> LRK then
|
||
begin
|
||
Mstr := GetFName(Dir^[Dpos].Name);
|
||
ExecDOS(Konfig.EditVerz + B1 + Pfad + Mstr);
|
||
InitStart(2,Mstr);
|
||
end else Alarm;
|
||
|
||
_AltF
|
||
: begin
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(54)));
|
||
_ReadKey(KC,VC);
|
||
if (KC = _Ret) or (UpCase(VC) in YesMenge) then
|
||
begin
|
||
K[show]^.WishBuf := true;
|
||
S_PAC(show,NU,false,M1 + B1 + LRK + Mask + RRK + B1 + Pfad + M1);
|
||
S_PAC(show,NU,false,B1 + ConstStr('=',44) + M1);
|
||
if AnzM > 0 then w1 := 1
|
||
else w1 := Dpos;
|
||
for w := w1 to DirFiles do
|
||
begin
|
||
if AnzM > 0 then
|
||
begin
|
||
if Dir^[w].Mark then S_PAC(show,NU,false,B1 + GetDirStr(w,1) + M1);
|
||
end else S_PAC(show,NU,false,B1 + GetDirStr(w,1) + M1);
|
||
end;
|
||
if AnzM > 0 then w := AnzM
|
||
else w := Word(DirFiles-Dpos+1);
|
||
S_PAC(show,NU,false,B1 + ConstStr('-',44) + M1);
|
||
S_PAC(show,NU,true,B1 + int_str(w) + B1 + Files + M2);
|
||
end;
|
||
GetCursorLine;
|
||
end;
|
||
|
||
_AltH
|
||
: XP_Help(G^.OHelp[20]);
|
||
|
||
_AltI
|
||
: begin
|
||
AnzM := 0;
|
||
for w := 1 to DirFiles do
|
||
begin
|
||
if (pos(SubDir,Dir^[w].Size) = 0) and
|
||
(pos(UpDir,Dir^[w].Size) = 0) then
|
||
begin
|
||
Dir^[w].Mark := not Dir^[w].Mark;
|
||
if Dir^[w].Mark then inc(AnzM);
|
||
end;
|
||
end;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end;
|
||
|
||
_AltM
|
||
: begin
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(326)));
|
||
GetString(Mask,Attrib[5],12,length(InfoZeile(326))+4,Bpos+Bofs,KC,3,Ins);
|
||
if KC <> _Esc then
|
||
begin
|
||
if Mask = '' then Mask := Joker;
|
||
InitStart(1,'');
|
||
end else GetCursorLine;
|
||
end;
|
||
|
||
_AltN
|
||
: begin
|
||
Hstr := '';
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(184)));
|
||
GetString(Hstr,Attrib[5],60,length(InfoZeile(184))+3,Bpos+Bofs,KC,3,Ins);
|
||
if KC <> _Esc then
|
||
begin
|
||
Mstr := Hstr;
|
||
if pos(BS,Hstr) = 0 then Hstr := Pfad + Hstr;
|
||
if MkSub(Hstr) then InitStart(2,Mstr) else
|
||
begin
|
||
Alarm;
|
||
GetCursorLine;
|
||
end;
|
||
end else GetCursorLine;
|
||
end;
|
||
|
||
_AltO
|
||
: begin
|
||
Mstr := GetFName(Dir^[Dpos].Name);
|
||
GetDir(0,Hstr);
|
||
XPfad := Pfad;
|
||
if length(XPfad) > 3 then delete(XPfad,length(XPfad),1);
|
||
(*$I-*) ChDir(XPfad); (*$I+*)
|
||
Result := IOResult;
|
||
|
||
ExecDOS('');
|
||
|
||
(*$I-*) ChDir(Hstr); (*$I+*)
|
||
Result := IOResult;
|
||
|
||
Flag := false;
|
||
Repeat
|
||
if not PfadOk(0,Pfad) then
|
||
begin
|
||
delete(Pfad,length(Pfad),1);
|
||
While (length(Pfad) > 3) and (Pfad[length(Pfad)] <> BS)
|
||
do delete(Pfad,length(Pfad),1);
|
||
end else Flag := true;
|
||
Until Flag or (length(Pfad) <= 3);
|
||
InitStart(2,Mstr);
|
||
end;
|
||
|
||
_AltL,
|
||
_AltP
|
||
: begin
|
||
if KC = _AltL then Hstr := ''
|
||
else Hstr := Pfad;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(257)));
|
||
GetString(Hstr,Attrib[5],60,length(InfoZeile(257))+4,Bpos+Bofs,KC,1,Ins);
|
||
if KC <> _Esc then
|
||
begin
|
||
if length(Hstr) = 1 then Hstr := Hstr + DP;
|
||
if Hstr[length(Hstr)] <> BS then Hstr := Hstr + BS;
|
||
if PfadOk(0,Hstr) then
|
||
begin
|
||
Zeile := Hstr;
|
||
Such := '';
|
||
Mask := '';
|
||
CheckPfad;
|
||
InitStart(1,'');
|
||
end else
|
||
begin
|
||
WriteRam(1,Bofs+Bpos,Attrib[4],1,
|
||
EFillStr(80,B1,B2 + InfoZeile(75) + DP + B2 + Hstr));
|
||
Alarm;
|
||
Verzoegern(ZWEI);
|
||
GetCursorLine;
|
||
end;
|
||
end else GetCursorLine;
|
||
end;
|
||
|
||
_AltR
|
||
: if pos(UpDir,Dir^[Dpos].Size) = 0 then
|
||
begin
|
||
Hstr := GetFName(Dir^[Dpos].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(4)));
|
||
GetString(Hstr,Attrib[5],12,length(InfoZeile(4))+4,Bpos+Bofs,KC,0,Ins);
|
||
if KC <> _Esc then
|
||
begin
|
||
Assign(f,Pfad + GetFName(Dir^[Dpos].Name));
|
||
(*$I-*) Rename(f,Pfad + Hstr); (*$I+*)
|
||
if IOResult = 0 then
|
||
begin
|
||
if Dir^[Dpos].Size[1] <> LRK then
|
||
begin
|
||
Hstr := EFillStr(9,Pkt,ParmStr(1,Pkt,Hstr)) +
|
||
EFillStr(3,B1,ParmStr(2,Pkt,Hstr));
|
||
end else Hstr := EFillStr(12,B1,copy(Hstr,1,8));
|
||
Dir^[Dpos].Name := Hstr;
|
||
end else Alarm;
|
||
end;
|
||
GetCursorLine;
|
||
end else Alarm;
|
||
|
||
_AltS
|
||
: begin
|
||
WriteRam(1,Bofs+Bpos,Attrib[4],1,EFillStr(80,B1,B1+InfoZeile(142)));
|
||
XPfad := Pfad;
|
||
dec(XPfad[0]);
|
||
While pos(BS,XPfad) > 0 do delete(XPfad,1,pos(BS,XPfad));
|
||
While pos(DP,XPfad) > 0 do delete(XPfad,pos(DP,XPfad),1);
|
||
XPfad := Konfig.SavVerz + XPfad + Pkt + 'DIR';
|
||
GetString(XPfad,Attrib[4],60,9,Bofs+Bpos,KC,0,Ins);
|
||
if KC <> _Esc then
|
||
begin
|
||
Assign(f,XPfad);
|
||
Result := AppendTxt(f);
|
||
if Result <> 0 then Result := RewriteTxt(f);
|
||
if Result = 0 then
|
||
begin
|
||
Writeln(f,B1 + '[' + Mask + ']' + B1 + Pfad);
|
||
Writeln(f,B1 + ConstStr('=',44));
|
||
if AnzM > 0 then w1 := 1
|
||
else w1 := Dpos;
|
||
for w := w1 to DirFiles do
|
||
begin
|
||
if AnzM > 0 then
|
||
begin
|
||
if Dir^[w].Mark then Writeln(f,B1 + GetDirStr(w,1));
|
||
end else Writeln(f,B1 + GetDirStr(w,1));
|
||
end;
|
||
if AnzM > 0 then w := AnzM
|
||
else w := Word(DirFiles-Dpos+1);
|
||
Writeln(f,B1 + ConstStr('-',44));
|
||
Writeln(f,B1 + int_str(w) + B1 + Files);
|
||
Writeln(f);
|
||
FiResult := CloseTxt(f);
|
||
InitStart(2,'');
|
||
end else
|
||
begin
|
||
WriteRam(1,Bofs+Bpos,Attrib[4],1,
|
||
EFillStr(80,B1,B2 + InfoZeile(75) + DP + B2 + XPFad));
|
||
Alarm;
|
||
Verzoegern(ZWEI);
|
||
end;
|
||
end;
|
||
GetCursorLine;
|
||
end;
|
||
|
||
_AltT
|
||
: if show > 0 then
|
||
begin
|
||
Open_SaveFiles;
|
||
Alarm;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+InfoZeile(159)));
|
||
_ReadKey(KC,VC);
|
||
if (KC = _Ret) or (UpCase(VC) in YesMenge) then
|
||
begin
|
||
if K[show]^.FileSend then FertigSenden(show);
|
||
if (AnzM > 0) then
|
||
begin
|
||
for w := 1 to DirFiles do if Dir^[w].Mark then
|
||
begin
|
||
Hstr := Pfad + GetFName(Dir^[w].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2 + Hstr));
|
||
TXT_TX_File_Sofort(show,Hstr);
|
||
Dir^[w].Mark := false;
|
||
end;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,
|
||
EFillStr(80,B1,B2+int_str(AnzM)+B1+InfoZeile(122)));
|
||
Verzoegern(EINT);
|
||
AnzM := 0;
|
||
end else if (pos(SubDir,Dir^[Dpos].Size) = 0) and
|
||
(pos(UpDir,Dir^[Dpos].Size) = 0) then
|
||
begin
|
||
Hstr := Pfad + GetFName(Dir^[Dpos].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2+Hstr));
|
||
TXT_TX_File_Sofort(show,Hstr);
|
||
Verzoegern(EINT);
|
||
end else Alarm;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else GetCursorLine;
|
||
Close_SaveFiles;
|
||
end else Alarm;
|
||
|
||
_AltV
|
||
: if Dir^[Dpos].Size[1] <> LRK then
|
||
begin
|
||
Mstr := GetFName(Dir^[Dpos].Name);
|
||
ExecDOS(Konfig.ViewVerz + B1 + Pfad + Mstr);
|
||
InitStart(2,Mstr);
|
||
end else Alarm;
|
||
|
||
_Alt7,
|
||
_AltW
|
||
: if (show > 0) and (AnzM > 0) then
|
||
begin
|
||
VA := Key[KC].Ze;
|
||
Open_SaveFiles;
|
||
Sstr := '';
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,ConstStr(B1,80));
|
||
GetString(Sstr,Attrib[5],60,2,Bpos+Bofs,KC,0,Ins);
|
||
if (KC = _Ret) and (Sstr > '') then
|
||
begin
|
||
if K[show]^.FileSend then FertigSenden(show);
|
||
K[show]^.WishBuf := true;
|
||
for w := 1 to DirFiles do if Dir^[w].Mark then
|
||
begin
|
||
if VA = Key[_Alt7].Ze then
|
||
begin
|
||
Hstr := Get7PlFNr(Pfad + GetFName(Dir^[w].Name));
|
||
if Hstr > '' then Hstr := B1 + Hstr;
|
||
end else Hstr := '';
|
||
S_PAC(show,NU,false,Sstr + B1 + GetFName(Dir^[w].Name)+Hstr+M1);
|
||
Hstr := Pfad + GetFName(Dir^[w].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2 + Hstr));
|
||
TXT_TX_File_Sofort(show,Hstr);
|
||
Dir^[w].Mark := false;
|
||
if not K[show]^.TxLRet then S_PAC(show,NU,false,M1);
|
||
S_PAC(show,NU,true,^Z + M1);
|
||
end;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,
|
||
EFillStr(80,B1,B2+int_str(AnzM)+B1+InfoZeile(122)));
|
||
Verzoegern(EINT);
|
||
AnzM := 0;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else GetCursorLine;
|
||
Close_SaveFiles;
|
||
end else Alarm;
|
||
|
||
_Alt6,
|
||
_AltZ
|
||
: if (show > 0) and (AnzM > 0) then
|
||
begin
|
||
VA := Key[KC].Ze;
|
||
Open_SaveFiles;
|
||
Sstr := '';
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,ConstStr(B1,80));
|
||
GetString(Sstr,Attrib[5],60,2,Bpos+Bofs,KC,0,Ins);
|
||
if (KC = _Ret) and (Sstr > '') then
|
||
begin
|
||
if K[show]^.FileSend then FertigSenden(show);
|
||
K[show]^.WishBuf := true;
|
||
for w := 1 to DirFiles do if Dir^[w].Mark then
|
||
begin
|
||
if VA = Key[_Alt6].Ze then
|
||
begin
|
||
Hstr := GetBsFNr(Pfad + GetFName(Dir^[w].Name));
|
||
if Hstr > '' then Hstr := B1 + Hstr;
|
||
end else Hstr := '';
|
||
S_PAC(show,NU,true,Sstr + B1 + GetFName(Dir^[w].Name)+Hstr+M1);
|
||
Hstr := Pfad + GetFName(Dir^[w].Name);
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,EFillStr(80,B1,B2 + Hstr));
|
||
BIN_TX_File_Sofort(show,Hstr);
|
||
Dir^[w].Mark := false;
|
||
end;
|
||
WriteRam(1,Bpos+Bofs,Attrib[5],1,
|
||
EFillStr(80,B1,B2+int_str(AnzM)+B1+InfoZeile(122)));
|
||
Verzoegern(EINT);
|
||
AnzM := 0;
|
||
DirPage(Dpos - Bpos + 1);
|
||
end else GetCursorLine;
|
||
Close_SaveFiles;
|
||
end else Alarm;
|
||
|
||
_Andere
|
||
: begin
|
||
if VC = B1 then
|
||
begin
|
||
if (pos(SubDir,Dir^[Dpos].Size) = 0) and
|
||
(pos(UpDir,Dir^[Dpos].Size) = 0) then
|
||
begin
|
||
Dir^[Dpos].Mark := not Dir^[Dpos].Mark;
|
||
if Dir^[Dpos].Mark then inc(AnzM)
|
||
else dec(AnzM);
|
||
GetCursorLine;
|
||
CursorDn;
|
||
end else Alarm;
|
||
end else
|
||
|
||
begin
|
||
Such := Such + UpCase(VC);
|
||
w := 0;
|
||
Flag := false;
|
||
While (w < DirFiles) and not Flag do
|
||
begin
|
||
inc(w);
|
||
if pos(Such,GetFName(Dir^[w].Name)) = 1 then
|
||
begin
|
||
Flag := true;
|
||
Dpos := w;
|
||
if (Dpos < Bpos) or (DirFiles <= Zmax) then Bpos := Dpos;
|
||
if ((DirFiles - Dpos + Bpos) < Zmax) and
|
||
(DirFiles > Zmax) and
|
||
(Dpos > Bpos) then Bpos := Zmax - (DirFiles - Dpos);
|
||
end;
|
||
end;
|
||
|
||
if not Flag then
|
||
begin
|
||
Alarm;
|
||
Such := '';
|
||
end else DirPage(Dpos - Bpos + 1);
|
||
end;
|
||
end;
|
||
|
||
else Alarm;
|
||
end;
|
||
|
||
WriteAttr(1,yM+Bofs,80,Attrib[2],1);
|
||
WriteAttr(1,Bpos+Bofs,80,Attrib[4],1);
|
||
yM := Bpos;
|
||
Until Fertig;
|
||
|
||
FreeMem(Dir,SizeOf(Dir^));
|
||
|
||
Open_SaveFiles;
|
||
DirScroll := false;
|
||
Moni_On;
|
||
End;
|
||
|
||
|
||
Procedure RemoteDir (* Kanal : Byte; Zeile : Str80 *);
|
||
Type FeldPtr = array[1..maxDirRem] of String[43];
|
||
|
||
Var SpAnz : Byte;
|
||
i,i1,ax : Word;
|
||
Free : LongInt;
|
||
BStr : String[80];
|
||
Path : String[80];
|
||
Fstr : String[5];
|
||
ch : Char;
|
||
|
||
Begin
|
||
Close_SaveFiles;
|
||
Open_SaveFiles;
|
||
|
||
GetMem(Dir,SizeOf(Dir^));
|
||
SpAnz := 1;
|
||
ax := AnyFile;
|
||
KillendBlanks(Zeile);
|
||
Bstr := RestStr(Zeile);
|
||
|
||
if pos('/',Bstr) > 0 then While pos('/',Bstr) > 0 do
|
||
begin
|
||
i := pos('/',Bstr);
|
||
if (i+1 >= length(Bstr)) and (i > 0) then
|
||
begin
|
||
case Bstr[i+1] of
|
||
'F' : ax := AnyFile - Directory;
|
||
'D' : ax := Directory;
|
||
'S' : ax := SysFile;
|
||
'H' : ax := Hidden;
|
||
'R' : ax := ReadOnly;
|
||
'A' : ax := Archive;
|
||
'1',
|
||
'2',
|
||
'3' : SpAnz := str_int(Bstr[i+1]);
|
||
end;
|
||
delete(Bstr,i,2);
|
||
end else delete(Bstr,i,1);
|
||
end;
|
||
|
||
Path := CutStr(Zeile);
|
||
if Path[length(Path)] = BS then Path := Path + Joker;
|
||
|
||
Fstr := ConstStr(B1,5);
|
||
|
||
case SpAnz of
|
||
1 : i := 40;
|
||
2 : i := 80;
|
||
3 : i := 70;
|
||
end;
|
||
|
||
Bstr := InfoZeile(169);
|
||
S_PAC(Kanal,NU,false,M1 + ConstStr(B1,(i-length(Bstr)) div 2) + Bstr + M1);
|
||
S_PAC(Kanal,NU,false,ConstStr(B1,(i-length(Bstr)) div 2) + ConstStr(GL,length(Bstr)) + M1);
|
||
|
||
GetDirFiles(Path,ax,1);
|
||
|
||
if DirFiles > 0 then
|
||
begin
|
||
Bstr := '';
|
||
for i := 1 to DirFiles do
|
||
begin
|
||
if i mod SpAnz = 0
|
||
then S_PAC(Kanal,NU,false,GetDirStr(i,SpAnz) + M1)
|
||
else S_PAC(Kanal,NU,false,GetDirStr(i,SpAnz) + B2 + B2);
|
||
end;
|
||
if not K[Kanal]^.TxLRet then S_PAC(Kanal,NU,false,M1);
|
||
end;
|
||
S_PAC(Kanal,NU,false,M1 + InfoZeile(142) + B1 + Path + M1 +
|
||
int_str(DirFiles) + B1 + InfoZeile(141) + B1 +
|
||
FormByte(int_str(DirSize)) + B1 + Bytes + B3 +
|
||
InfoZeile(324) + B1 +
|
||
FreeStr(Path[1]) + B1 + Bytes + M1);
|
||
|
||
FreeMem(Dir,SizeOf(Dir^));
|
||
End;
|
||
|
||
|
||
Procedure DelAll (* Pfad : Str80; Yp : Byte *);
|
||
Var srec : SearchRec;
|
||
Vstr,
|
||
Dstr : String[80];
|
||
Fl,Flag,
|
||
NewVerz : Boolean;
|
||
f : Text;
|
||
Result : Word;
|
||
Begin
|
||
Flag := false;
|
||
NewVerz := true;
|
||
Dstr := Pfad;
|
||
GetDir(0,Vstr);
|
||
(*$I-*) ChDir(copy(Pfad,1,3)); (*$I+*)
|
||
Result := IOResult;
|
||
|
||
While not Flag and not KeyPressed do with srec do
|
||
begin
|
||
if NewVerz then FindFirst(Pfad + BS + Joker,Directory,srec);
|
||
NewVerz := false;
|
||
|
||
if DosError = 0 then
|
||
begin
|
||
if Attr and Directory = Directory then
|
||
begin
|
||
if pos(Pkt,Name) <> 1 then
|
||
begin
|
||
Pfad := Pfad + BS + Name;
|
||
NewVerz := true;
|
||
end;
|
||
end else
|
||
begin
|
||
Assign(f,Pfad + BS + Name);
|
||
(*$I-*) SetFAttr(f,$00); (*$I+*)
|
||
Result := IOResult;
|
||
Result := EraseTxt(f);
|
||
if (Result = 0) and (Yp > 0) then
|
||
WriteRam(1,Yp,Attrib[5],1,EFillStr(80,B1,B2 + Pfad + BS + Name));
|
||
end;
|
||
end else
|
||
begin
|
||
Fl := false;
|
||
(*$I-*) RmDir(Pfad); (*$I+*)
|
||
Result := IOResult;
|
||
if (Result = 0) and (Yp > 0) then
|
||
WriteRam(1,Yp,Attrib[5],1,EFillStr(80,B1,B2 + Pfad));
|
||
While (length(Pfad) > length(Dstr)) and (Pfad[length(Pfad)] <> BS) do
|
||
begin
|
||
delete(Pfad,length(Pfad),1);
|
||
Fl := true;
|
||
end;
|
||
Flag := Dstr = Pfad;
|
||
if Fl then delete(Pfad,length(Pfad),1);
|
||
NewVerz := true;
|
||
end;
|
||
|
||
if not NewVerz then FindNext(srec);
|
||
end;
|
||
(*$I-*) ChDir(Vstr); (*$I+*)
|
||
Result := IOResult;
|
||
End;
|
||
|
||
|
||
Function Get7PlFNr (* Zeile : Str80 : Str20 *);
|
||
Begin
|
||
Assign(G^.TFile,Zeile);
|
||
if ResetTxt(G^.TFile) = 0 then
|
||
begin
|
||
Readln(G^.TFile,Zeile);
|
||
FiResult := CloseTxt(G^.TFile);
|
||
if (UpCaseStr(copy(Zeile,1,8)) = Meldung[11]) and
|
||
(str_int(ParmStr(2,B1,Zeile)) > 0) and
|
||
(str_int(ParmStr(4,B1,Zeile)) > 0) then
|
||
begin
|
||
Zeile := ParmStr(2,B1,Zeile) + '/' + ParmStr(4,B1,Zeile);
|
||
end else Zeile := '';
|
||
end else Zeile := '';
|
||
Get7PlFNr := Zeile;
|
||
End;
|
||
|
||
|