type
TStringManager =
class
private
FNummernListe : TStringlist;
FOrteListe: TStringList;
FDatumsListe: TStringList;
FLaengenListe: TStringList;
FKostenListe: TStringList;
FStringList: TStringList;
FCopyList: TStringList;
FEinzelListe: TStringList;
procedure ClearToErsteZeile;
procedure ClearGarbage;
procedure FillFEinzelListe;
procedure SplitString(s:
string);
procedure StrToListen;
function Kosten(nr:
string):real;
function LoadFile(FileName:
string): boolean;
function IsValid(s:
string):boolean;
public
constructor Create;
destructor Destroy;
override;
end;
var
Form1: TForm1;
StrMg: TStringManager;
implementation
{$R *.dfm}
{ TStringManager }
procedure TStringManager.ClearGarbage;
var i: integer;
s:
string;
anzahl: integer;
begin
ClearToErsteZeile;
// Unwichtiges davor wird gelöscht
for i:= FStringList.Count-1
downto 0
do
begin
if (pos('
*',FStringList.Strings[i])=0)
then
FStringList.Delete(i);
end;
.
.
.
end;
constructor TStringManager.Create;
begin
FNummernListe:= TStringList.Create;
FEinzelListe:= TStringList.Create;
FDatumsListe:= TStringList.Create;
FOrteListe:= TStringList.Create;
FLaengenListe:= TStringList.Create;
FKostenListe:= TStringList.Create;
FCopyList:= TStringList.Create;
FStringList:= TStringList.Create;
end;
destructor TStringManager.Destroy;
begin
FreeAndNil(FNummernListe);
FreeAndNil(FEinzelListe); [b]
// <= HIER KOMMT EINE AV
FreeAndNil(FDatumsListe);
FreeAndNil(FOrteListe);
FreeAndNil(FLaengenListe);
FreeAndNil(FKostenListe);
FreeAndNil(FCopyList);
FreeAndNil(FStringList); [b]
// UND HIER ( auskommentiert läuft es)
inherited;
end;
procedure TStringManager.FillFEinzelListe;
var i, k: Integer;
begin
FEinzelListe:= FNummernListe;
For i := FEinzelListe.Count - 2
downto 0
do
For k := FEinzelListe.Count - 1
downto i + 1
do
If FEinzelListe.Strings[i] = FEinzelListe.Strings[k]
Then
FEinzelListe.Delete(k);
end;
function TStringManager.IsValid(s:
string): boolean;
begin
result:= false;
if s[3]='
.'
then result:= true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StrMg:= TStringManager.Create;
end;
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
StrMg.Destroy;
end;
procedure TForm1.Button1Click(Sender: TObject);
var h,i: integer;
begin
for h:= 1
to 9
do
begin
if StrMg.LoadFile('
telekom_'+IntToStr(h)+'
.txt')
then
begin
StrMg.ClearGarbage;
for i:= 0
to StrMg.FStringList.Count-1
do
begin
StrMg.FCopyList.Add(StrMg.FStringList.Strings[i]);
end;
StrMg.FStringList.Clear;
end;
end;
StrMg.FStringList:= StrMg.FCopyList;
StrMg.StrToListen;
StrMg.FillFEinzelListe;
LBNummern.Items:= StrMg.FEinzelListe;
end;
end.